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 221typedef 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 232typedef 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 244typedef 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) 256C_ASSERT((sizeof(USBREQUESTTYPE) == sizeof(BYTE))); 257#endif 258 259typedef 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 269typedef 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 286typedef 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 298typedef 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 313typedef 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 322C_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 339typedef 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 349C_ASSERT((sizeof(USBENDPOINTATTRIBS) == sizeof(BYTE))); 350 351typedef 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 360C_ASSERT((sizeof(USBMAXPACKET) == sizeof(WORD))); 361 362typedef struct _USBENDPOINTDESC { 363 BYTE bLength; 364 BYTE bDescriptorType; 365 USBENDPOINTADDRESS Address; 366 USBENDPOINTATTRIBS Attributes; 367 USBMAXPACKET MaxPacket; 368 BYTE bInterval; 369} USBENDPOINTDESC; 370 371typedef 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 383typedef struct _USBSTRINGDESC { 384 BYTE bLength; 385 BYTE bDescriptorType; 386 WCHAR wchData[1]; 387} USBSTRINGDESC; 388 389typedef struct _USBSTRINGLANGIDS { 390 BYTE bLength; 391 BYTE bDescriptorType; 392 WORD wLANGIDs[1]; 393} USBSTRINGLANGIDS; 394 395typedef struct _USBHIDSTANDARDDESC { 396 BYTE bLength; 397 BYTE bDescriptorType; 398 USHORT bcdHID; 399 BYTE bCountryCode; 400 BYTE bNumDescriptors; 401} USBHIDSTANDARDDESC; 402 403typedef struct _USBHIDOPTIONALDESC { 404 BYTE bClassDescriptorType; 405 USHORT usDescriptorLength; 406} USBHIDOPTIONALDESC; 407 408typedef struct _USBPHYSICALDESCSET0 { 409 BYTE bNumber; 410 BYTE bLength; 411} USBPHYSICALDESCSET0; 412 413typedef union _USBPHYSICALDESCSET { 414 BYTE bPhysicalInfo; 415 struct Bits { 416 BYTE bPreference:5; 417 BYTE bBias:3; 418 } Bits; 419} USBPHYSICALDESCSET; 420 421typedef 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 432typedef 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) 445C_ASSERT((sizeof(USBHUBCHARACTERISTICS) == sizeof(WORD))); 446#endif 447 448typedef 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) 460C_ASSERT((sizeof(USBHUBDESC) == 71)); 461#endif 462 463typedef 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) 482C_ASSERT((sizeof(USBHUBPORTSTATUS) == sizeof(WORD))); 483#endif 484 485typedef 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) 499C_ASSERT((sizeof(USBHUBPORTSTATUSCHANGE) == sizeof(WORD))); 500#endif 501 502typedef 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 683