2010-03-04 22:58:41 +00:00
|
|
|
#pragma once
|
|
|
|
|
2010-03-05 13:32:58 +00:00
|
|
|
#include <pshpack1.h>
|
2010-03-04 22:58:41 +00:00
|
|
|
|
|
|
|
#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
|
|
|
|
|
2010-08-10 20:50:55 +00:00
|
|
|
#define USB_20_SPEC 0x0200
|
|
|
|
#define USB_11_SPEC 0x0110
|
|
|
|
#define USB_10_SPEC 0x0100
|
2010-03-04 22:58:41 +00:00
|
|
|
|
|
|
|
#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)
|
2010-08-10 20:50:55 +00:00
|
|
|
#define USB_MAKE_REQUEST_TYPE(direction, type, recipient) \
|
|
|
|
(BYTE)( ((BYTE)direction << 7) | \
|
|
|
|
((BYTE)type << 5) | ((BYTE)recipient & 0x07) )
|
2010-03-04 22:58:41 +00:00
|
|
|
#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
|
|
|
|
|
2010-08-10 20:50:55 +00:00
|
|
|
#define MAKE_ENDPOINT_ADDRESS(num, dir) \
|
|
|
|
( ((BYTE)(dir) << 7) | ((BYTE)(num) & 0x0F) )
|
2010-03-04 22:58:41 +00:00
|
|
|
|
|
|
|
#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 {
|
2010-03-05 13:32:58 +00:00
|
|
|
BYTE fConnectionStatusChange:1;
|
|
|
|
BYTE fEnabledChange:1;
|
|
|
|
BYTE fSuspendChange:1;
|
|
|
|
BYTE fOverCurrentChange:1;
|
|
|
|
BYTE fResetChange:1;
|
|
|
|
BYTE bReserved1:3;
|
|
|
|
BYTE bReserved2:8;
|
2010-03-04 22:58:41 +00:00
|
|
|
} Bits;
|
|
|
|
} USBHUBPORTSTATUSCHANGE;
|
|
|
|
|
|
|
|
#if !defined(MIDL_PASS)
|
|
|
|
C_ASSERT((sizeof(USBHUBPORTSTATUSCHANGE) == sizeof(WORD)));
|
|
|
|
#endif
|
|
|
|
|
|
|
|
typedef struct _USBHUBPORTDATA {
|
|
|
|
USBHUBPORTSTATUS PortStatus;
|
|
|
|
USBHUBPORTSTATUSCHANGE PortStatusChange;
|
|
|
|
} USBHUBPORTDATA;
|
|
|
|
|
2010-08-10 20:50:55 +00:00
|
|
|
#define USB_MAKE_LANGID(lang, sublang) \
|
|
|
|
((((USHORT)(sublang)) << 10) | (USHORT)(lang))
|
2010-03-04 22:58:41 +00:00
|
|
|
|
|
|
|
#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
|
|
|
|
|
2010-08-10 20:50:55 +00:00
|
|
|
#endif /* !defined(MIDL_PASS) */
|
2010-03-04 22:58:41 +00:00
|
|
|
|
2010-03-05 13:32:58 +00:00
|
|
|
#include <poppack.h>
|