从authui!CCredentialJobQueue::PostJob到authui!CGetSerializationJob::Do--非常重要

bp authui!CCredentialJobQueue::PostJob

authui!CCredentialJobQueue::PostJob是个好断点

kd> g

Break instruction exception - code 80000003 (first chance)

eax=00000000 ebx=0015f45c ecx=715d4230 edx=76cea084 esi=001c0020 edi=00000000

eip=715d4230 esp=0015f184 ebp=0015f194 iopl=0 nv up ei pl nz na po nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202

authui!CJobQueue<CREDENTIAL_PROVIDER_THREAD_JOB_CONTEXT const &>::PostJob+0x11f:

001b:715d4230 c20400 ret 4

kd> g

Breakpoint 40 hit

eax=00000001 ebx=00000003 ecx=715cb2ca edx=000005c0 esi=001ff12c edi=001ff344

eip=715cd6f3 esp=0298f7ec ebp=0298f820 iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

authui!StringStringAllocCopy:

001b:715cd6f3 6a08 push 8

kd> g

Breakpoint 7 hit

eax=0021d6b8 ebx=001ff918 ecx=001c0020 edx=00000000 esi=0021d6b8 edi=001ff918

eip=715d4c29 esp=0015ec88 ebp=0015ec98 iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206
authui!CCredentialJobQueue::PostJob:

001b:715d4c29 8bff mov edi,edi

kd> p

eax=0021d6b8 ebx=001ff918 ecx=001c0020 edx=00000000 esi=0021d6b8 edi=001ff918

eip=715d4c2b esp=0015ec88 ebp=0015ec98 iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

authui!CCredentialJobQueue::PostJob+0x2:

001b:715d4c2b 55 push ebp

kd> p

eax=0021d6b8 ebx=001ff918 ecx=001c0020 edx=00000000 esi=0021d6b8 edi=001ff918

eip=715d4c2c esp=0015ec84 ebp=0015ec98 iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

authui!CCredentialJobQueue::PostJob+0x3:

001b:715d4c2c 8bec mov ebp,esp

kd> p

eax=0021d6b8 ebx=001ff918 ecx=001c0020 edx=00000000 esi=0021d6b8 edi=001ff918

eip=715d4c2e esp=0015ec84 ebp=0015ec84 iopl=0 nv up ei pl nz na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000206

authui!CCredentialJobQueue::PostJob+0x5:

001b:715d4c2e 56 push esi

kd> dd 0021d6b8

0021d6b8 715a52dc 00000001 001c4488 001e18e8

0021d6c8 001c0020 00000000 00010005 08000004

0021d6d8 00000000 027ae5bc 001c52d8 001c52b0

0021d6e8 0000000b 00000000 00000000 00000000

0021d6f8 00010004 08000005 00000000 0021d704

0021d708 0021d704 00000000 00000001 ffe02443

0021d718 00010010 0a000004 00230039 00770007

0021d728 006e0069 0033002d 00700073 00320067

kd> dds 715a52dc

