Geoff Chappell, Software Analyst
The INTRSENDMSGEX structure is thought to have no meaning outside WIN32K.SYS—and before it, WINSRV.DLL—being used only to package some of the input to the internal routine xxxInterSendMsgEx. Callers of that routine prepare the INTRSENDMSGEX on the stack.
As a structure that exists only to support an internal routine, the INTRSENDMSGEX is of course not documented. Microsoft has, however, published names for it and its members in plain-text output from the !dso command as implemented in the USERKDX.DLL debugger extension from development kits for Windows NT 4.0 and Windows 2000.
What is specially remarkable about the INTRSENDMSGEX structure is that it has never changed through the whole history of Windows, here meaning from as far back as Windows NT 3.10 until at least the original release of Windows 10.
Offset (x86) | Offset (x64) | Definition |
---|---|---|
0x00 | 0x00 |
ULONG fuCall; |
0x04 | 0x08 |
SENDASYNCPROC lpResultCallback; |
0x08 | 0x10 |
DWORD_PTR dwData; |
0x0C | 0x18 |
LONG_PTR lRet; |
0x10 | 0x20 |
ULONG fuSend; |
0x14 | 0x24 |
ULONG uTimeout; |
0x18 | 0x28 |
DWORD *lpdwResult; |