The SYSTEM_DOCK_INFORMATION structure may be what a successful call to ZwQuerySystemInformation or NtQuerySystemInformation would produce in its output buffer when given the information class SystemDockInformation (0x29) in versions 3.51 and 4.0. Earlier and later versions reject this information class as invalid. In all builds yet inspected of these versions, it is instead rejected as not implemented. Presumably, it was some sort of placeholder, at best an experiment that never got far. Version 5.0 reworked Plug and Play substantially. Version 5.1 repurposes the information class’s numerical value as SystemVerifierRemoveDriverInformation and only then to set system information.

Documentation Status

The SYSTEM_DOCK_INFORMATION structure is not documented. It is known only from type information in early import libraries: GDISRVL.LIB from the Device Driver Kit (DDK) for Windows NT 3.51 and SHELL32.LIB from the DDK for Windows NT 4.0.


The SYSTEM_DOCK_INFORMATION is 0x14 bytes in version 3.51 and is evidently intended as a fixed-size header for variable-size information. By contrast, the structure in version 4.0 looks to be the whole of the information and is only 0x10 bytes.

Offset Definition Versions
INT DockState;
3.51 to 4.0
0x04 (3.51)
ULONG DockIdLength;
3.51 only
0x08 (3.51)
ULONG SerialNumberOffset;
3.51 only
0x0C (3.51)
ULONG SerialNumberLength;
3.51 only
0x10 (3.51)
3.51 only
INT DeviceBusType;
4.0 only
ULONG DeviceBusNumber;
4.0 only
ULONG SlotNumber;
4.0 only