typedef struct _DEVICE_CAPABILITIES { unsigned short Size; unsigned short Version; unsigned long DeviceD1 : 1; unsigned long DeviceD2 : 1; unsigned long LockSupported : 1; unsigned long EjectSupported : 1; unsigned long Removable : 1; unsigned long DockDevice : 1; unsigned long UniqueID : 1; unsigned long SilentInstall : 1; unsigned long RawDeviceOK : 1; unsigned long SurpriseRemovalOK : 1; unsigned long WakeFromD0 : 1; unsigned long WakeFromD1 : 1; unsigned long WakeFromD2 : 1; unsigned long WakeFromD3 : 1; unsigned long HardwareDisabled : 1; unsigned long NonDynamic : 1; unsigned long WarmEjectSupported : 1; unsigned long NoDisplayInUI : 1; unsigned long Reserved1 : 1; unsigned long Reserved : 13; unsigned long Address; unsigned long UINumber; DEVICE_POWER_STATE DeviceState[7]; SYSTEM_POWER_STATE SystemWake; DEVICE_POWER_STATE DeviceWake; unsigned long D1Latency; unsigned long D2Latency; unsigned long D3Latency; } DEVICE_CAPABILITIES, *PDEVICE_CAPABILITIES;