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) ) 31 #define USB_SPEC 0x0200 32 #define HID_SPEC 0x0101 34 #define USB_20_SPEC 0x0200 35 #define USB_11_SPEC 0x0110 36 #define USB_10_SPEC 0x0100 38 #define HID_MAX_PACKET_SIZE0 0x08 39 #define MICROSOFT_VENDOR_ID 0x045E 40 #define HID_DEVICE_RELEASE 0x0100 42 #define HID_MAX_PACKET_SIZE 0x0008 43 #define HID_POLLING_INTERVAL 0x0A 44 #define MAX_POLLING_INTERVAL 0xFF 46 #define USB_DEFAULT_KEYBOARD_PRODUCT_ID 0x000B 47 #define USB_DEFAULT_MOUSE_PRODUCT_ID 0x0040 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 58 #define HID_DESCRIPTOR 0x21 59 #define REPORT_DESCRIPTOR 0x22 60 #define PHYSICAL_DESCRIPTOR 0x23 61 #define HUB_DESCRIPTOR 0x29 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 68 #define DIR_HOST_TO_DEVICE 0 69 #define DIR_DEVICE_TO_HOST 1 71 #define TYPE_STANDARD 0 74 #define TYPE_RESERVED 3 77 #define RCPT_INTERFACE 1 78 #define RCPT_ENDPOINT 2 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) ) 90 #define CLEAR_FEATURE 1 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 101 #define USB_BULK_ONLY_MASS_STG_RESET 0xFF 102 #define USB_BULK_ONLY_MASS_STG_GET_MAX_LUN 0xFE 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 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 117 #define SET_STREAM_INDEX 26 118 #define SET_WUSB_MAS 27 119 #define WUSB_CH_STOP 28 121 #define EXEC_RC_CMD 40 123 #define TIME_ADJ 0x01 124 #define TIME_BPST 0x02 125 #define TIME_WUSB 0x03 127 #define HID_REPORT_TYPE_INPUT 0x01 128 #define HID_REPORT_TYPE_OUTPUT 0x02 129 #define HID_REPORT_TYPE_FEATURE 0x03 131 #define HID_PROTOCOL_TYPE_BOOT 0x00 132 #define HID_PROTOCOL_TYPE_REPORT 0x01 134 #define HUB_DEVICE_PROTOCOL_1X 0 135 #define HUB_DEVICE_PROTOCOL_SINGLE_TT 1 136 #define HUB_DEVICE_PROTOCOL_MULTI_TT 2 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 143 #define CLEAR_TT_BUFFER 8 145 #define GET_TT_STATE 10 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 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 163 #define PORT_INDICATOR 22 165 #define USBSETUPSIZE 8 166 #define USBINREQUEST 128 168 #define BM_GET_DEVICE 128 169 #define BM_GET_INTERFACE 129 170 #define BM_GET_ENDPOINT 130 172 #define BM_SET_DEVICE 0 173 #define BM_SET_INTERFACE 1 174 #define BM_SET_ENDPOINT 2 176 #define HALT_ENDPOINT 0 177 #define REMOTE_WAKEUP 1 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 187 #define CONFIG_BUS_POWERED 0x80 188 #define CONFIG_SELF_POWERED 0x40 189 #define CONFIG_REMOTE_WAKEUP 0x20 191 #define USB_WA_MULTIFUNCTION 0x02 192 #define USB_WA_PROTOCOL 0x01 193 #define USB_RADIO_CONTROL 0x2 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 201 #define BOOT_INTERFACE_SUBCLASS 0x01 202 #define COMMON_CLASS 0x02 203 #define USB_RF_CONTROL 0x01 205 #define PROTOCOL_NONE 0x00 206 #define PROTOCOL_KEYBOARD 0x01 207 #define PROTOCOL_MOUSE 0x02 212 #define MAKE_ENDPOINT_ADDRESS(num, dir) \ 213 ( ((BYTE)(dir) << 7) | ((BYTE)(num) & 0x0F) ) 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 223 #if !defined(MIDL_PASS) 234 #if !defined(MIDL_PASS) 246 #if !defined(MIDL_PASS) 255 #if !defined(MIDL_PASS) 267 #if !defined(MIDL_PASS) 310 #define ENDPOINT_DIRECTION_OUT 0 311 #define ENDPOINT_DIRECTION_IN 1 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 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 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 444 #if !defined(MIDL_PASS) 459 #if !defined(MIDL_PASS) 481 #if !defined(MIDL_PASS) 498 #if !defined(MIDL_PASS) 507 #define USB_MAKE_LANGID(lang, sublang) \ 508 ((((USHORT)(sublang)) << 10) | (USHORT)(lang)) 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 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
struct _USBHUBCHARACTERISTICS::Bits Bits
struct _USBCONFIGATTRIBS::Bits Bits
union _USBREQUESTTYPE USBREQUESTTYPE
USBENDPOINTADDRESS Address
C_ASSERT((sizeof(USBREQUESTTYPE)==sizeof(BYTE)))
union _USBHUBPORTSTATUS USBHUBPORTSTATUS
union _USBENDPOINTATTRIBS USBENDPOINTATTRIBS
struct _USBHUBPORTDATA USBHUBPORTDATA
struct _USBMAXPACKET::Bits Bits
union _USBHUBCHARACTERISTICS USBHUBCHARACTERISTICS
BYTE bDeviceRemovable[32]
struct _USBSTRINGDESC USBSTRINGDESC
USBENDPOINTATTRIBS Attributes
BYTE fConnectionStatusChange
union _USBDESCRIPTORTYPE USBDESCRIPTORTYPE
BYTE fPortIndicatorSupport
struct _USBHUBPORTSTATUSCHANGE::Bits Bits
struct _USBDEVICEDESC USBDEVICEDESC
struct _USBDESCRIPTORTYPE::Bits Bits
struct _USBCONFIGDESC USBCONFIGDESC
USHORT usDescriptorLength
BYTE fPortIndicatorControl
BYTE fCurrentConnectionStatus
struct _USBHUBPORTSTATUS::Bits Bits
BYTE bClassDescriptorType
struct _USBHUBDESC USBHUBDESC
USBHUBPORTSTATUSCHANGE PortStatusChange
BYTE bPortPwrCtrlMask[32]
union _USBMAXPACKET USBMAXPACKET
union _USBPHYSICALDESCITEM::Flags Flags
struct _USBHIDSTANDARDDESC USBHIDSTANDARDDESC
struct _USBPHYSICALDESCSET::Bits Bits
BYTE bLogicalPowerSwitchingMode
struct _USBREQUESTTYPE::Bits Bits
union _USBCONFIGATTRIBS USBCONFIGATTRIBS
struct _USBPHYSICALDESCITEM USBPHYSICALDESCITEM
struct _USBINTERFACEDESC USBINTERFACEDESC
union _USBENDPOINTADDRESS USBENDPOINTADDRESS
struct _USBPHYSICALDESCITEM::Flags::Bits Bits
struct _USBPHYSICALDESCSET0 USBPHYSICALDESCSET0
struct _USBHIDOPTIONALDESC USBHIDOPTIONALDESC
struct _USBENDPOINTATTRIBS::Bits Bits
USBHUBCHARACTERISTICS Characteristics
struct _USBSETUPREQUEST USBSETUPREQUEST
union _USBPHYSICALDESCSET USBPHYSICALDESCSET
USBHUBPORTSTATUS PortStatus
struct _USBENDPOINTDESC USBENDPOINTDESC
struct _USBQUALIFIERDESC USBQUALIFIERDESC
struct _USBENDPOINTADDRESS::Bits Bits
union _USBHUBPORTSTATUSCHANGE USBHUBPORTSTATUSCHANGE
USBREQUESTTYPE bmRequestType
struct _USBSTRINGLANGIDS USBSTRINGLANGIDS