Table of contents
TOC
Collapse the table of content
Expand the table of content
Last Updated: 1/27/2017

When a laptop or a convertible is attached to a USB dock it is essential that the operating system can identify the attached hardware device as “Dock” so that it can deliver the correct user experience. Example: Continuum hinting when a convertible is docked. To qualify as a dock, it is essential that the hardware device allows projection to external displays along with support for additional peripherals such as mouse, keyboard, storage etc. Thus, a USB hub alone or a port replicator does not quality as a dock. MS OS Descriptor is only recommended for docks with USB only or USB and Video over standard or proprietary connectors. (E.g. Surface dock, USB Type C dock). To indicate that a device is dock to the Windows OS the Extended Properties OS Descriptor can be used. The Extended properties descriptor will create a bitmasked registry key, MSOSDockProperties, which indicates different dock properties, these properties are listed in table 1.

OffsetProperty nameDescription
0IsDockThis value is set to 1 to indicate that the device is the dock
1DockHasIntegratedScreenThis value is set to 1 to indicate that the dock has a built-in screen
2DockHasIntegratedKeyboardThis value is set to 1 to indicate that the dock has a built-in keyboard
3DockHasIntegratedMouseThis value is set to 1 to indicate that the dock has a built-in mouse
4-31ReservedThese values are reserved and should be set to zero
All docks should have the “IsDock” property set properly, and the additional custom properties as needed. The “DockHasIntegratedScreen/Keyboard/Mouse” property should only be used if such a device is physically built into the dock (not if the dock supports this type of connection.) #Dock Example This example demonstrates how an Extended Properties OS Descriptor is used to indicate a device is a dock with a built in mouse, keyboard and monitor to the OS. In this example, by using the returned extended properties descriptors, the MSOSDockProperties DWORD is created under the following registry keys: HKLM\SYSTEM\CurrentControlSet\Enum\USB<DeviceVID&PID> <DeviceInstance>\Device Parameters DWORD: MSOSDockProperties = 1 #Header Example This section illustrates the layout of the header section, which includes the length of the entire descriptor, the number of function sections, and the version number.
OffsetFieldSize (bytes)TypeValueDescription
0dwLength4DWORD0x042The length of this custom property section is 66 bytes.
4bcdVersion2BCD0x0100Version 1.0
6wIndex2WORD0x0005Extended property OS descriptor
8wCount2WORD0s0001custom property

Custom property example

OffsetFieldSize (bytes)ValueDescription
0dwSize40x00000038Length of this custom property section is 56 bytes.
4dwPropertyDataType420x00000004 Property value stores a little-endian 32-bit integer.
10wPropertyNameLength38WORD0x00000026Extended property OS descriptor
8wCount2WORD0s0001custom property
© 2017 Microsoft