⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb.h

📁 MinGW+MSYS开发必用的api参考
💻 H
📖 第 1 页 / 共 2 页
字号:
	struct _URB  *UrbLink;	struct _URB_HCD_AREA  hca;	UCHAR  Reserved1[4];	USHORT  Index;	USHORT  Reserved2;};struct _URB_CONTROL_TRANSFER {   struct _URB_HEADER  Hdr;  USBD_PIPE_HANDLE  PipeHandle;  ULONG  TransferFlags;  ULONG  TransferBufferLength;  PVOID  TransferBuffer;  PMDL TransferBufferMDL;  struct _URB  *UrbLink;  struct _URB_HCD_AREA  hca;  UCHAR  SetupPacket[8];};struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST {	struct _URB_HEADER  Hdr;	PVOID  Reserved;	ULONG  TransferFlags;	ULONG  TransferBufferLength;	PVOID  TransferBuffer;	PMDL  TransferBufferMDL;	struct _URB  *UrbLink;	struct _URB_HCD_AREA  hca;	UCHAR  RequestTypeReservedBits;	UCHAR  Request;	USHORT  Value;	USHORT  Index;	USHORT  Reserved1;};struct _URB_FRAME_LENGTH_CONTROL {  struct _URB_HEADER  Hdr;};struct _URB_GET_CURRENT_FRAME_NUMBER {  struct _URB_HEADER  Hdr;  ULONG  FrameNumber;};struct _URB_GET_FRAME_LENGTH {  struct _URB_HEADER  Hdr;  ULONG  FrameLength;  ULONG  FrameNumber;};typedef struct _USBD_ISO_PACKET_DESCRIPTOR {  ULONG  Offset;  ULONG  Length;  USBD_STATUS  Status;} USBD_ISO_PACKET_DESCRIPTOR, *PUSBD_ISO_PACKET_DESCRIPTOR;struct _URB_ISOCH_TRANSFER {   struct _URB_HEADER  Hdr;   USBD_PIPE_HANDLE  PipeHandle;  ULONG  TransferFlags;  ULONG  TransferBufferLength;  PVOID  TransferBuffer;  PMDL  TransferBufferMDL;	struct _URB  *UrbLink;	struct _URB_HCD_AREA  hca;  ULONG  StartFrame;  ULONG  NumberOfPackets;  ULONG  ErrorCount;  USBD_ISO_PACKET_DESCRIPTOR  IsoPacket[1];};typedef enum _USBD_PIPE_TYPE {	UsbdPipeTypeControl,	UsbdPipeTypeIsochronous,	UsbdPipeTypeBulk,	UsbdPipeTypeInterrupt} USBD_PIPE_TYPE;typedef struct _USBD_PIPE_INFORMATION {  USHORT  MaximumPacketSize;  UCHAR  EndpointAddress;  UCHAR  Interval;  USBD_PIPE_TYPE  PipeType;  USBD_PIPE_HANDLE  PipeHandle;  ULONG  MaximumTransferSize;  ULONG  PipeFlags;} USBD_PIPE_INFORMATION, *PUSBD_PIPE_INFORMATION ;#define USBD_PIPE_DIRECTION_IN(pipeInformation) \  ((pipeInformation)->EndpointAddress & USB_ENDPOINT_DIRECTION_MASK) typedef struct _USBD_INTERFACE_INFORMATION {  USHORT  Length;  UCHAR  InterfaceNumber;  UCHAR  AlternateSetting;  UCHAR  Class;  UCHAR  SubClass;  UCHAR  Protocol;  UCHAR  Reserved;  USBD_INTERFACE_HANDLE  InterfaceHandle;  ULONG  NumberOfPipes;  USBD_PIPE_INFORMATION Pipes[1];} USBD_INTERFACE_INFORMATION, *PUSBD_INTERFACE_INFORMATION;struct _URB_SELECT_INTERFACE {   struct _URB_HEADER  Hdr;  USBD_CONFIGURATION_HANDLE  ConfigurationHandle;  USBD_INTERFACE_INFORMATION  Interface;};struct _URB_SELECT_CONFIGURATION {   struct _URB_HEADER  Hdr;  PUSB_CONFIGURATION_DESCRIPTOR  ConfigurationDescriptor;  USBD_CONFIGURATION_HANDLE  ConfigurationHandle;  USBD_INTERFACE_INFORMATION  Interface;};struct _URB_PIPE_REQUEST {	struct _URB_HEADER  Hdr;	USBD_PIPE_HANDLE  PipeHandle;	ULONG  Reserved;};struct _URB_SET_FRAME_LENGTH {  struct _URB_HEADER  Hdr;  LONG  FrameLengthDelta;};typedef struct _URB {   _ANONYMOUS_UNION union {		struct _URB_HEADER  UrbHeader;		struct _URB_SELECT_INTERFACE  UrbSelectInterface;		struct _URB_SELECT_CONFIGURATION  UrbSelectConfiguration;		struct _URB_PIPE_REQUEST  UrbPipeRequest;		struct _URB_FRAME_LENGTH_CONTROL  UrbFrameLengthControl;		struct _URB_GET_FRAME_LENGTH  UrbGetFrameLength;		struct _URB_SET_FRAME_LENGTH  UrbSetFrameLength;		struct _URB_GET_CURRENT_FRAME_NUMBER  UrbGetCurrentFrameNumber;		struct _URB_CONTROL_TRANSFER  UrbControlTransfer;		struct _URB_BULK_OR_INTERRUPT_TRANSFER  UrbBulkOrInterruptTransfer;		struct _URB_ISOCH_TRANSFER  UrbIsochronousTransfer;		struct _URB_CONTROL_DESCRIPTOR_REQUEST  UrbControlDescriptorRequest;		struct _URB_CONTROL_GET_STATUS_REQUEST  UrbControlGetStatusRequest;		struct _URB_CONTROL_FEATURE_REQUEST  UrbControlFeatureRequest;		struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST  UrbControlVendorClassRequest;		struct _URB_CONTROL_GET_INTERFACE_REQUEST  UrbControlGetInterfaceRequest;		struct _URB_CONTROL_GET_CONFIGURATION_REQUEST  UrbControlGetConfigurationRequest;  } DUMMYUNIONNAME;} URB, *PURB;#define URB_FROM_IRP(Irp) ((IoGetCurrentIrpStackLocation(Irp))->Parameters.Others.Argument1)#define URB_FUNCTION_SELECT_CONFIGURATION            0x0000#define URB_FUNCTION_SELECT_INTERFACE                0x0001#define URB_FUNCTION_ABORT_PIPE                      0x0002#define URB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL       0x0003#define URB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL    0x0004#define URB_FUNCTION_GET_FRAME_LENGTH                0x0005#define URB_FUNCTION_SET_FRAME_LENGTH                0x0006#define URB_FUNCTION_GET_CURRENT_FRAME_NUMBER        0x0007#define URB_FUNCTION_CONTROL_TRANSFER                0x0008#define URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER      0x0009#define URB_FUNCTION_ISOCH_TRANSFER                  0x000A#define URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE      0x000B#define URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE        0x000C#define URB_FUNCTION_SET_FEATURE_TO_DEVICE           0x000D#define URB_FUNCTION_SET_FEATURE_TO_INTERFACE        0x000E#define URB_FUNCTION_SET_FEATURE_TO_ENDPOINT         0x000F#define URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE         0x0010#define URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE      0x0011#define URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT       0x0012#define URB_FUNCTION_GET_STATUS_FROM_DEVICE          0x0013#define URB_FUNCTION_GET_STATUS_FROM_INTERFACE       0x0014#define URB_FUNCTION_GET_STATUS_FROM_ENDPOINT        0x0015#define URB_FUNCTION_RESERVED_0X0016                 0x0016#define URB_FUNCTION_VENDOR_DEVICE                   0x0017#define URB_FUNCTION_VENDOR_INTERFACE                0x0018#define URB_FUNCTION_VENDOR_ENDPOINT                 0x0019#define URB_FUNCTION_CLASS_DEVICE                    0x001A#define URB_FUNCTION_CLASS_INTERFACE                 0x001B#define URB_FUNCTION_CLASS_ENDPOINT                  0x001C#define URB_FUNCTION_RESERVE_0X001D                  0x001D#define URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL 0x001E#define URB_FUNCTION_CLASS_OTHER                     0x001F#define URB_FUNCTION_VENDOR_OTHER                    0x0020#define URB_FUNCTION_GET_STATUS_FROM_OTHER           0x0021#define URB_FUNCTION_CLEAR_FEATURE_TO_OTHER          0x0022#define URB_FUNCTION_SET_FEATURE_TO_OTHER            0x0023#define URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT    0x0024#define URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT      0x0025#define URB_FUNCTION_GET_CONFIGURATION               0x0026#define URB_FUNCTION_GET_INTERFACE                   0x0027#define URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE   0x0028#define URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE     0x0029#define URB_FUNCTION_GET_MS_FEATURE_DESCRIPTOR       0x002A#define URB_FUNCTION_RESERVE_0X002B                  0x002B#define URB_FUNCTION_RESERVE_0X002C                  0x002C#define URB_FUNCTION_RESERVE_0X002D                  0x002D#define URB_FUNCTION_RESERVE_0X002E                  0x002E#define URB_FUNCTION_RESERVE_0X002F                  0x002F#define URB_FUNCTION_SYNC_RESET_PIPE                 0x0030#define URB_FUNCTION_SYNC_CLEAR_STALL                0x0031#define USBD_PF_CHANGE_MAX_PACKET         0x00000001#define USBD_PF_SHORT_PACKET_OPT          0x00000002 #define USBD_PF_ENABLE_RT_THREAD_ACCESS   0x00000004 #define USBD_PF_MAP_ADD_TRANSFERS         0x00000008 #define USBD_PF_VALID_MASK (USBD_PF_CHANGE_MAX_PACKET | \                            USBD_PF_SHORT_PACKET_OPT | \                            USBD_PF_ENABLE_RT_THREAD_ACCESS | \                            USBD_PF_MAP_ADD_TRANSFERS)#define OS_STRING_DESCRIPTOR_INDEX        0xEE#define MS_GENRE_DESCRIPTOR_INDEX         0x0001#define MS_POWER_DESCRIPTOR_INDEX         0x0002#define MS_OS_STRING_SIGNATURE            L"MSFT100"typedef struct _OS_STRING {	UCHAR  bLength;	UCHAR  bDescriptorType;	WCHAR  MicrosoftString[7];	UCHAR  bVendorCode;	UCHAR  bPad;} OS_STRING, *POS_STRING;#ifdef __cplusplus}#endif#endif /* defined __USBDI_H */ #endif /* __USB_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -