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