15#define USB_OTG_DESCRIPTOR_TYPE 0x09
16#define USB_DEBUG_DESCRIPTOR_TYPE 0x0A
17#define USB_BOS_DESCRIPTOR_TYPE 0x0F
18#define USB_DEVICE_CAPABILITY_DESCRIPTOR_TYPE 0x10
19#define USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_TYPE 0x30
20#define USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR_TYPE 0x31
22#define USB_FEATURE_BATTERY_WAKE_MASK 0x28
25#define USB_DEVICE_CAPABILITY_WIRELESS_USB 0x01
26#define USB_DEVICE_CAPABILITY_USB20_EXTENSION 0x02
27#define USB_DEVICE_CAPABILITY_SUPERSPEED_USB 0x03
28#define USB_DEVICE_CAPABILITY_CONTAINER_ID 0x04
29#define USB_DEVICE_CAPABILITY_PLATFORM 0x05
30#define USB_DEVICE_CAPABILITY_POWER_DELIVERY 0x06
31#define USB_DEVICE_CAPABILITY_BATTERY_INFO 0x07
32#define USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT 0x08
33#define USB_DEVICE_CAPABILITY_PD_PROVIDER_PORT 0x09
34#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB 0x0A
35#define USB_DEVICE_CAPABILITY_PRECISION_TIME_MEASUREMENT 0x0B
36#define USB_DEVICE_CAPABILITY_BILLBOARD 0x0D
37#define USB_DEVICE_CAPABILITY_FIRMWARE_STATUS 0x11
39#define USB_DEVICE_CAPABILITY_USB20_EXTENSION_BMATTRIBUTES_RESERVED_MASK 0xFFFF00E1
41#define USB_DEVICE_CAPABILITY_SUPERSPEED_BMATTRIBUTES_RESERVED_MASK 0xFD
42#define USB_DEVICE_CAPABILITY_SUPERSPEED_BMATTRIBUTES_LTM_CAPABLE 0x02
43#define USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_RESERVED_MASK 0xFFF0
44#define USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_LOW 0x0001
45#define USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_FULL 0x0002
46#define USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_HIGH 0x0004
47#define USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_SUPER 0x0008
48#define USB_DEVICE_CAPABILITY_SUPERSPEED_U1_DEVICE_EXIT_MAX_VALUE 0x0A
49#define USB_DEVICE_CAPABILITY_SUPERSPEED_U2_DEVICE_EXIT_MAX_VALUE 0x07FF
50#define USB_DEVICE_CAPABILITY_MAX_U1_LATENCY 0x0A
51#define USB_DEVICE_CAPABILITY_MAX_U2_LATENCY 0x07FF
53#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_BPS 0
54#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_KBPS 1
55#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_MBPS 2
56#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_GBPS 3
57#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_MODE_SYMMETRIC 0
58#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_MODE_ASYMMETRIC 1
59#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_DIR_RX 0
60#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_DIR_TX 1
61#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_PROTOCOL_SS 0
62#define USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_PROTOCOL_SSP 1
64#define USB_ENDPOINT_ADDRESS_MASK 0x0F
65#define USB_ENDPOINT_TYPE_BULK_RESERVED_MASK 0xFC
66#define USB_ENDPOINT_TYPE_CONTROL_RESERVED_MASK 0xFC
67#define USB_20_ENDPOINT_TYPE_INTERRUPT_RESERVED_MASK 0xFC
68#define USB_30_ENDPOINT_TYPE_INTERRUPT_RESERVED_MASK 0xCC
69#define USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE_MASK 0x30
70#define USB_ENDPOINT_TYPE_ISOCHRONOUS_RESERVED_MASK 0xC0
71#define USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION_MASK 0x0C
72#define USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE_MASK 0x30
74#define USB_ENDPOINT_SUPERSPEED_BULK_MAX_PACKET_SIZE 1024
75#define USB_ENDPOINT_SUPERSPEED_CONTROL_MAX_PACKET_SIZE 512
76#define USB_ENDPOINT_SUPERSPEED_ISO_MAX_PACKET_SIZE 1024
77#define USB_ENDPOINT_SUPERSPEED_INTERRUPT_MAX_PACKET_SIZE 1024
281#define USB_SUPERSPEEDPLUS_ISOCHRONOUS_MIN_BYTESPERINTERVAL 0xC001
282#define USB_SUPERSPEEDPLUS_ISOCHRONOUS_MAX_BYTESPERINTERVAL 0xFFFFFF
326#define USB_REQUEST_GET_STATE 0x02
327#define USB_REQUEST_GET_FIRMWARE_STATUS 0x1A
328#define USB_REQUEST_SET_FIRMWARE_STATUS 0x1B
329#define USB_REQUEST_SET_SEL 0x30
330#define USB_REQUEST_ISOCH_DELAY 0x31
333#define USB_FEATURE_FUNCTION_SUSPEND 0x00
334#define USB_FEATURE_TEST_MODE 0x02
335#define USB_FEATURE_OS_IS_PD_AWARE 0x29
336#define USB_FEATURE_POLICY_MODE 0x2A
337#define USB_FEATURE_U1_ENABLE 0x30
338#define USB_FEATURE_U2_ENABLE 0x31
339#define USB_FEATURE_LTM_ENABLE 0x32
340#define USB_FEATURE_LDM_ENABLE 0x35
341#define USB_FEATURE_CHARGING_POLICY 0x36
343#define USB_CHARGING_POLICY_DEFAULT 0x00
344#define USB_CHARGING_POLICY_ICCHPF 0x01
345#define USB_CHARGING_POLICY_ICCLPF 0x02
346#define USB_CHARGING_POLICY_NO_POWER 0x03
349#define USB_STATUS_PORT_STATUS 0x00
350#define USB_STATUS_PD_STATUS 0x01
351#define USB_STATUS_EXT_PORT_STATUS 0x02
355 0xD8DD60DF, 0x4589, 0x4CC7, 0x9C, 0xD2, 0x65, 0x9D, 0x9E, 0x64, 0x8A, 0x9F);
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
UCHAR bPowerOnToPowerGood
USHORT wHubCharacteristics
UCHAR bNumberOfAlternateModes
union _USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR::@4031 VconnPower
struct _USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR::@4032 AlternateMode[1]
UCHAR iAlternateModeSetting
USHORT VConnPowerNeededForFullFunctionality
USHORT NoVconnPowerRequired
UCHAR bPreferredAlternateMode
USHORT bcdUSBTypeCVersion
union _USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR::@4028 bmAttributes
union _USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR::@4023 wFunctionalitySupport
ULONG SublinkSpeedAttrCount
union _USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR::@4022 bmAttributes
ULONG SublinkSpeedIDCount
USHORT SublinkSpeedAttrID
USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED bmSublinkSpeedAttr[1]
UCHAR bFunctionalitySupport
ULONG BESLAndAlternateHIRDSupported
union _USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR::@4017 bmAttributes
struct _USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR::@4035::@4036 Bulk
struct _USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR::@4035::@4037 Isochronous
union _USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR::@4035 bmAttributes
UCHAR ConnectRemoteWakeEnable
UCHAR DisconnectRemoteWakeEnable
UCHAR OverCurrentRemoteWakeEnable
USHORT RemoteWakeupEnabled
USHORT RemoteWakeupCapable
USB_PORT_EXT_STATUS PortExtStatus
USB_PORT_STATUS_AND_CHANGE PortStatusChange
union _USB_PORT_EXT_STATUS * PUSB_PORT_EXT_STATUS
struct _USB_DEVICE_CAPABILITY_DESCRIPTOR USB_DEVICE_CAPABILITY_DESCRIPTOR
union _USB_DEVICE_STATUS USB_DEVICE_STATUS
struct _USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR
union _USB_INTERFACE_STATUS * PUSB_INTERFACE_STATUS
struct _USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR
struct _USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR
struct _USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR * PUSB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR
struct _USB_30_HUB_DESCRIPTOR * PUSB_30_HUB_DESCRIPTOR
union _USB_DEVICE_STATUS * PUSB_DEVICE_STATUS
struct _USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR * PUSB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR
struct _USB_BOS_DESCRIPTOR USB_BOS_DESCRIPTOR
struct _USB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR * PUSB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR
struct _USB_DEVICE_CAPABILITY_SUPERSPEED_USB_DESCRIPTOR * PUSB_DEVICE_CAPABILITY_SUPERSPEED_USB_DESCRIPTOR
struct _USB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR USB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR
struct _USB_30_HUB_DESCRIPTOR USB_30_HUB_DESCRIPTOR
struct _USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR
struct _USB_DEVICE_CAPABILITY_PLATFORM_DESCRIPTOR USB_DEVICE_CAPABILITY_PLATFORM_DESCRIPTOR
struct _USB_DEVICE_CAPABILITY_DESCRIPTOR * PUSB_DEVICE_CAPABILITY_DESCRIPTOR
union _USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED
union _USB_INTERFACE_STATUS USB_INTERFACE_STATUS
struct _USB_DEVICE_CAPABILITY_PLATFORM_DESCRIPTOR * PUSB_DEVICE_CAPABILITY_PLATFORM_DESCRIPTOR
union _USB_PORT_EXT_STATUS_AND_CHANGE USB_PORT_EXT_STATUS_AND_CHANGE
struct _USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR
struct _USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR * PUSB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR
union _USB_HUB_30_PORT_REMOTE_WAKE_MASK USB_HUB_30_PORT_REMOTE_WAKE_MASK
struct _USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR * PUSB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR
union _USB_PORT_EXT_STATUS USB_PORT_EXT_STATUS
struct _USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR * PUSB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR
struct _USB_BOS_DESCRIPTOR * PUSB_BOS_DESCRIPTOR
struct _USB_DEVICE_CAPABILITY_SUPERSPEED_USB_DESCRIPTOR USB_DEVICE_CAPABILITY_SUPERSPEED_USB_DESCRIPTOR
union _USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED * PUSB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED
union _USB_PORT_EXT_STATUS_AND_CHANGE * PUSB_PORT_EXT_STATUS_AND_CHANGE
struct _USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR
union _USB_HUB_30_PORT_REMOTE_WAKE_MASK * PUSB_HUB_30_PORT_REMOTE_WAKE_MASK
struct _USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR * PUSB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING ContainerID