[1166] | 1 | #pragma once
|
---|
| 2 |
|
---|
| 3 | #include <pshpack1.h>
|
---|
| 4 |
|
---|
| 5 | #define USB_UnConnected_Device_Address 0
|
---|
| 6 | #define USB_UNCONNECTED_ADDRESS(address) (USB_UnConnected_Device_Address == (address))
|
---|
| 7 | #define USB_CONNECTED_ADDRESS(address) (USB_UnConnected_Device_Address != (address))
|
---|
| 8 |
|
---|
| 9 | #define PID_OUT 1
|
---|
| 10 | #define PID_IN 9
|
---|
| 11 | #define PID_SOF 5
|
---|
| 12 | #define PID_SETUP 13
|
---|
| 13 |
|
---|
| 14 | #define PID_DATA0 3
|
---|
| 15 | #define PID_DATA1 11
|
---|
| 16 | #define PID_DATA2 7
|
---|
| 17 | #define PID_MDATA 15
|
---|
| 18 |
|
---|
| 19 | #define USB_ACK 2
|
---|
| 20 | #define USB_NAK 10
|
---|
| 21 | #define USB_STALL 14
|
---|
| 22 | #define USB_NYET 6
|
---|
| 23 |
|
---|
| 24 | #define USB_PRE 12
|
---|
| 25 | #define USB_ERR 12
|
---|
| 26 | #define USB_SPLIT 8
|
---|
| 27 | #define USB_PING 4
|
---|
| 28 |
|
---|
| 29 | #define USB_TIMEOUT 0
|
---|
| 30 |
|
---|
| 31 | #define USB_SPEC 0x0200
|
---|
| 32 | #define HID_SPEC 0x0101
|
---|
| 33 |
|
---|
| 34 | #define USB_20_SPEC 0x0200
|
---|
| 35 | #define USB_11_SPEC 0x0110
|
---|
| 36 | #define USB_10_SPEC 0x0100
|
---|
| 37 |
|
---|
| 38 | #define HID_MAX_PACKET_SIZE0 0x08
|
---|
| 39 | #define MICROSOFT_VENDOR_ID 0x045E
|
---|
| 40 | #define HID_DEVICE_RELEASE 0x0100
|
---|
| 41 |
|
---|
| 42 | #define HID_MAX_PACKET_SIZE 0x0008
|
---|
| 43 | #define HID_POLLING_INTERVAL 0x0A
|
---|
| 44 | #define MAX_POLLING_INTERVAL 0xFF
|
---|
| 45 |
|
---|
| 46 | #define USB_DEFAULT_KEYBOARD_PRODUCT_ID 0x000B
|
---|
| 47 | #define USB_DEFAULT_MOUSE_PRODUCT_ID 0x0040
|
---|
| 48 |
|
---|
| 49 | #define DEVICE_DESCRIPTOR 0x01
|
---|
| 50 | #define CONFIGURATION_DESCRIPTOR 0x02
|
---|
| 51 | #define STRING_DESCRIPTOR 0x03
|
---|
| 52 | #define INTERFACE_DESCRIPTOR 0x04
|
---|
| 53 | #define ENDPOINT_DESCRIPTOR 0x05
|
---|
| 54 | #define QUALIFIER_DESCRIPTOR 0x06
|
---|
| 55 | #define OTHER_SPEED_DESCRIPTOR 0x07
|
---|
| 56 | #define INTERFACE_POWER_DESCRIPTOR 0x08
|
---|
| 57 |
|
---|
| 58 | #define HID_DESCRIPTOR 0x21
|
---|
| 59 | #define REPORT_DESCRIPTOR 0x22
|
---|
| 60 | #define PHYSICAL_DESCRIPTOR 0x23
|
---|
| 61 | #define HUB_DESCRIPTOR 0x29
|
---|
| 62 |
|
---|
| 63 | #define USB_DESCRIPTOR_TYPE_STD 0
|
---|
| 64 | #define USB_DESCRIPTOR_TYPE_CLASS 1
|
---|
| 65 | #define USB_DESCRIPTOR_TYPE_VENDOR 2
|
---|
| 66 | #define USB_DESCRIPTOR_TYPE_RESERVED 3
|
---|
| 67 |
|
---|
| 68 | #define DIR_HOST_TO_DEVICE 0
|
---|
| 69 | #define DIR_DEVICE_TO_HOST 1
|
---|
| 70 |
|
---|
| 71 | #define TYPE_STANDARD 0
|
---|
| 72 | #define TYPE_CLASS 1
|
---|
| 73 | #define TYPE_VENDOR 2
|
---|
| 74 | #define TYPE_RESERVED 3
|
---|
| 75 |
|
---|
| 76 | #define RCPT_DEVICE 0
|
---|
| 77 | #define RCPT_INTERFACE 1
|
---|
| 78 | #define RCPT_ENDPOINT 2
|
---|
| 79 | #define RCPT_OTHER 3
|
---|
| 80 | #define RCPT_PORT 4
|
---|
| 81 | #define RCPT_RPIPE 5
|
---|
| 82 |
|
---|
| 83 | #if !defined(MIDL_PASS)
|
---|
| 84 | #define USB_MAKE_REQUEST_TYPE(direction, type, recipient) \
|
---|
| 85 | (BYTE)( ((BYTE)direction << 7) | \
|
---|
| 86 | ((BYTE)type << 5) | ((BYTE)recipient & 0x07) )
|
---|
| 87 | #endif
|
---|
| 88 |
|
---|
| 89 | #define GET_STATUS 0
|
---|
| 90 | #define CLEAR_FEATURE 1
|
---|
| 91 | #define SET_FEATURE 3
|
---|
| 92 | #define SET_ADDRESS 5
|
---|
| 93 | #define GET_DESCRIPTOR 6
|
---|
| 94 | #define SET_DESCRIPTOR 7
|
---|
| 95 | #define GET_CONFIGURATION 8
|
---|
| 96 | #define SET_CONFIGURATION 9
|
---|
| 97 | #define GET_INTERFACE 10
|
---|
| 98 | #define SET_INTERFACE 11
|
---|
| 99 | #define SYNCH_FRAME 12
|
---|
| 100 |
|
---|
| 101 | #define USB_BULK_ONLY_MASS_STG_RESET 0xFF
|
---|
| 102 | #define USB_BULK_ONLY_MASS_STG_GET_MAX_LUN 0xFE
|
---|
| 103 |
|
---|
| 104 | #define GET_REPORT 0x01
|
---|
| 105 | #define GET_IDLE 0x02
|
---|
| 106 | #define GET_PROTOCOL 0x03
|
---|
| 107 | #define SET_REPORT 0x09
|
---|
| 108 | #define SET_IDLE 0x0A
|
---|
| 109 | #define SET_PROTOCOL 0x0B
|
---|
| 110 |
|
---|
| 111 | #define ADD_MMC_IE 20
|
---|
| 112 | #define REMOVE_MMC_IE 21
|
---|
| 113 | #define SET_NUM_DNTS 22
|
---|
| 114 | #define SET_CLUSTER_ID 23
|
---|
| 115 | #define SET_DEVICE_INFO 24
|
---|
| 116 | #define GET_TIME 25
|
---|
| 117 | #define SET_STREAM_INDEX 26
|
---|
| 118 | #define SET_WUSB_MAS 27
|
---|
| 119 | #define WUSB_CH_STOP 28
|
---|
| 120 |
|
---|
| 121 | #define EXEC_RC_CMD 40
|
---|
| 122 |
|
---|
| 123 | #define TIME_ADJ 0x01
|
---|
| 124 | #define TIME_BPST 0x02
|
---|
| 125 | #define TIME_WUSB 0x03
|
---|
| 126 |
|
---|
| 127 | #define HID_REPORT_TYPE_INPUT 0x01
|
---|
| 128 | #define HID_REPORT_TYPE_OUTPUT 0x02
|
---|
| 129 | #define HID_REPORT_TYPE_FEATURE 0x03
|
---|
| 130 |
|
---|
| 131 | #define HID_PROTOCOL_TYPE_BOOT 0x00
|
---|
| 132 | #define HID_PROTOCOL_TYPE_REPORT 0x01
|
---|
| 133 |
|
---|
| 134 | #define HUB_DEVICE_PROTOCOL_1X 0
|
---|
| 135 | #define HUB_DEVICE_PROTOCOL_SINGLE_TT 1
|
---|
| 136 | #define HUB_DEVICE_PROTOCOL_MULTI_TT 2
|
---|
| 137 |
|
---|
| 138 | #define HUB_INTERFACE_PROTOCOL_1X 0
|
---|
| 139 | #define HUB_INTERFACE_PROTOCOL_SINGLE_TT 0
|
---|
| 140 | #define HUB_INTERFACE_PROTOCOL_MULTI_TT_IN_SINGLE_TT_MODE 1
|
---|
| 141 | #define HUB_INTERFACE_PROTOCOL_MULTI_TT_IN_MULTI_TT_MODE 2
|
---|
| 142 |
|
---|
| 143 | #define CLEAR_TT_BUFFER 8
|
---|
| 144 | #define RESET_TT 9
|
---|
| 145 | #define GET_TT_STATE 10
|
---|
| 146 | #define STOP_TT 11
|
---|
| 147 |
|
---|
| 148 | #define C_HUB_LOCAL_POWER 0
|
---|
| 149 | #define C_HUB_OVER_CURRENT 1
|
---|
| 150 | #define PORT_CONNECTION 0
|
---|
| 151 | #define PORT_ENABLE 1
|
---|
| 152 | #define PORT_SUSPEND 2
|
---|
| 153 | #define PORT_OVER_CURRENT 3
|
---|
| 154 | #define PORT_RESET 4
|
---|
| 155 | #define PORT_POWER 8
|
---|
| 156 | #define PORT_LOW_SPEED 9
|
---|
| 157 | #define C_PORT_CONNECTION 16
|
---|
| 158 | #define C_PORT_ENABLE 17
|
---|
| 159 | #define C_PORT_SUSPEND 18
|
---|
| 160 | #define C_PORT_OVER_CURRENT 19
|
---|
| 161 | #define C_PORT_RESET 20
|
---|
| 162 | #define PORT_TEST 21
|
---|
| 163 | #define PORT_INDICATOR 22
|
---|
| 164 |
|
---|
| 165 | #define USBSETUPSIZE 8
|
---|
| 166 | #define USBINREQUEST 128
|
---|
| 167 |
|
---|
| 168 | #define BM_GET_DEVICE 128
|
---|
| 169 | #define BM_GET_INTERFACE 129
|
---|
| 170 | #define BM_GET_ENDPOINT 130
|
---|
| 171 |
|
---|
| 172 | #define BM_SET_DEVICE 0
|
---|
| 173 | #define BM_SET_INTERFACE 1
|
---|
| 174 | #define BM_SET_ENDPOINT 2
|
---|
| 175 |
|
---|
| 176 | #define HALT_ENDPOINT 0
|
---|
| 177 | #define REMOTE_WAKEUP 1
|
---|
| 178 | #define TEST_MODE 2
|
---|
| 179 |
|
---|
| 180 | #define DEVICE_DESCRIPTION_TYPE 0x100
|
---|
| 181 | #define QUALIFIER_DESCRIPTION_TYPE 0x600
|
---|
| 182 | #define OTHER_SPEED_DESCRIPTION_TYPE 0x700
|
---|
| 183 | #define CONFIG_DESCRIPTION_TYPE 0x200
|
---|
| 184 | #define STRING_DESCRIPTION_TYPE 0x300
|
---|
| 185 | #define MSOS_DESCRIPTION_TYPE 0x3EE
|
---|
| 186 |
|
---|
| 187 | #define CONFIG_BUS_POWERED 0x80
|
---|
| 188 | #define CONFIG_SELF_POWERED 0x40
|
---|
| 189 | #define CONFIG_REMOTE_WAKEUP 0x20
|
---|
| 190 |
|
---|
| 191 | #define USB_WA_MULTIFUNCTION 0x02
|
---|
| 192 | #define USB_WA_PROTOCOL 0x01
|
---|
| 193 | #define USB_RADIO_CONTROL 0x2
|
---|
| 194 |
|
---|
| 195 | #define USB_HID_CLASS_CODE 0x03
|
---|
| 196 | #define USB_MASS_STORAGE_CLASS_CODE 0x08
|
---|
| 197 | #define USB_HUB_CLASS_CODE 0x09
|
---|
| 198 | #define USB_MISCELLANEOUS 0xEF
|
---|
| 199 | #define USB_WIRELESS_WA 0xE0
|
---|
| 200 |
|
---|
| 201 | #define BOOT_INTERFACE_SUBCLASS 0x01
|
---|
| 202 | #define COMMON_CLASS 0x02
|
---|
| 203 | #define USB_RF_CONTROL 0x01
|
---|
| 204 |
|
---|
| 205 | #define PROTOCOL_NONE 0x00
|
---|
| 206 | #define PROTOCOL_KEYBOARD 0x01
|
---|
| 207 | #define PROTOCOL_MOUSE 0x02
|
---|
| 208 |
|
---|
| 209 | #define EP_OUT 0
|
---|
| 210 | #define EP_IN 1
|
---|
| 211 |
|
---|
| 212 | #define MAKE_ENDPOINT_ADDRESS(num, dir) \
|
---|
| 213 | ( ((BYTE)(dir) << 7) | ((BYTE)(num) & 0x0F) )
|
---|
| 214 |
|
---|
| 215 | #define ENDPOINT_TYPE 0x03
|
---|
| 216 | #define CONTROL_ENDPOINT 0
|
---|
| 217 | #define ISOCHRONOUS_ENDPOINT 1
|
---|
| 218 | #define BULK_ENDPOINT 2
|
---|
| 219 | #define INTERRUPT_ENDPOINT 3
|
---|
| 220 |
|
---|
| 221 | typedef union _USBDESCRIPTORTYPE {
|
---|
| 222 | BYTE Byte;
|
---|
| 223 | #if !defined(MIDL_PASS)
|
---|
| 224 | struct Bits {
|
---|
| 225 | BYTE Descriptor:5;
|
---|
| 226 | BYTE Type:2;
|
---|
| 227 | BYTE Reserved:1;
|
---|
| 228 | } Bits;
|
---|
| 229 | #endif
|
---|
| 230 | } USBDESCRIPTORTYPE;
|
---|
| 231 |
|
---|
| 232 | typedef union _USBCONFIGATTRIBS {
|
---|
| 233 | BYTE Byte;
|
---|
| 234 | #if !defined(MIDL_PASS)
|
---|
| 235 | struct Bits {
|
---|
| 236 | BYTE bReserved0_4:5;
|
---|
| 237 | BYTE bRemoteWakeup:1;
|
---|
| 238 | BYTE bSelfPowered:1;
|
---|
| 239 | BYTE bReserved7:1;
|
---|
| 240 | } Bits;
|
---|
| 241 | #endif
|
---|
| 242 | } USBCONFIGATTRIBS;
|
---|
| 243 |
|
---|
| 244 | typedef union _USBREQUESTTYPE {
|
---|
| 245 | BYTE Byte;
|
---|
| 246 | #if !defined(MIDL_PASS)
|
---|
| 247 | struct Bits {
|
---|
| 248 | BYTE Recipient:5;
|
---|
| 249 | BYTE Type:2;
|
---|
| 250 | BYTE Direction:1;
|
---|
| 251 | } Bits;
|
---|
| 252 | #endif
|
---|
| 253 | } USBREQUESTTYPE;
|
---|
| 254 |
|
---|
| 255 | #if !defined(MIDL_PASS)
|
---|
| 256 | C_ASSERT((sizeof(USBREQUESTTYPE) == sizeof(BYTE)));
|
---|
| 257 | #endif
|
---|
| 258 |
|
---|
| 259 | typedef struct _USBSETUPREQUEST {
|
---|
| 260 | USBREQUESTTYPE bmRequestType;
|
---|
| 261 | BYTE bRequest;
|
---|
| 262 | SHORT sSetupValue;
|
---|
| 263 | SHORT sSetupIndex;
|
---|
| 264 | SHORT sSetupLength;
|
---|
| 265 | } USBSETUPREQUEST;
|
---|
| 266 |
|
---|
| 267 | #if !defined(MIDL_PASS)
|
---|
| 268 |
|
---|
| 269 | typedef struct _USBDEVICEDESC {
|
---|
| 270 | BYTE bLength;
|
---|
| 271 | BYTE bDescriptorType;
|
---|
| 272 | USHORT usUSB;
|
---|
| 273 | BYTE bDeviceClass;
|
---|
| 274 | BYTE bDeviceSubClass;
|
---|
| 275 | BYTE bProtocol;
|
---|
| 276 | BYTE bMaxPacket0;
|
---|
| 277 | USHORT usVendor;
|
---|
| 278 | USHORT usProduct;
|
---|
| 279 | USHORT usDeviceNumber;
|
---|
| 280 | BYTE bManufacturer;
|
---|
| 281 | BYTE bProductDesc;
|
---|
| 282 | BYTE bSerialNumber;
|
---|
| 283 | BYTE bNumConfigs;
|
---|
| 284 | } USBDEVICEDESC;
|
---|
| 285 |
|
---|
| 286 | typedef struct _USBCONFIGDESC {
|
---|
| 287 | BYTE bLength;
|
---|
| 288 | BYTE bDescriptorType;
|
---|
| 289 | USHORT usTotalLength;
|
---|
| 290 | BYTE bNumInterfaces;
|
---|
| 291 | BYTE bConfigValue;
|
---|
| 292 | BYTE bConfig;
|
---|
| 293 | BYTE bAttributes;
|
---|
| 294 | BYTE bMaxPower;
|
---|
| 295 | } USBCONFIGDESC;
|
---|
| 296 |
|
---|
| 297 |
|
---|
| 298 | typedef struct _USBINTERFACEDESC {
|
---|
| 299 | BYTE bLength;
|
---|
| 300 | BYTE bDescriptorType;
|
---|
| 301 | BYTE bInterfaceNumber;
|
---|
| 302 | BYTE bAlternateSetting;
|
---|
| 303 | BYTE bNumEndpoints;
|
---|
| 304 | BYTE bClass;
|
---|
| 305 | BYTE bSubClass;
|
---|
| 306 | BYTE bProtocol;
|
---|
| 307 | BYTE bDescription;
|
---|
| 308 | } USBINTERFACEDESC;
|
---|
| 309 |
|
---|
| 310 | #define ENDPOINT_DIRECTION_OUT 0
|
---|
| 311 | #define ENDPOINT_DIRECTION_IN 1
|
---|
| 312 |
|
---|
| 313 | typedef union _USBENDPOINTADDRESS {
|
---|
| 314 | BYTE Byte;
|
---|
| 315 | struct Bits {
|
---|
| 316 | BYTE Number:4;
|
---|
| 317 | BYTE Reserved:3;
|
---|
| 318 | BYTE Direction:1;
|
---|
| 319 | } Bits;
|
---|
| 320 | } USBENDPOINTADDRESS;
|
---|
| 321 |
|
---|
| 322 | C_ASSERT((sizeof(USBENDPOINTADDRESS) == sizeof(BYTE)));
|
---|
| 323 |
|
---|
| 324 | #define USB_TRANSFER_TYPE_CONTROL 0
|
---|
| 325 | #define USB_TRANSFER_TYPE_ISOCH 1
|
---|
| 326 | #define USB_TRANSFER_TYPE_BULK 2
|
---|
| 327 | #define USB_TRANSFER_TYPE_INTERRUPT 3
|
---|
| 328 |
|
---|
| 329 | #define USB_SYNC_TYPE_NONE 0
|
---|
| 330 | #define USB_SYNC_TYPE_ASYNC 1
|
---|
| 331 | #define USB_SYNC_TYPE_ADAPTIVE 2
|
---|
| 332 | #define USB_SYNC_TYPE_SYNC 3
|
---|
| 333 |
|
---|
| 334 | #define USB_USAGE_TYPE_DATA 0
|
---|
| 335 | #define USB_USAGE_TYPE_FEEDBACK 1
|
---|
| 336 | #define USB_USAGE_TYPE_IMPLICIT 2
|
---|
| 337 | #define USB_USAGE_TYPE_RESERVED 3
|
---|
| 338 |
|
---|
| 339 | typedef union _USBENDPOINTATTRIBS {
|
---|
| 340 | BYTE Byte;
|
---|
| 341 | struct Bits {
|
---|
| 342 | BYTE TransferType:2;
|
---|
| 343 | BYTE SyncType:2;
|
---|
| 344 | BYTE UsageType:2;
|
---|
| 345 | BYTE Reserved:2;
|
---|
| 346 | } Bits;
|
---|
| 347 | } USBENDPOINTATTRIBS;
|
---|
| 348 |
|
---|
| 349 | C_ASSERT((sizeof(USBENDPOINTATTRIBS) == sizeof(BYTE)));
|
---|
| 350 |
|
---|
| 351 | typedef union _USBMAXPACKET {
|
---|
| 352 | WORD Word;
|
---|
| 353 | struct Bits {
|
---|
| 354 | WORD Size:11;
|
---|
| 355 | WORD AdditionalXactions:2;
|
---|
| 356 | WORD Reserved:3;
|
---|
| 357 | } Bits;
|
---|
| 358 | } USBMAXPACKET;
|
---|
| 359 |
|
---|
| 360 | C_ASSERT((sizeof(USBMAXPACKET) == sizeof(WORD)));
|
---|
| 361 |
|
---|
| 362 | typedef struct _USBENDPOINTDESC {
|
---|
| 363 | BYTE bLength;
|
---|
| 364 | BYTE bDescriptorType;
|
---|
| 365 | USBENDPOINTADDRESS Address;
|
---|
| 366 | USBENDPOINTATTRIBS Attributes;
|
---|
| 367 | USBMAXPACKET MaxPacket;
|
---|
| 368 | BYTE bInterval;
|
---|
| 369 | } USBENDPOINTDESC;
|
---|
| 370 |
|
---|
| 371 | typedef struct _USBQUALIFIERDESC {
|
---|
| 372 | BYTE bLength;
|
---|
| 373 | BYTE bDescriptorType;
|
---|
| 374 | USHORT usUSB;
|
---|
| 375 | BYTE bDeviceClass;
|
---|
| 376 | BYTE bDeviceSubClass;
|
---|
| 377 | BYTE bProtocol;
|
---|
| 378 | BYTE bMaxPacket;
|
---|
| 379 | BYTE bNumConfigs;
|
---|
| 380 | BYTE bReserved;
|
---|
| 381 | } USBQUALIFIERDESC;
|
---|
| 382 |
|
---|
| 383 | typedef struct _USBSTRINGDESC {
|
---|
| 384 | BYTE bLength;
|
---|
| 385 | BYTE bDescriptorType;
|
---|
| 386 | WCHAR wchData[1];
|
---|
| 387 | } USBSTRINGDESC;
|
---|
| 388 |
|
---|
| 389 | typedef struct _USBSTRINGLANGIDS {
|
---|
| 390 | BYTE bLength;
|
---|
| 391 | BYTE bDescriptorType;
|
---|
| 392 | WORD wLANGIDs[1];
|
---|
| 393 | } USBSTRINGLANGIDS;
|
---|
| 394 |
|
---|
| 395 | typedef struct _USBHIDSTANDARDDESC {
|
---|
| 396 | BYTE bLength;
|
---|
| 397 | BYTE bDescriptorType;
|
---|
| 398 | USHORT bcdHID;
|
---|
| 399 | BYTE bCountryCode;
|
---|
| 400 | BYTE bNumDescriptors;
|
---|
| 401 | } USBHIDSTANDARDDESC;
|
---|
| 402 |
|
---|
| 403 | typedef struct _USBHIDOPTIONALDESC {
|
---|
| 404 | BYTE bClassDescriptorType;
|
---|
| 405 | USHORT usDescriptorLength;
|
---|
| 406 | } USBHIDOPTIONALDESC;
|
---|
| 407 |
|
---|
| 408 | typedef struct _USBPHYSICALDESCSET0 {
|
---|
| 409 | BYTE bNumber;
|
---|
| 410 | BYTE bLength;
|
---|
| 411 | } USBPHYSICALDESCSET0;
|
---|
| 412 |
|
---|
| 413 | typedef union _USBPHYSICALDESCSET {
|
---|
| 414 | BYTE bPhysicalInfo;
|
---|
| 415 | struct Bits {
|
---|
| 416 | BYTE bPreference:5;
|
---|
| 417 | BYTE bBias:3;
|
---|
| 418 | } Bits;
|
---|
| 419 | } USBPHYSICALDESCSET;
|
---|
| 420 |
|
---|
| 421 | typedef struct _USBPHYSICALDESCITEM {
|
---|
| 422 | BYTE bDesignator;
|
---|
| 423 | union Flags {
|
---|
| 424 | BYTE bFlags;
|
---|
| 425 | struct Bits {
|
---|
| 426 | BYTE bEffort:5;
|
---|
| 427 | BYTE bQualifier:3;
|
---|
| 428 | } Bits;
|
---|
| 429 | } Flags;
|
---|
| 430 | } USBPHYSICALDESCITEM;
|
---|
| 431 |
|
---|
| 432 | typedef union _USBHUBCHARACTERISTICS {
|
---|
| 433 | WORD wHubCharacteristics;
|
---|
| 434 | struct Bits {
|
---|
| 435 | BYTE bLogicalPowerSwitchingMode:2;
|
---|
| 436 | BYTE fCompoundDevice:1;
|
---|
| 437 | BYTE bOverCurrentMode:2;
|
---|
| 438 | BYTE bTTThinkTime:2;
|
---|
| 439 | BYTE fPortIndicatorSupport:1;
|
---|
| 440 | BYTE bReserved:8;
|
---|
| 441 | } Bits;
|
---|
| 442 | } USBHUBCHARACTERISTICS;
|
---|
| 443 |
|
---|
| 444 | #if !defined(MIDL_PASS)
|
---|
| 445 | C_ASSERT((sizeof(USBHUBCHARACTERISTICS) == sizeof(WORD)));
|
---|
| 446 | #endif
|
---|
| 447 |
|
---|
| 448 | typedef struct _USBHUBDESC {
|
---|
| 449 | BYTE bLength;
|
---|
| 450 | BYTE bDescriptorType;
|
---|
| 451 | BYTE bNumberOfPorts;
|
---|
| 452 | USBHUBCHARACTERISTICS Characteristics;
|
---|
| 453 | BYTE bPwrOn2PwrGood;
|
---|
| 454 | BYTE bHubContrCurrent;
|
---|
| 455 | BYTE bDeviceRemovable[32];
|
---|
| 456 | BYTE bPortPwrCtrlMask[32];
|
---|
| 457 | } USBHUBDESC;
|
---|
| 458 |
|
---|
| 459 | #if !defined(MIDL_PASS)
|
---|
| 460 | C_ASSERT((sizeof(USBHUBDESC) == 71));
|
---|
| 461 | #endif
|
---|
| 462 |
|
---|
| 463 | typedef union _USBHUBPORTSTATUS {
|
---|
| 464 | WORD wPortStatus;
|
---|
| 465 | struct Bits {
|
---|
| 466 | BYTE fCurrentConnectionStatus:1;
|
---|
| 467 | BYTE fEnabled:1;
|
---|
| 468 | BYTE fSuspend:1;
|
---|
| 469 | BYTE fOverCurrent:1;
|
---|
| 470 | BYTE fReset:1;
|
---|
| 471 | BYTE bReserved1:3;
|
---|
| 472 | BYTE fPortPower:1;
|
---|
| 473 | BYTE fLowSpeedDevice:1;
|
---|
| 474 | BYTE fHighSpeedDevice:1;
|
---|
| 475 | BYTE fTestMode:1;
|
---|
| 476 | BYTE fPortIndicatorControl:1;
|
---|
| 477 | BYTE bReserved2:3;
|
---|
| 478 | } Bits;
|
---|
| 479 | } USBHUBPORTSTATUS;
|
---|
| 480 |
|
---|
| 481 | #if !defined(MIDL_PASS)
|
---|
| 482 | C_ASSERT((sizeof(USBHUBPORTSTATUS) == sizeof(WORD)));
|
---|
| 483 | #endif
|
---|
| 484 |
|
---|
| 485 | typedef union _USBHUBPORTSTATUSCHANGE {
|
---|
| 486 | WORD wPortStatusChange;
|
---|
| 487 | struct Bits {
|
---|
| 488 | BYTE fConnectionStatusChange:1;
|
---|
| 489 | BYTE fEnabledChange:1;
|
---|
| 490 | BYTE fSuspendChange:1;
|
---|
| 491 | BYTE fOverCurrentChange:1;
|
---|
| 492 | BYTE fResetChange:1;
|
---|
| 493 | BYTE bReserved1:3;
|
---|
| 494 | BYTE bReserved2:8;
|
---|
| 495 | } Bits;
|
---|
| 496 | } USBHUBPORTSTATUSCHANGE;
|
---|
| 497 |
|
---|
| 498 | #if !defined(MIDL_PASS)
|
---|
| 499 | C_ASSERT((sizeof(USBHUBPORTSTATUSCHANGE) == sizeof(WORD)));
|
---|
| 500 | #endif
|
---|
| 501 |
|
---|
| 502 | typedef struct _USBHUBPORTDATA {
|
---|
| 503 | USBHUBPORTSTATUS PortStatus;
|
---|
| 504 | USBHUBPORTSTATUSCHANGE PortStatusChange;
|
---|
| 505 | } USBHUBPORTDATA;
|
---|
| 506 |
|
---|
| 507 | #define USB_MAKE_LANGID(lang, sublang) \
|
---|
| 508 | ((((USHORT)(sublang)) << 10) | (USHORT)(lang))
|
---|
| 509 |
|
---|
| 510 | #define USB_LANG_RESERVED 0x00
|
---|
| 511 | #define USB_LANG_ARABIC 0x01
|
---|
| 512 | #define USB_LANG_BULGARIAN 0x02
|
---|
| 513 | #define USB_LANG_CATALAN 0x03
|
---|
| 514 | #define USB_LANG_CHINESE 0x04
|
---|
| 515 | #define USB_LANG_CZECH 0x05
|
---|
| 516 | #define USB_LANG_DANISH 0x06
|
---|
| 517 | #define USB_LANG_GERMAN 0x07
|
---|
| 518 | #define USB_LANG_GREEK 0x08
|
---|
| 519 | #define USB_LANG_ENGLISH 0x09
|
---|
| 520 | #define USB_LANG_SPANISH 0x0a
|
---|
| 521 | #define USB_LANG_FINNISH 0x0b
|
---|
| 522 | #define USB_LANG_FRENCH 0x0c
|
---|
| 523 | #define USB_LANG_HEBREW 0x0d
|
---|
| 524 | #define USB_LANG_HUNGARIAN 0x0e
|
---|
| 525 | #define USB_LANG_ICELANDIC 0x0f
|
---|
| 526 | #define USB_LANG_ITALIAN 0x10
|
---|
| 527 | #define USB_LANG_JAPANESE 0x11
|
---|
| 528 | #define USB_LANG_KOREAN 0x12
|
---|
| 529 | #define USB_LANG_DUTCH 0x13
|
---|
| 530 | #define USB_LANG_NORWEGIAN 0x14
|
---|
| 531 | #define USB_LANG_POLISH 0x15
|
---|
| 532 | #define USB_LANG_PORTUGUESE 0x16
|
---|
| 533 | #define USB_LANG_ROMANIAN 0x18
|
---|
| 534 | #define USB_LANG_RUSSIAN 0x19
|
---|
| 535 | #define USB_LANG_CROATIAN 0x1a
|
---|
| 536 | #define USB_LANG_SERBIAN 0x1a
|
---|
| 537 | #define USB_LANG_SLOVAK 0x1b
|
---|
| 538 | #define USB_LANG_ALBANIAN 0x1c
|
---|
| 539 | #define USB_LANG_SWEDISH 0x1d
|
---|
| 540 | #define USB_LANG_THAI 0x1e
|
---|
| 541 | #define USB_LANG_TURKISH 0x1f
|
---|
| 542 | #define USB_LANG_URDU 0x20
|
---|
| 543 | #define USB_LANG_INDONESIAN 0x21
|
---|
| 544 | #define USB_LANG_UKRANIAN 0x22
|
---|
| 545 | #define USB_LANG_BELARUSIAN 0x23
|
---|
| 546 | #define USB_LANG_SLOVENIAN 0x24
|
---|
| 547 | #define USB_LANG_ESTONIAN 0x25
|
---|
| 548 | #define USB_LANG_LATVIAN 0x26
|
---|
| 549 | #define USB_LANG_LITHUANIAN 0x27
|
---|
| 550 | #define USB_LANG_FARSI 0x29
|
---|
| 551 | #define USB_LANG_VIETNAMESE 0x2a
|
---|
| 552 | #define USB_LANG_ARMENIAN 0x2b
|
---|
| 553 | #define USB_LANG_AZERI 0x2c
|
---|
| 554 | #define USB_LANG_BASQUE 0x2d
|
---|
| 555 | #define USB_LANG_MACEDONIAN 0x2f
|
---|
| 556 | #define USB_LANG_AFRIKAANS 0x36
|
---|
| 557 | #define USB_LANG_GEORGIAN 0x37
|
---|
| 558 | #define USB_LANG_FAEROESE 0x38
|
---|
| 559 | #define USB_LANG_HINDI 0x39
|
---|
| 560 | #define USB_LANG_MALAY 0x3e
|
---|
| 561 | #define USB_LANG_KAZAK 0x3f
|
---|
| 562 | #define USB_LANG_SWAHILI 0x41
|
---|
| 563 | #define USB_LANG_UZBEK 0x43
|
---|
| 564 | #define USB_LANG_TATAR 0x44
|
---|
| 565 | #define USB_LANG_BENGALI 0x45
|
---|
| 566 | #define USB_LANG_PUNJABI 0x46
|
---|
| 567 | #define USB_LANG_GUJARATI 0x47
|
---|
| 568 | #define USB_LANG_ORIYA 0x48
|
---|
| 569 | #define USB_LANG_TAMIL 0x49
|
---|
| 570 | #define USB_LANG_TELUGU 0x4a
|
---|
| 571 | #define USB_LANG_KANNADA 0x4b
|
---|
| 572 | #define USB_LANG_MALAYALAM 0x4c
|
---|
| 573 | #define USB_LANG_ASSAMESE 0x4d
|
---|
| 574 | #define USB_LANG_MARATHI 0x4e
|
---|
| 575 | #define USB_LANG_SANSKRIT 0x4f
|
---|
| 576 | #define USB_LANG_KONKANI 0x57
|
---|
| 577 | #define USB_LANG_MANIPURI 0x58
|
---|
| 578 | #define USB_LANG_SINDHI 0x59
|
---|
| 579 | #define USB_LANG_KASHMIRI 0x60
|
---|
| 580 | #define USB_LANG_NEPALI 0x61
|
---|
| 581 | #define USB_LANG_HID 0xff
|
---|
| 582 |
|
---|
| 583 | #define USB_SUBLANG_ARABIC_SAUDI_ARABIA 0x01
|
---|
| 584 | #define USB_SUBLANG_ARABIC_SAUDI_ARABIA 0x01
|
---|
| 585 | #define USB_SUBLANG_ARABIC_IRAQ 0x02
|
---|
| 586 | #define USB_SUBLANG_ARABIC_EGYPT 0x03
|
---|
| 587 | #define USB_SUBLANG_ARABIC_LIBYA 0x04
|
---|
| 588 | #define USB_SUBLANG_ARABIC_ALGERIA 0x05
|
---|
| 589 | #define USB_SUBLANG_ARABIC_MOROCCO 0x06
|
---|
| 590 | #define USB_SUBLANG_ARABIC_TUNISIA 0x07
|
---|
| 591 | #define USB_SUBLANG_ARABIC_OMAN 0x08
|
---|
| 592 | #define USB_SUBLANG_ARABIC_YEMEN 0x09
|
---|
| 593 | #define USB_SUBLANG_ARABIC_SYRIA 0x10
|
---|
| 594 | #define USB_SUBLANG_ARABIC_JORDAN 0x11
|
---|
| 595 | #define USB_SUBLANG_ARABIC_LEBANON 0x12
|
---|
| 596 | #define USB_SUBLANG_ARABIC_KUWAIT 0x13
|
---|
| 597 | #define USB_SUBLANG_ARABIC_UAE 0x14
|
---|
| 598 | #define USB_SUBLANG_ARABIC_BAHRAIN 0x15
|
---|
| 599 | #define USB_SUBLANG_ARABIC_QATAR 0x16
|
---|
| 600 | #define USB_SUBLANG_AZERI_CYRILLIC 0x01
|
---|
| 601 | #define USB_SUBLANG_AZERI_LATIN 0x02
|
---|
| 602 | #define USB_SUBLANG_CHINESE_TRADITIONAL 0x01
|
---|
| 603 | #define USB_SUBLANG_CHINESE_SIMPLIFIED 0x02
|
---|
| 604 | #define USB_SUBLANG_CHINESE_HONGKONG 0x03
|
---|
| 605 | #define USB_SUBLANG_CHINESE_SINGAPORE 0x04
|
---|
| 606 | #define USB_SUBLANG_CHINESE_MACAU 0x05
|
---|
| 607 | #define USB_SUBLANG_DUTCH 0x01
|
---|
| 608 | #define USB_SUBLANG_DUTCH_BELGIAN 0x02
|
---|
| 609 | #define USB_SUBLANG_ENGLISH_US 0x01
|
---|
| 610 | #define USB_SUBLANG_ENGLISH_UK 0x02
|
---|
| 611 | #define USB_SUBLANG_ENGLISH_AUS 0x03
|
---|
| 612 | #define USB_SUBLANG_ENGLISH_CAN 0x04
|
---|
| 613 | #define USB_SUBLANG_ENGLISH_NZ 0x05
|
---|
| 614 | #define USB_SUBLANG_ENGLISH_EIRE 0x06
|
---|
| 615 | #define USB_SUBLANG_ENGLISH_SOUTH_AFRICA 0x07
|
---|
| 616 | #define USB_SUBLANG_ENGLISH_JAMAICA 0x08
|
---|
| 617 | #define USB_SUBLANG_ENGLISH_CARIBBEAN 0x09
|
---|
| 618 | #define USB_SUBLANG_ENGLISH_BELIZE 0x0a
|
---|
| 619 | #define USB_SUBLANG_ENGLISH_TRINIDAD 0x0b
|
---|
| 620 | #define USB_SUBLANG_ENGLISH_PHILIPPINES 0x0c
|
---|
| 621 | #define USB_SUBLANG_ENGLISH_ZIMBABWE 0x0d
|
---|
| 622 | #define USB_SUBLANG_FRENCH 0x01
|
---|
| 623 | #define USB_SUBLANG_FRENCH_BELGIAN 0x02
|
---|
| 624 | #define USB_SUBLANG_FRENCH_CANADIAN 0x03
|
---|
| 625 | #define USB_SUBLANG_FRENCH_SWISS 0x04
|
---|
| 626 | #define USB_SUBLANG_FRENCH_LUXEMBOURG 0x05
|
---|
| 627 | #define USB_SUBLANG_FRENCH_MONACO 0x06
|
---|
| 628 | #define USB_SUBLANG_GERMAN 0x01
|
---|
| 629 | #define USB_SUBLANG_GERMAN_SWISS 0x02
|
---|
| 630 | #define USB_SUBLANG_GERMAN_AUSTRIAN 0x03
|
---|
| 631 | #define USB_SUBLANG_GERMAN_LUXEMBOURG 0x04
|
---|
| 632 | #define USB_SUBLANG_GERMAN_LIECHTENSTEIN 0x05
|
---|
| 633 | #define USB_SUBLANG_ITALIAN 0x01
|
---|
| 634 | #define USB_SUBLANG_ITALIAN_SWISS 0x02
|
---|
| 635 | #define USB_SUBLANG_KASHMIRI_INDIA 0x02
|
---|
| 636 | #define USB_SUBLANG_KOREAN 0x01
|
---|
| 637 | #define USB_SUBLANG_LITHUANIAN 0x01
|
---|
| 638 | #define USB_SUBLANG_MALAY_MALAYSIA 0x01
|
---|
| 639 | #define USB_SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02
|
---|
| 640 | #define USB_SUBLANG_NEPALI_INDIA 0x02
|
---|
| 641 | #define USB_SUBLANG_NORWEGIAN_BOKMAL 0x01
|
---|
| 642 | #define USB_SUBLANG_NORWEGIAN_NYNORSK 0x02
|
---|
| 643 | #define USB_SUBLANG_PORTUGUESE 0x01
|
---|
| 644 | #define USB_SUBLANG_PORTUGUESE_BRAZILIAN 0x02
|
---|
| 645 | #define USB_SUBLANG_SERBIAN_LATIN 0x02
|
---|
| 646 | #define USB_SUBLANG_SERBIAN_CYRILLIC 0x03
|
---|
| 647 | #define USB_SUBLANG_SPANISH 0x01
|
---|
| 648 | #define USB_SUBLANG_SPANISH_MEXICAN 0x02
|
---|
| 649 | #define USB_SUBLANG_SPANISH_MODERN 0x03
|
---|
| 650 | #define USB_SUBLANG_SPANISH_GUATEMALA 0x04
|
---|
| 651 | #define USB_SUBLANG_SPANISH_COSTA_RICA 0x05
|
---|
| 652 | #define USB_SUBLANG_SPANISH_PANAMA 0x06
|
---|
| 653 | #define USB_SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07
|
---|
| 654 | #define USB_SUBLANG_SPANISH_VENEZUELA 0x08
|
---|
| 655 | #define USB_SUBLANG_SPANISH_COLOMBIA 0x09
|
---|
| 656 | #define USB_SUBLANG_SPANISH_PERU 0x0a
|
---|
| 657 | #define USB_SUBLANG_SPANISH_ARGENTINA 0x0b
|
---|
| 658 | #define USB_SUBLANG_SPANISH_ECUADOR 0x0c
|
---|
| 659 | #define USB_SUBLANG_SPANISH_CHILE 0x0d
|
---|
| 660 | #define USB_SUBLANG_SPANISH_URUGUAY 0x0e
|
---|
| 661 | #define USB_SUBLANG_SPANISH_PARAGUAY 0x0f
|
---|
| 662 | #define USB_SUBLANG_SPANISH_BOLIVIA 0x10
|
---|
| 663 | #define USB_SUBLANG_SPANISH_EL_SALVADOR 0x11
|
---|
| 664 | #define USB_SUBLANG_SPANISH_HONDURAS 0x12
|
---|
| 665 | #define USB_SUBLANG_SPANISH_NICARAGUA 0x13
|
---|
| 666 | #define USB_SUBLANG_SPANISH_PUERTO_RICO 0x14
|
---|
| 667 | #define USB_SUBLANG_SWEDISH 0x01
|
---|
| 668 | #define USB_SUBLANG_SWEDISH_FINLAND 0x02
|
---|
| 669 | #define USB_SUBLANG_URDU_PAKISTAN 0x01
|
---|
| 670 | #define USB_SUBLANG_URDU_INDIA 0x02
|
---|
| 671 | #define USB_SUBLANG_UZBEK_LATIN 0x01
|
---|
| 672 | #define USB_SUBLANG_UZBEK_CYRILLIC 0x02
|
---|
| 673 | #define USB_SUBLANG_HID_USAGE_DATA_DESCRIPTOR 0x01
|
---|
| 674 | #define USB_SUBLANG_HID_VENDOR_DEFINED_1 0x3c
|
---|
| 675 | #define USB_SUBLANG_HID_VENDOR_DEFINED_2 0x3d
|
---|
| 676 | #define USB_SUBLANG_HID_VENDOR_DEFINED_3 0x3e
|
---|
| 677 | #define USB_SUBLANG_HID_VENDOR_DEFINED_4 0x3f
|
---|
| 678 |
|
---|
| 679 | #endif /* !defined(MIDL_PASS) */
|
---|
| 680 |
|
---|
| 681 | #include <poppack.h>
|
---|
| 682 |
|
---|