715a52dc 715d12a4 authui!CGetSerializationJob::`scalar deleting destructor'
715a52e0 715d2b00 authui!CGetSerializationJob::Do

715a52e4 00000000

715a52e8 00700021

第二部分:

kd> kc

00 authui!CCredentialJobQueue::PostJob

01 authui!CGetSerializationJob_CreateAndPost

02 authui!CDUIUserTileElement::FireSubmitEvent

03 authui!CDUIUserTileElement::OnEvent

04 DUI70!DirectUI::Element::_DisplayNodeCallback

05 DUser!GPCB::xwCallGadgetProc

06 DUser!DuEventGadget::ApiOnEvent

07 DUser!DUser::Gadget::CallStubEvent

08 DUser!GPCB::xwCallOnEvent

09 DUser!GPCB::xwInvokeBubble

0a DUser!GPCB::xwInvokeFull

0b DUser!DUserSendEvent

0c DUI70!DirectUI::Element::FireEvent

0d DUI70!DirectUI::_FireClickEvent

0e DUI70!DirectUI::Button::OnInput

0f DUI70!DirectUI::Element::_DisplayNodeCallback

10 DUser!GPCB::xwCallGadgetProc

11 DUser!DuEventGadget::ApiOnEvent

12 DUser!DUser::Gadget::CallStubEvent

13 DUser!GPCB::xwCallOnEvent

14 DUser!GPCB::xwInvokeDirect

15 DUser!GPCB::xwInvokeFull

16 DUser!xwProcessFull

17 DUser!BaseMsgQ::xwProcessNL

18 DUser!DelayedMsgQ::xwProcessDelayedNL

19 DUser!DeferredMsgQueueLock::~DeferredMsgQueueLock

1a DUser!HWndContainer::xdHandleMessage

1b DUser!ExtraInfoWndProc

1c USER32!InternalCallWinProc

1d USER32!UserCallWinProcCheckWow

1e USER32!CallWindowProcAorW

1f USER32!CallWindowProcW

20 COMCTL32!CallOriginalWndProc

21 COMCTL32!CallNextSubclassProc

22 COMCTL32!DefSubclassProc

23 COMCTL32!TTSubclassProc

24 COMCTL32!CallNextSubclassProc

25 COMCTL32!MasterSubclassProc

26 USER32!InternalCallWinProc

27 USER32!UserCallWinProcCheckWow

28 USER32!DispatchMessageWorker

29 USER32!DispatchMessageW

2a authui!CLogonFrame::DoModal

2b authui!CLogonUI_CreateThenDoModalThenDestroy

2c authui!CLogonUI::DoModal

2d LogonUI!wWinMain

2e LogonUI!_initterm_e

2f kernel32!BaseThreadInitThunk

30 ntdll!__RtlUserThreadStart

31 ntdll!_RtlUserThreadStart

kd> p

eax=00000000 ebx=76cd2920 ecx=001c0274 edx=00000e80 esi=001c0274 edi=001c0250

eip=71600cbf esp=0015ec24 ebp=0015ec30 iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

authui!CDPA_Base<CPasswordCredential,CTContainer_PolicyUnOwned<CPasswordCredential> >::AppendPtr+0xf:

001b:71600cbf ff1530105a71 call dword ptr [authui!_imp__DPA_InsertPtr (715a1030)] ds:0023:715a1030={COMCTL32!DPA_InsertPtr (732a7687)}

kd> t

eax=00000000 ebx=76cd2920 ecx=001c0274 edx=00000e80 esi=001c0274 edi=001c0250

eip=732a7687 esp=0015ec20 ebp=0015ec30 iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

COMCTL32!DPA_InsertPtr:

001b:732a7687 8bff mov edi,edi

kd> kc

00 COMCTL32!DPA_InsertPtr
01 authui!CDPA_Base<CPasswordCredential,CTContainer_PolicyUnOwned<CPasswordCredential> >::AppendPtr
02 authui!CJobQueue<CREDENTIAL_PROVIDER_THREAD_JOB_CONTEXT const &>::PostJob
03 authui!CCredentialJobQueue::PostJob

04 authui!CGetSerializationJob_CreateAndPost

05 authui!CDUIUserTileElement::FireSubmitEvent

06 authui!CDUIUserTileElement::OnEvent

07 DUI70!DirectUI::Element::_DisplayNodeCallback

08 DUser!GPCB::xwCallGadgetProc

09 DUser!DuEventGadget::ApiOnEvent

0a DUser!DUser::Gadget::CallStubEvent

0b DUser!GPCB::xwCallOnEvent

0c DUser!GPCB::xwInvokeBubble

0d DUser!GPCB::xwInvokeFull

0e DUser!DUserSendEvent

0f DUI70!DirectUI::Element::FireEvent

10 DUI70!DirectUI::_FireClickEvent

11 DUI70!DirectUI::Button::OnInput

12 DUI70!DirectUI::Element::_DisplayNodeCallback

13 DUser!GPCB::xwCallGadgetProc

14 DUser!DuEventGadget::ApiOnEvent

15 DUser!DUser::Gadget::CallStubEvent

16 DUser!GPCB::xwCallOnEvent

17 DUser!GPCB::xwInvokeDirect

18 DUser!GPCB::xwInvokeFull

19 DUser!xwProcessFull

1a DUser!BaseMsgQ::xwProcessNL

1b DUser!DelayedMsgQ::xwProcessDelayedNL

1c DUser!DeferredMsgQueueLock::~DeferredMsgQueueLock

1d DUser!HWndContainer::xdHandleMessage

1e DUser!ExtraInfoWndProc

1f USER32!InternalCallWinProc

20 USER32!UserCallWinProcCheckWow

21 USER32!CallWindowProcAorW

22 USER32!CallWindowProcW

23 COMCTL32!CallOriginalWndProc

24 COMCTL32!CallNextSubclassProc

25 COMCTL32!DefSubclassProc

26 COMCTL32!TTSubclassProc

27 COMCTL32!CallNextSubclassProc

28 COMCTL32!MasterSubclassProc

29 USER32!InternalCallWinProc

2a USER32!UserCallWinProcCheckWow

2b USER32!DispatchMessageWorker

2c USER32!DispatchMessageW

2d authui!CLogonFrame::DoModal

2e authui!CLogonUI_CreateThenDoModalThenDestroy

2f authui!CLogonUI::DoModal

30 LogonUI!wWinMain

31 LogonUI!_initterm_e

32 kernel32!BaseThreadInitThunk

33 ntdll!__RtlUserThreadStart

34 ntdll!_RtlUserThreadStart

kd> r

eax=00000000 ebx=76cd2920 ecx=001c0274 edx=00000e80 esi=001c0274 edi=001c0250

eip=732a7687 esp=0015ec20 ebp=0015ec30 iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

COMCTL32!DPA_InsertPtr:

001b:732a7687 8bff mov edi,edi

kd> dd 0015ec20

0015ec20 71600cc5 001c02b0 7fffffff 0021d6b8

0015ec30 0015ec70 715d41ac 0021d6b8 00000000

0015ec40 6a9ebbca 00000000 001c0020 001ff918

0015ec50 001c025c 00000000 0015ec40 002025b8

0015ec60 0015f030 715e44fa 1be84c4a fffffffe

0015ec70 0015ec84 715d4c48 0021d6b8 001ff918

0015ec80 0021d6b8 0015ec98 715cf698 0021d6b8

0015ec90 001ff918 001ff998 0015eccc 715dfcd2

kd> dd 001c02b0

001c02b0 00000000 001fcda0 00160000 00000008

001c02c0 00000010 00004150 00010004 08000004

001c02d0 00000000 001c65f0 001c65f0 00000000

001c02e0 00000003 ffd20f4c 00010008 0c000004

001c02f0 00000001 00000000 001c0330 ffffffff

001c0300 00000000 00000000 00000000 00000000

001c0310 001c0358 f001001e 00008000 00008001

001c0320 001cbdf8 00000000 00010005 08000008

kd> gu

eax=00000000 ebx=76cd2920 ecx=6a8b5087 edx=00000e80 esi=001c0274 edi=001c0250

eip=71600cc5 esp=0015ec30 ebp=0015ec30 iopl=0 nv up ei pl zr na pe nc

cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246

authui!CDPA_Base<CPasswordCredential,CTContainer_PolicyUnOwned<CPasswordCredential> >::AppendPtr+0x15:

001b:71600cc5 8b4d0c mov ecx,dword ptr [ebp+0Ch] ss:0023:0015ec3c=00000000

kd> dd 001c02b0

001c02b0 00000001 001fcda0 00160000 00000008

001c02c0 00000010 00004150 00010004 08000004

001c02d0 00000000 001c65f0 001c65f0 00000000

kd> dd 001fcda0

001fcda0 0021d6b8 0021ea18 0021ea18 0021ea18

001fcdb0 0021ea18 00000000 00000000 00000000