typedef struct _DEVICE_CAPABILITIES                                             // 32 / 32 elements; 0x0040 / 0x0040 Bytes
{
    UINT16                      Size;                                           // 0x0000 / 0x0000; 0x0002 / 0x0002 Bytes
    UINT16                      Version;                                        // 0x0002 / 0x0002; 0x0002 / 0x0002 Bytes
    struct                                                                      // 22 / 22 elements; 0x0004 / 0x0004 Bytes
    {
        ULONG32                 DeviceD1                                   : 1; // 0x0004 / 0x0004; Bit:   0
        ULONG32                 DeviceD2                                   : 1; // 0x0004 / 0x0004; Bit:   1
        ULONG32                 LockSupported                              : 1; // 0x0004 / 0x0004; Bit:   2
        ULONG32                 EjectSupported                             : 1; // 0x0004 / 0x0004; Bit:   3
        ULONG32                 Removable                                  : 1; // 0x0004 / 0x0004; Bit:   4
        ULONG32                 DockDevice                                 : 1; // 0x0004 / 0x0004; Bit:   5
        ULONG32                 UniqueID                                   : 1; // 0x0004 / 0x0004; Bit:   6
        ULONG32                 SilentInstall                              : 1; // 0x0004 / 0x0004; Bit:   7
        ULONG32                 RawDeviceOK                                : 1; // 0x0004 / 0x0004; Bit:   8
        ULONG32                 SurpriseRemovalOK                          : 1; // 0x0004 / 0x0004; Bit:   9
        ULONG32                 WakeFromD0                                 : 1; // 0x0004 / 0x0004; Bit:  10
        ULONG32                 WakeFromD1                                 : 1; // 0x0004 / 0x0004; Bit:  11
        ULONG32                 WakeFromD2                                 : 1; // 0x0004 / 0x0004; Bit:  12
        ULONG32                 WakeFromD3                                 : 1; // 0x0004 / 0x0004; Bit:  13
        ULONG32                 HardwareDisabled                           : 1; // 0x0004 / 0x0004; Bit:  14
        ULONG32                 NonDynamic                                 : 1; // 0x0004 / 0x0004; Bit:  15
        ULONG32                 WarmEjectSupported                         : 1; // 0x0004 / 0x0004; Bit:  16
        ULONG32                 NoDisplayInUI                              : 1; // 0x0004 / 0x0004; Bit:  17
        ULONG32                 Reserved1                                  : 1; // 0x0004 / 0x0004; Bit:  18
        ULONG32                 WakeFromInterrupt                          : 1; // 0x0004 / 0x0004; Bit:  19
        ULONG32                 SecureDevice                               : 1; // 0x0004 / 0x0004; Bit:  20
        ULONG32                 Reserved                                   :11; // 0x0004 / 0x0004; Bits: 21 - 31
    };
    ULONG32                     Address;                                        // 0x0008 / 0x0008; 0x0004 / 0x0004 Bytes
    ULONG32                     UINumber;                                       // 0x000C / 0x000C; 0x0004 / 0x0004 Bytes
    DEVICE_POWER_STATE          DeviceState[7];                                 // 0x0010 / 0x0010; 0x001C / 0x001C Bytes
    SYSTEM_POWER_STATE          SystemWake;                                     // 0x002C / 0x002C; 0x0004 / 0x0004 Bytes
    DEVICE_POWER_STATE          DeviceWake;                                     // 0x0030 / 0x0030; 0x0004 / 0x0004 Bytes
    ULONG32                     D1Latency;                                      // 0x0034 / 0x0034; 0x0004 / 0x0004 Bytes
    ULONG32                     D2Latency;                                      // 0x0038 / 0x0038; 0x0004 / 0x0004 Bytes
    ULONG32                     D3Latency;                                      // 0x003C / 0x003C; 0x0004 / 0x0004 Bytes
} DEVICE_CAPABILITIES, * PDEVICE_CAPABILITIES;

Return to OS-specific structures/unions/enums list.
Return to OS version list.