kayaker...here's how to reproduce:
-control panel\device manager
-in devmgr go to top of tree at user name, right click and select Install Legacy Hardware.
-hit 'next' and on next window choose to install manually.
-next window is Add Hardware window. I go down to USB and select an Intel USB 3 host controller driver.
-select driver then 'Have Disk'. Find driver in that set of Intel drivers to which I linked earlier.
-a 32770 dialog box opens with OK button.
-open windbg as Administrator.
-select 'Attach to Process'
-look down list for mmc then select it.
-windbg opens mmc.
-break (not really sure if I used break)
-I run .reload force /f
-trick here is to arrange windows so that the mouse can be placed over the OK button on dev manager 32770 box. Once you set bp user32!getmessagew it will break on even a mouse movement.
-enter bp user32!getmessagew in wdbg and hit 'enter'
-very carefully go to mouse and do a left click. Dev manager window should break up and wdbg should break at 77539e54 push rebx
-a few lines below there is an official call to user32!getmessagew+0x1b
Tracing a few steps reveals hwnd of "Device Manager" MMCMainFrame in rsi.
Tracing blindly a lot further there is a call to mmc!CSubclassManager::SubClasProc
The call is at 77539bb6 in user32!UserCallWinProcCheckWow+0x1ad and the mmcfunc is at ff4f2474. IDA shows the func at .text:01009DAF.
stack:
# Child-SP RetAddr Call Site
00 00000000`0018cc18 000007fe`fb955925 USER32!GetMessageW
01 00000000`0018cc20 000007fe`fb955cfd Comctl32!_RealPropertySheet+0x309
02 00000000`0018ccf0 000007fe`e61a8b15 Comctl32!_PropertySheet+0x55
03 00000000`0018cd30 000007fe`e61a2204 hdwwiz!PropertySheetW+0x55
04 00000000`0018cd60 000007fe`ee213a94 hdwwiz!AddHardwareWizard+0x130
05 00000000`0018d8f0 000007fe`ee2131d7 devmgr!CResultView::MenuCommand+0x2e0
06 00000000`0018d950 000007fe`ee20fb2a devmgr!CFolder::MenuCommand+0xab
07 00000000`0018d980 000007fe`e4b71a33 devmgr!CComponent::Command+0x92
08 00000000`0018d9e0 000007fe`e4abbc6f mmcndmgr!IExtendContextMenuWrapper::Command+0xeb
09 00000000`0018db20 000007fe`e4a9d260 mmcndmgr!CMenuItem::ScExecute+0x367
0a 00000000`0018dbe0 000007fe`e4a9ca90 mmcndmgr!CContextMenu::ExecuteMenuItem+0xd4
0b 00000000`0018dc50 000007fe`e4a9c840 mmcndmgr!CContextMenu::ShowContextMenuEx+0x244
0c 00000000`0018dd40 000007fe`e4a98e20 mmcndmgr!CContextMenu::ShowContextMenu+0x20
0d 00000000`0018dd90 000007fe`e4b7e023 mmcndmgr!CNodeInitObject::ShowContextMenu+0x128
0e 00000000`0018de10 000007fe`ee214dfb mmcndmgr!NodeInitObjectWrapper::IContextMenuProviderWrapper::ShowContextMenu+0xbf
0f 00000000`0018df30 000007fe`ee20b4aa devmgr!CResultView:

oContextMenu+0x1c7
10 00000000`0018dfd0 000007fe`ee20880a devmgr!CResultView::tvNotify+0xdd
11 00000000`0018e000 000007fe`ee208134 devmgr!CFolder::tvNotify+0x26
12 00000000`0018e040 000007fe`e6503dfe devmgr!CComponent::tvNotify+0x58
13 00000000`0018e080 000007fe`e5f90c4a dmocx!CTVCtrl::OnContextMenu+0x82
Code:
Code: Select all
USER32!GetMessageW:
00000000`77539e54 fff3 push rbx
00000000`77539e56 4883ec20 sub rsp,20h
00000000`77539e5a 418bc0 mov eax,r8d
00000000`77539e5d 488bd9 mov rbx,rcx
00000000`77539e60 b90000feff mov ecx,0FFFE0000h
00000000`77539e65 410bc1 or eax,r9d
00000000`77539e68 458bd1 mov r10d,r9d
00000000`77539e6b 85c1 test ecx,eax
00000000`77539e6d 0f85678d0100 jne USER32!GetMessageW+0x1b (00000000`77552bda)
00000000`77539e73 458bca mov r9d,r10d
00000000`77539e76 488bcb mov rcx,rbx
00000000`77539e79 e8c2ffffff call USER32!NtUserGetMessage (00000000`77539e40)
00000000`77539e7e 817b0802010000 cmp dword ptr [rbx+8],102h
00000000`77539e85 448bd0 mov r10d,eax
00000000`77539e88 0f844e480000 je USER32!GetMessageW+0x49 (00000000`7753e6dc)
00000000`77539e8e 817b08cc000000 cmp dword ptr [rbx+8],0CCh
00000000`77539e95 0f8441480000 je USER32!GetMessageW+0x49 (00000000`7753e6dc)
00000000`77539e9b 418bc2 mov eax,r10d
00000000`77539e9e 4883c420 add rsp,20h
00000000`77539ea2 5b pop rbx
00000000`77539ea3 c3 ret