Geoff Chappell - Software Analyst
The USERKDX debugger extension as supplied with the Platform SDK in the January 1997 edition (if not others) and later with the Device Driver Kit (DDK) for Windows 2000 exports a dso function and thus supports a !dso command.
The !dso command is in some sense an early form of what Microsoft’s debuggers would soon offer as the built-in dt command. A key difference is that the dt command dumps from type information in whatever symbol files the debugger has handy (or can download) but the !dso command dumps only the debugger extension’s built-in knowledge.
The extension’s own description of the !dso command is variously:
dso <Struct> [Field] [Address]- Dumps Struct field(s)'s offset(s) and value(s).
or
dso <Struct> [Field] [addr [*n]]-Dumps Struct field(s)'s offsets(s) & value(s).
It is not this note’s purpose, however, to pick over the syntax of an old command. The point is instead to note that in the years before Microsoft built type information into public symbol files, the !dso command was often the most detailed public record (by far) that Microsoft left of undocumented Windows structures. Not all the structures that are known to the !dso command are undocumented, but many are, including some for which type information has hardly ever (and in some few cases never) turned up in public symbol files even through to Windows 10.
Please be aware that a different !dso command is implemented in another debugger extension, named USEREXTS, which Microsoft is thought to have distributed only with the DDKs. Inevitably, the same command in the other extension supports a different set of structures.
The large table that follows lists the structures whose offsets can be dumped by the !userkdx.dso command. The USERKDX from the Platform SDK in 1997 has structures for Windows NT 4.0. The USERKDX from the DDK for Windows 2000 of course shows structures as they were for Windows version 5.0. No USERKDX is known for version 5.1 or higher.
Structure | Versions |
---|---|
AAS | 4.0 and 5.0 |
ACCEL | 4.0 and 5.0 |
ACCELTABLE | 4.0 and 5.0 |
ACCESS_STATE | 5.0 only |
ACL | 5.0 only |
ACON | 5.0 only |
ACON_COMMON | 5.0 only |
ANIHEADER | 4.0 and 5.0 |
ANIMATIONINFO | 4.0 and 5.0 |
ATOM_BASIC_INFORMATION | 4.0 and 5.0 |
ATOM_TABLE_INFORMATION | 4.0 and 5.0 |
ATTACHINFO | 4.0 and 5.0 |
ATTRIBUTE_DEFINITION_COLUMNS | 5.0 only |
ATTRIBUTE_ENUMERATION_CONTEXT | 5.0 only |
ATTRIBUTE_LIST_CONTEXT | 5.0 only |
ATTRIBUTE_LIST_ENTRY | 5.0 only |
ATTRIBUTE_NAME_ENTRY | 5.0 only |
ATTRIBUTE_RECORD_HEADER | 5.0 only |
BCB | 5.0 only |
BITMAP | 4.0 and 5.0 |
BITMAPCOREHEADER | 4.0 and 5.0 |
BITMAPCOREINFO | 4.0 and 5.0 |
BITMAPFILEHEADER | 4.0 and 5.0 |
BITMAPINFO | 4.0 and 5.0 |
BITMAPINFOHEADER | 4.0 and 5.0 |
BITMAPV4HEADER | 4.0 and 5.0 |
BITMAP_RANGE | 5.0 only |
BROADCASTSYSMSG | 4.0 only |
BROADCASTSYSTEMMSGPARAMS | 4.0 and 5.0 |
BWL | 4.0 and 5.0 |
CALLPROCDATA | 4.0 and 5.0 |
CANDIDATEFORM | 4.0 and 5.0 |
CANDIDATEINFO | 5.0 only |
CANDIDATELIST | 4.0 and 5.0 |
CAPTIONCACHE | 4.0 and 5.0 |
CAPTUREBUF | 4.0 and 5.0 |
CARET | 4.0 and 5.0 |
CBOX | 5.0 only |
CBTACTIVATESTRUCT | 4.0 and 5.0 |
CBT_CREATEWNDA | 4.0 and 5.0 |
CBT_CREATEWNDW | 4.0 and 5.0 |
CCB | 5.0 only |
CCB_DATA | 5.0 only |
CHAR2 | 5.0 only |
CHAR_IMAGE_INFO | 5.0 only |
CHECKPOINT | 5.0 only |
CLIENTCREATESTRUCT | 4.0 and 5.0 |
CLIENTIMC | 5.0 only |
CLIENTINFO | 4.0 and 5.0 |
CLIENTTHREADINFO | 4.0 and 5.0 |
CLS | 4.0 and 5.0 |
CLSMENUNAME | 4.0 and 5.0 |
CNSSDATA | 5.0 only |
CNSSCACHE | 5.0 only |
CNSSCONVMAP | 5.0 only |
CNSSIOBUFFER | 5.0 only |
CNSSTRUNCDESCR | 5.0 only |
CNSS_DEVICE_EXT | 5.0 only |
CNSS_FILE_DESCR | 5.0 only |
CNSS_MDL_CHAINS | 5.0 only |
CNSS_MDL_RECORD | 5.0 only |
CNSS_OPENLOCK | 5.0 only |
CNSS_OPEN_PACKET | 5.0 only |
CNSS_SHARE_DESCR | 5.0 only |
CNSS_SHARE_NPAGED | 5.0 only |
CNSS_STATISTICS | 5.0 only |
CNSS_STK_IODESCR | 5.0 only |
COMBOBOXINFO | 5.0 only |
COMMON_WNDCLASS | 4.0 and 5.0 |
COMMPROP | 4.0 and 5.0 |
COMMTIMEOUTS | 4.0 and 5.0 |
COMPAREITEMSTRUCT | 4.0 and 5.0 |
COMPOSITIONSTRING | 5.0 only |
COMPRESSED_DATA_INFO | 5.0 only |
CONSOLE_CURSOR_INFO | 4.0 and 5.0 |
CONSOLE_FONT_INFO | 4.0 and 5.0 |
CONSOLE_GRAPHICS_BUFFER_INFO | 4.0 and 5.0 |
CONSOLE_INFORMATION | 5.0 only |
CONSOLE_PER_PROCESS_DATA | 5.0 only |
CONSOLE_READCONSOLE_CONTROL | 4.0 and 5.0 |
CONSOLE_SCREEN_BUFFER_INFO | 4.0 and 5.0 |
CONTEXT | 5.0 only |
COORD | 5.0 only |
COPYDATASTRUCT | 4.0 and 5.0 |
CPINFO | 4.0 and 5.0 |
CPTABLEINFO | 4.0 and 5.0 |
CREATESTRUCTA | 4.0 and 5.0 |
CREATESTRUCTEX | 4.0 and 5.0 |
CREATESTRUCTW | 4.0 and 5.0 |
CSR_PROCESS | 5.0 only |
CSR_THREAD | 5.0 only |
CTLCOLOR | 4.0 and 5.0 |
CURDIR | 5.0 only |
CURSINFO | 4.0 and 5.0 |
CURSOR | 4.0 and 5.0 |
CURSORDATA | 4.0 and 5.0 |
CURSORFIND | 4.0 and 5.0 |
CURSORSHAPE | 4.0 and 5.0 |
CURSOR_ACON | 5.0 only |
CURSOR_COMMON | 5.0 only |
CVR | 4.0 and 5.0 |
CWPRETSTRUCT | 4.0 and 5.0 |
CWPRETSTRUCTEX | 4.0 and 5.0 |
CWPSTRUCT | 4.0 and 5.0 |
CWPSTRUCTEX | 4.0 and 5.0 |
DCE | 5.0 only |
DDECONV | 4.0 and 5.0 |
DDEIMP | 4.0 and 5.0 |
DDEML_MSG_HOOK_DATA | 4.0 and 5.0 |
DDEPACK | 4.0 and 5.0 |
DDE_DATA | 4.0 and 5.0 |
DEALLOCATED_CLUSTERS | 5.0 only |
DEALLOCATED_RECORDS | 5.0 only |
DEBUGHOOKINFO | 4.0 and 5.0 |
DEFERRED_WRITE | 5.0 only |
DEFRAG_MFT | 5.0 only |
DELETEITEMSTRUCT | 4.0 and 5.0 |
DESKTOP | 4.0 and 5.0 |
DESKTOPINFO | 4.0 and 5.0 |
DESKTOPTHREADINIT | 4.0 only |
DESKTOPVIEW | 4.0 and 5.0 |
DEVCAPS | 4.0 and 5.0 |
DEVICEINFO | 5.0 only |
DEVICE_FLAGS | 5.0 only |
DEVICE_OBJECT | 5.0 only |
DEVICE_TEMPLATE | 5.0 only |
DIALOG | 4.0 and 5.0 |
DIRENTRY | 5.0 only |
DIRTY_PAGE_ENTRY | 5.0 only |
DISCDLGSTRUCTA | 4.0 and 5.0 |
DISCDLGSTRUCTW | 4.0 and 5.0 |
DISPATCHER_HEADER | 5.0 only |
DISPLAYINFO | 4.0 and 5.0 |
DISPLAYRESOURCE | 4.0 and 5.0 |
DLG | 4.0 and 5.0 |
DLGENUMDATA | 4.0 and 5.0 |
DLGITEMTEMPLATE | 4.0 and 5.0 |
DLGITEMTEMPLATE2 | 4.0 and 5.0 |
DLGTEMPLATE | 4.0 and 5.0 |
DLGTEMPLATE2 | 4.0 and 5.0 |
DOCHDR | 5.0 only |
DOCONNECTDATA | 5.0 only |
DORECONNECTDATA | 5.0 only |
DRAWICONEXDATA | 4.0 and 5.0 |
DRAWITEMSTRUCT | 4.0 and 5.0 |
DRAWTEXTPARMS | 4.0 and 5.0 |
DRIVER_OBJECT | 5.0 only |
DUPLICATED_INFORMATION | 5.0 only |
DbgHeapHead | 5.0 only |
EA_INFORMATION | 5.0 only |
EA_LIST_HEADER | 5.0 only |
EJOB | 5.0 only |
ENCRYPTED_DATA_INFO | 5.0 only |
ENCRYPTION_BUFFER | 5.0 only |
ENCRYPTION_CALL_BACK | 5.0 only |
EOF_WAIT_BLOCK | 5.0 only |
EPROCESS | 4.0 and 5.0 |
ERESOURCE | 4.0 and 5.0 |
ETHREAD | 4.0 and 5.0 |
EVENTHOOK | 4.0 and 5.0 |
EVENTMSG | 5.0 only |
EXCEPTION_DEBUG_INFO | 4.0 and 5.0 |
EXCEPTION_POINTERS | 4.0 and 5.0 |
EXCEPTION_RECORD | 4.0 and 5.0 |
EXCEPTION_REGISTRATION_RECORD | 4.0 and 5.0 |
EXIT_PROCESS_DEBUG_INFO | 4.0 and 5.0 |
EXIT_THREAD_DEBUG_INFO | 4.0 and 5.0 |
EXT_API_VERSION | 4.0 and 5.0 |
EX_DEBUG_LOG | 4.0 and 5.0 |
EX_DEBUG_LOG_EVENT | 4.0 and 5.0 |
EX_DEBUG_LOG_TAG | 4.0 and 5.0 |
EX_LOCK | 5.0 only |
FAST_IO_DISPATCH | 5.0 only |
FAST_MUTEX | 5.0 only |
FAT_STATISTICS | 5.0 only |
FCB | 5.0 only |
FCB_DATA | 5.0 only |
FCB_INDEX | 5.0 only |
FCB_TABLE_ELEMENT | 5.0 only |
FCB_USN_RECORD | 5.0 only |
FILESYSTEM_STATISTICS | 5.0 only |
FILE_ACCESS_INFORMATION | 5.0 only |
FILE_ALIGNMENT_INFORMATION | 5.0 only |
FILE_ALLOCATED_RANGE_BUFFER | 5.0 only |
FILE_ALLOCATION_INFORMATION | 5.0 only |
FILE_ALL_INFORMATION | 5.0 only |
FILE_ATTRIBUTE_TAG_INFORMATION | 5.0 only |
FILE_BASIC_INFORMATION | 5.0 only |
FILE_BOTH_DIR_INFORMATION | 5.0 only |
FILE_COMPLETION_INFORMATION | 5.0 only |
FILE_COMPRESSION_INFORMATION | 5.0 only |
FILE_DIRECTORY_INFORMATION | 5.0 only |
FILE_EA_INFORMATION | 5.0 only |
FILE_END_OF_FILE_INFORMATION | 5.0 only |
FILE_FS_ATTRIBUTE_INFORMATION | 5.0 only |
FILE_FS_CONTROL_INFORMATION | 5.0 only |
FILE_FS_DEVICE_INFORMATION | 5.0 only |
FILE_FS_FULL_SIZE_INFORMATION | 5.0 only |
FILE_FS_LABEL_INFORMATION | 5.0 only |
FILE_FS_OBJECTID_INFORMATION | 5.0 only |
FILE_FS_SIZE_INFORMATION | 5.0 only |
FILE_FS_VOLUME_INFORMATION | 5.0 only |
FILE_FULL_DIR_INFORMATION | 5.0 only |
FILE_FULL_EA_INFORMATION | 5.0 only |
FILE_GET_EA_INFORMATION | 5.0 only |
FILE_GET_QUOTA_INFORMATION | 5.0 only |
FILE_INTERNAL_INFORMATION | 5.0 only |
FILE_LINK_INFORMATION | 5.0 only |
FILE_LOCK | 5.0 only |
FILE_LOCK_INFO | 5.0 only |
FILE_MAILSLOT_PEEK_BUFFER | 5.0 only |
FILE_MAILSLOT_QUERY_INFORMATION | 5.0 only |
FILE_MAILSLOT_SET_INFORMATION | 5.0 only |
FILE_MODE_INFORMATION | 5.0 only |
FILE_MOVE_CLUSTER_INFORMATION | 5.0 only |
FILE_NAME | 5.0 only |
FILE_NAMES_INFORMATION | 5.0 only |
FILE_NAME_INFORMATION | 5.0 only |
FILE_NETWORK_OPEN_INFORMATION | 5.0 only |
FILE_NOTIFY_INFORMATION | 5.0 only |
FILE_OBJECT | 5.0 only |
FILE_OBJECTID_BUFFER | 5.0 only |
FILE_OBJECTID_INFORMATION | 5.0 only |
FILE_PIPE_ASSIGN_EVENT_BUFFER | 5.0 only |
FILE_PIPE_CLIENT_PROCESS_BUFFER | 5.0 only |
FILE_PIPE_EVENT_BUFFER | 5.0 only |
FILE_PIPE_INFORMATION | 5.0 only |
FILE_PIPE_LOCAL_INFORMATION | 5.0 only |
FILE_PIPE_PEEK_BUFFER | 5.0 only |
FILE_PIPE_REMOTE_INFORMATION | 5.0 only |
FILE_PIPE_WAIT_FOR_BUFFER | 5.0 only |
FILE_POSITION_INFORMATION | 5.0 only |
FILE_QUOTA_INFORMATION | 5.0 only |
FILE_RECORD_SEGMENT_HEADER | 5.0 only |
FILE_RENAME_INFORMATION | 5.0 only |
FILE_REPARSE_POINT_INFORMATION | 5.0 only |
FILE_STANDARD_INFORMATION | 5.0 only |
FILE_STREAM_INFORMATION | 5.0 only |
FILE_SYSTEM_STATISTICS | 5.0 only |
FILE_TRACKING_INFORMATION | 5.0 only |
FILE_ZERO_DATA_INFORMATION | 5.0 only |
FLOATING_SAVE_AREA | 5.0 only |
FOUND_ATTRIBUTE | 5.0 only |
FREELIST | 5.0 only |
FSCNTL_SCREEN_INFO | 5.0 only |
FSCTL_QUERY_FAT_BPB_BUFFER | 5.0 only |
FSRTL_ADVANCED_FCB_HEADER | 5.0 only |
FSRTL_AUXILIARY_BUFFER | 5.0 only |
FSRTL_COMMON_FCB_HEADER | 5.0 only |
FSRTL_FILTER_CONTEXT | 5.0 only |
GENERAL_LOOKASIDE | 5.0 only |
GENERATE_NAME_CONTEXT | 5.0 only |
GENERIC_DEVICE_INFO | 5.0 only |
GUID | 5.0 only |
GUIDELINE | 5.0 only |
HANDLEENTRY | 4.0 and 5.0 |
HARDERRORHANDLER | 4.0 and 5.0 |
HARDERROR_MSG | 5.0 only |
HARDWAREHOOKSTRUCT | 4.0 and 5.0 |
HEAD | 4.0 and 5.0 |
HEAP | 5.0 only |
HEAP_BASE | 4.0 only |
HEAP_ENTRY | 4.0 and 5.0 |
HEAP_FREE_ENTRY | 4.0 and 5.0 |
HEAP_SEGMENT | 5.0 only |
HELPINFO | 4.0 and 5.0 |
HELPWININFOA | 4.0 and 5.0 |
HELPWININFOW | 4.0 and 5.0 |
HLP | 4.0 and 5.0 |
HOOK | 4.0 and 5.0 |
HOOKMSGSTRUCT | 4.0 and 5.0 |
HOTKEY | 4.0 and 5.0 |
ICONINFO | 4.0 and 5.0 |
ICONMETRICSA | 4.0 and 5.0 |
ICONMETRICSW | 4.0 and 5.0 |
IMAGEHLP_DEFERRED_SYMBOL_LOAD | 4.0 and 5.0 |
IMAGEHLP_DUPLICATE_SYMBOL | 4.0 and 5.0 |
IMAGEHLP_MODULE | 4.0 and 5.0 |
IMAGEHLP_SYMBOL | 4.0 and 5.0 |
IMAGE_ARCHIVE_MEMBER_HEADER | 4.0 and 5.0 |
IMAGE_BASE_RELOCATION | 4.0 and 5.0 |
IMAGE_BOUND_FORWARDER_REF | 4.0 and 5.0 |
IMAGE_BOUND_IMPORT_DESCRIPTOR | 4.0 and 5.0 |
IMAGE_COFF_SYMBOLS_HEADER | 4.0 and 5.0 |
IMAGE_DATA_DIRECTORY | 4.0 and 5.0 |
IMAGE_DEBUG_DIRECTORY | 4.0 and 5.0 |
IMAGE_DEBUG_INFORMATION | 4.0 and 5.0 |
IMAGE_DEBUG_MISC | 4.0 and 5.0 |
IMAGE_DOS_HEADER | 4.0 and 5.0 |
IMAGE_EXPORT_DIRECTORY | 4.0 and 5.0 |
IMAGE_FILE_HEADER | 4.0 and 5.0 |
IMAGE_FUNCTION_ENTRY | 4.0 and 5.0 |
IMAGE_IMPORT_BY_NAME | 4.0 and 5.0 |
IMAGE_IMPORT_DESCRIPTOR | 4.0 and 5.0 |
IMAGE_LINENUMBER | 4.0 and 5.0 |
IMAGE_LOAD_CONFIG_DIRECTORY | 4.0 only |
IMAGE_NT_HEADERS | 4.0 only |
IMAGE_OPTIONAL_HEADER | 4.0 only |
IMAGE_OS2_HEADER | 4.0 and 5.0 |
IMAGE_RELOCATION | 4.0 and 5.0 |
IMAGE_RESOURCE_DATA_ENTRY | 4.0 and 5.0 |
IMAGE_RESOURCE_DIRECTORY | 4.0 and 5.0 |
IMAGE_RESOURCE_DIRECTORY_ENTRY | 4.0 and 5.0 |
IMAGE_RESOURCE_DIRECTORY_STRING | 4.0 and 5.0 |
IMAGE_RESOURCE_DIR_STRING_U | 4.0 and 5.0 |
IMAGE_ROM_HEADERS | 4.0 and 5.0 |
IMAGE_ROM_OPTIONAL_HEADER | 4.0 and 5.0 |
IMAGE_RUNTIME_FUNCTION_ENTRY | 4.0 only |
IMAGE_SECTION_HEADER | 4.0 and 5.0 |
IMAGE_SEPARATE_DEBUG_HEADER | 4.0 and 5.0 |
IMAGE_SYMBOL | 4.0 and 5.0 |
IMAGE_THUNK_DATA | 4.0 only |
IMAGE_TLS_DIRECTORY | 4.0 only |
IMAGE_VXD_HEADER | 4.0 and 5.0 |
IMC | 5.0 only |
IMECHARPOSITION | 5.0 only |
IMEHOTKEY | 5.0 only |
IMEHOTKEYOBJ | 5.0 only |
IMEINFO | 5.0 only |
IMEINFOEX | 5.0 only |
IMEUI | 5.0 only |
IMEWND | 5.0 only |
INDEX_ALLOCATION_BUFFER | 5.0 only |
INDEX_CONTEXT | 5.0 only |
INDEX_DATA | 5.0 only |
INDEX_ENTRY | 5.0 only |
INDEX_HEADER | 5.0 only |
INDEX_KEY | 5.0 only |
INDEX_LOOKUP_STACK | 5.0 only |
INDEX_ROOT | 5.0 only |
INDEX_ROW | 5.0 only |
INDICATOR_LIST | 4.0 and 5.0 |
INITIALIZATION_CONTEXT | 4.0 and 5.0 |
INITIAL_PEB | 4.0 and 5.0 |
INITIAL_PRIVILEGE_SET | 4.0 and 5.0 |
INITIAL_TEB | 4.0 and 5.0 |
INPUTCONTEXT | 5.0 only |
INPUT_RECORD | 4.0 and 5.0 |
INTDDEINFO | 4.0 and 5.0 |
INTRSENDMSGEX | 4.0 and 5.0 |
IOSPACE | 4.0 and 5.0 |
IOSPACE_EX | 4.0 and 5.0 |
IO_COMPLETION_BASIC_INFORMATION | 4.0 and 5.0 |
IO_COMPLETION_CONTEXT | 4.0 and 5.0 |
IO_COUNTERS | 4.0 and 5.0 |
IO_ERROR_LOG_MESSAGE | 4.0 and 5.0 |
IO_ERROR_LOG_PACKET | 4.0 and 5.0 |
IO_INTERRUPT_STRUCTURE | 4.0 and 5.0 |
IO_SECURITY_CONTEXT | 4.0 and 5.0 |
IO_STATUS_BLOCK | 4.0 and 5.0 |
IO_RESOURCE_DESCRIPTOR | 4.0 and 5.0 |
IO_RESOURCE_LIST | 4.0 and 5.0 |
IO_RESOURCE_REQUIREMENTS_LIST | 4.0 and 5.0 |
IO_RUN | 5.0 only |
IO_STACK_LOCATION | 4.0 and 5.0 |
IO_TIMER | 4.0 and 5.0 |
IRP | 4.0 and 5.0 |
IRP_CONTEXT | 5.0 only |
IRP_FILE_RECORD_CACHE_ENTRY | 5.0 only |
ITEM | 4.0 and 5.0 |
KAPC | 5.0 only |
KBDFILE | 4.0 and 5.0 |
KBDLANGTOGGLE | 4.0 and 5.0 |
KBDNLSTABLES | 5.0 only |
KBDTABLES | 4.0 and 5.0 |
KDEVICE_QUEUE | 5.0 only |
KDEVICE_QUEUE_ENTRY | 5.0 only |
KDPC | 5.0 only |
KE | 4.0 and 5.0 |
KERNEL_USER_TIMES | 5.0 only |
KEVENT | 5.0 only |
KEYBOARD_ATTRIBUTES | 5.0 only |
KEYBOARD_DEVICE_INFO | 5.0 only |
KEYBOARD_INPUT_DATA | 5.0 only |
KFLOATING_SAVE | 5.0 only |
KINTERRUPT | 5.0 only |
KL | 5.0 only |
KMUTANT | 5.0 only |
KPCR | 5.0 only |
KPROCESS | 5.0 only |
KQUEUE | 5.0 only |
KSEMAPHORE | 5.0 only |
KSYSTEM_TIME | 5.0 only |
KTHREAD | 4.0 and 5.0 |
KTIMER | 5.0 only |
KTRAP_FRAME | 5.0 only |
KUSER_SHARED_DATA | 5.0 only |
KWAIT_BLOCK | 5.0 only |
LARGE_MCB | 5.0 only |
LARGE_STANDARD_INFORMATION | 5.0 only |
LARGE_STRING | 5.0 only |
LARGE_UNICODE_STRING | 5.0 only |
LAST_EXCEPTION_LOG | 5.0 only |
LAZY_WRITER | 5.0 only |
LBIV | 5.0 only |
LCN_RANGE | 5.0 only |
LINK_TRACKING_INFORMATION | 5.0 only |
LOCKTREE_NODE | 5.0 only |
LOCK_INFO | 5.0 only |
LOCK_QUEUE | 5.0 only |
LOGFONTW | 5.0 only |
LPCP_PORT_OBJECT | 5.0 only |
MAP_HANDLE | 5.0 only |
MDICREATESTRUCTA | 4.0 and 5.0 |
MDICREATESTRUCTEX | 4.0 and 5.0 |
MDICREATESTRUCTW | 4.0 and 5.0 |
MDINEXTMENU | 4.0 and 5.0 |
MDL | 4.0 and 5.0 |
MDL_WRITE | 5.0 only |
MEASUREITEMSTRUCT | 4.0 and 5.0 |
MEASUREITEMSTRUCT_EX | 4.0 and 5.0 |
MENU | 4.0 and 5.0 |
MENUINFO | 5.0 only |
MENUITEMINFOA | 4.0 and 5.0 |
MENUITEMINFOW | 4.0 and 5.0 |
MENUITEMTEMPLATE | 4.0 and 5.0 |
MENUITEMTEMPLATE2 | 4.0 and 5.0 |
MENUITEMTEMPLATEHEADER | 4.0 and 5.0 |
MENUSTATE | 4.0 and 5.0 |
MENUWND | 4.0 and 5.0 |
MENU_EVENT_RECORD | 4.0 and 5.0 |
MESSAGE_RESOURCE_BLOCK | 4.0 and 5.0 |
MESSAGE_RESOURCE_DATA | 4.0 and 5.0 |
MESSAGE_RESOURCE_ENTRY | 4.0 and 5.0 |
MFT_SEGMENT_REFERENCE | 5.0 only |
MLIST | 4.0 and 5.0 |
MINIMIZEDMETRICS | 4.0 and 5.0 |
MINMAXINFO | 4.0 and 5.0 |
MONITOR | 5.0 only |
MONITORPOS | 5.0 only |
MONITORRECTS | 5.0 only |
MOUSEHOOKSTRUCT | 4.0 and 5.0 |
MOUSEHOOKSTRUCTEX | 5.0 only |
MOUSEKEYS | 4.0 and 5.0 |
MOUSE_ATTRIBUTES | 5.0 only |
MOUSE_DEVICE_INFO | 5.0 only |
MOUSE_INPUT_DATA | 5.0 only |
MOVESIZEDATA | 4.0 and 5.0 |
MSG | 4.0 and 5.0 |
MSGBOXDATA | 4.0 and 5.0 |
MSGBOXPARAMSA | 4.0 and 5.0 |
MSGBOXPARAMSW | 4.0 and 5.0 |
NAME_LINK | 5.0 only |
NAME_PAIR | 5.0 only |
NCCALCSIZE_PARAMS | 4.0 and 5.0 |
NEW_ATTRIBUTE_SIZES | 5.0 only |
NONCLIENTMETRICSA | 4.0 and 5.0 |
NONCLIENTMETRICSW | 4.0 and 5.0 |
NONOPAQUE_OPLOCK | 5.0 only |
NOTIFY | 4.0 and 5.0 |
NPAGED_LOOKASIDE_LIST | 5.0 only |
NSSHDR | 5.0 only |
NSSMINIHDR | 5.0 only |
NTFS_DATA | 5.0 only |
NTFS_IO_CONTEXT | 5.0 only |
NTFS_LOG_RECORD_HEADER | 5.0 only |
NTFS_MCB | 5.0 only |
NTFS_MCB_ARRAY | 5.0 only |
NTFS_MCB_ENTRY | 5.0 only |
NTFS_NAME_DESCRIPTOR | 5.0 only |
NTFS_OBJECTID_INFORMATION | 5.0 only |
NTFS_STATISTICS | 5.0 only |
NTFS_TUNNELED_DATA | 5.0 only |
NUKEM | 5.0 only |
OBCB | 5.0 only |
OBJECT_ATTRIBUTES | 5.0 only |
OBJECT_TYPE | 5.0 only |
OEMBITMAPINFO | 5.0 only |
OLD_FCB_SNAPSHOT | 5.0 only |
OPEN_ATTRIBUTE_ENTRY | 5.0 only |
OPFILTER_TIMER | 5.0 only |
OPLOCK_CLEANUP | 5.0 only |
PAGED_LOOKASIDE_LIST | 5.0 only |
PATHNAME_BUFFER | 5.0 only |
PEB | 5.0 only |
PERUSERSERVERINFO | 5.0 only |
POPUPMENU | 4.0 and 5.0 |
PREFIX_TABLE | 5.0 only |
PREFIX_TABLE_ENTRY | 5.0 only |
PRIVATE_CACHE_MAP | 5.0 only |
PROCESSINFO | 4.0 and 5.0 |
PROCOBJHEAD | 4.0 and 5.0 |
PROP | 4.0 and 5.0 |
PROPSET | 4.0 and 5.0 |
Q | 4.0 and 5.0 |
QMSG | 4.0 and 5.0 |
QUICK_INDEX | 5.0 only |
QUICK_INDEX_HINT | 5.0 only |
QUOTA_CONTROL_BLOCK | 5.0 only |
QUOTA_USER_DATA | 5.0 only |
READ_AHEAD_THREAD | 5.0 only |
RECONVERTSTRING | 5.0 only |
RECORD_ALLOCATION_CONTEXT | 5.0 only |
REPARSE_INDEX_KEY | 5.0 only |
REPARSE_POINT_INFORMATION | 5.0 only |
REQUEST_RAW_ENCRYPTED_DATA | 5.0 only |
RESERVED_BITMAP_RANGE | 5.0 only |
RESTART_AREA | 5.0 only |
RESTART_POINTERS | 5.0 only |
RESTART_TABLE | 5.0 only |
RTL_BITMAP | 5.0 only |
RTL_BITMAP_RUN | 5.0 only |
RTL_DRIVE_LETTER_CURDIR | 5.0 only |
RTL_GENERIC_TABLE | 5.0 only |
RTL_HEAP_PARAMETERS | 5.0 only |
RTL_PROCESS_BACKTRACES | 5.0 only |
RTL_PROCESS_BACKTRACE_INFORMATION | 5.0 only |
RTL_PROCESS_LOCKS | 5.0 only |
RTL_PROCESS_LOCK_INFORMATION | 5.0 only |
RTL_QUERY_REGISTRY_TABLE | 5.0 only |
RTL_RANGE | 5.0 only |
RTL_RANGE_LIST | 5.0 only |
RTL_RXACT_LOG | 5.0 only |
RTL_SPLAY_LINKS | 5.0 only |
RTL_TIME_ZONE_INFORMATION | 5.0 only |
RTL_USER_PROCESS_INFORMATION | 5.0 only |
RTL_USER_PROCESS_PARAMETERS | 5.0 only |
SBCALC | 4.0 and 5.0 |
SBDATA | 4.0 and 5.0 |
SBINFO | 4.0 and 5.0 |
SBTRACK | 4.0 and 5.0 |
SBWND | 4.0 and 5.0 |
SCB | 5.0 only |
SCB_DATA | 5.0 only |
SCB_INDEX | 5.0 only |
SCB_MFT | 5.0 only |
SCB_NONPAGED | 5.0 only |
SCB_SNAPSHOT | 5.0 only |
SCOPE_CONTEXT | 5.0 only |
SCREEN_INFORMATION | 5.0 only |
SCROLLINFO | 4.0 and 5.0 |
SECTION_OBJECT_POINTERS | 5.0 only |
SECURITY_DESCRIPTOR_HEADER | 5.0 only |
SECURITY_HASH_KEY | 5.0 only |
SERVERINFO | 4.0 and 5.0 |
SHAREDINFO | 4.0 and 5.0 |
SHARED_CACHE_MAP | 5.0 only |
SHARED_CACHE_MAP_LIST_CURSOR | 5.0 only |
SHARED_SECURITY | 5.0 only |
SHARE_ACCESS | 5.0 only |
SHORT2 | 5.0 only |
SHROBJHEAD | 4.0 only |
SH_LOCK | 5.0 only |
SID | 5.0 only |
SINGLE_LIST_ENTRY | 5.0 only |
SMS | 4.0 and 5.0 |
SMWP | 4.0 and 5.0 |
SPB | 5.0 only |
STANDARD_INFORMATION | 5.0 only |
TEB | 4.0 and 5.0 |
TERMINAL | 5.0 only |
TEXTMETRICA | 4.0 and 5.0 |
TEXTMETRICW | 4.0 and 5.0 |
THREADINFO | 4.0 and 5.0 |
THROBJHEAD | 4.0 and 5.0 |
TIMER | 4.0 and 5.0 |
TIME_FIELDS | 5.0 only |
TL | 5.0 only |
TOOLTIP | 5.0 only |
TOP_LEVEL_CONTEXT | 5.0 only |
TRACKMOUSEEVENT | 5.0 only |
TRANSACTION_ENTRY | 5.0 only |
TRANSMSG | 5.0 only |
TRANSMSGLIST | 5.0 only |
UNICODE_PREFIX_TABLE | 5.0 only |
UNICODE_PREFIX_TABLE_ENTRY | 5.0 only |
UNICODE_STRING | 5.0 only |
UPCASE_TABLE_AND_KEY | 5.0 only |
USERSTARTUPINFO | 4.0 and 5.0 |
VACB | 5.0 only |
VCB | 5.0 only |
VK_F | 5.0 only |
VK_TO_WCHAR_TABLE | 5.0 only |
VK_VSC | 5.0 only |
VM_COUNTERS | 5.0 only |
VOLUME_DEVICE_OBJECT | 5.0 only |
VOLUME_INFORMATION | 5.0 only |
VPB | 5.0 only |
VSC_VK | 5.0 only |
W32JOB | 5.0 only |
W32PROCESS | 4.0 and 5.0 |
W32THREAD | 4.0 and 5.0 |
WAITING_IRP | 5.0 only |
WAITING_LOCK | 5.0 only |
WAIT_FOR_NEW_LENGTH | 5.0 only |
WIN32HEAP | 5.0 only |
WINDOWPLACEMENT | 4.0 and 5.0 |
WINDOWPOS | 4.0 and 5.0 |
WINDOWSTATION | 4.0 and 5.0 |
WND | 4.0 and 5.0 |
WNDCLASSA | 4.0 and 5.0 |
WNDCLASSEXA | 4.0 and 5.0 |
WNDCLASSEXW | 4.0 and 5.0 |
WNDCLASSW | 4.0 and 5.0 |
WNDMSG | 4.0 and 5.0 |
WNDOBJ | 4.0 and 5.0 |
WORK_QUEUE_ENTRY | 5.0 only |
WORK_QUEUE_ITEM | 5.0 only |
WOWPROCESSINFO | 4.0 and 5.0 |
WOWTHREADINFO | 4.0 and 5.0 |
WW | 5.0 only |
Win32MapView | 5.0 only |
Win32Section | 5.0 only |
XSTATE | 5.0 only |
What principle ever governed the selection of structures for presentation through the !dso command is not known. The name USERKDX suggests help for kernel-mode debugging of the windowing system as implemented by the WIN32K.SYS driver.
One influence on the selection may be that a structure was eligible only if it was thought stable. The USERKDX debugger extension shipped with development kits which were new for each Windows version but not for each build and not even for each formally released service pack. Even assuming that programmers (both Microsoft’s and not) use the debugger, including its extensions, from the kit for the same version of Windows that they’re debugging, the !dso command would have greatly reduced worth if the structures it dumps change between builds.
Many structures were added to the !dso output for version 5.0. Some of these structures truly were new for version 5.0. Many were perhaps added simply because Microsoft’s own programmers had found the !dso command to be useful and sought to increase its coverage. Only a few were withdrawn.