8#define UMURB_FUNCTION_SELECT_CONFIGURATION 0x0000
9#define UMURB_FUNCTION_SELECT_INTERFACE 0x0001
10#define UMURB_FUNCTION_ABORT_PIPE 0x0002
11#define UMURB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL 0x0003
12#define UMURB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL 0x0004
13#define UMURB_FUNCTION_GET_FRAME_LENGTH 0x0005
14#define UMURB_FUNCTION_SET_FRAME_LENGTH 0x0006
15#define UMURB_FUNCTION_GET_CURRENT_FRAME_NUMBER 0x0007
16#define UMURB_FUNCTION_CONTROL_TRANSFER 0x0008
17#define UMURB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER 0x0009
18#define UMURB_FUNCTION_ISOCH_TRANSFER 0x000A
19#define UMURB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE 0x000B
20#define UMURB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE 0x000C
21#define UMURB_FUNCTION_SET_FEATURE_TO_DEVICE 0x000D
22#define UMURB_FUNCTION_SET_FEATURE_TO_INTERFACE 0x000E
23#define UMURB_FUNCTION_SET_FEATURE_TO_ENDPOINT 0x000F
24#define UMURB_FUNCTION_CLEAR_FEATURE_TO_DEVICE 0x0010
25#define UMURB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE 0x0011
26#define UMURB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT 0x0012
27#define UMURB_FUNCTION_GET_STATUS_FROM_DEVICE 0x0013
28#define UMURB_FUNCTION_GET_STATUS_FROM_INTERFACE 0x0014
29#define UMURB_FUNCTION_GET_STATUS_FROM_ENDPOINT 0x0015
30#define UMURB_FUNCTION_RESERVED_0X0016 0x0016
31#define UMURB_FUNCTION_VENDOR_DEVICE 0x0017
32#define UMURB_FUNCTION_VENDOR_INTERFACE 0x0018
33#define UMURB_FUNCTION_VENDOR_ENDPOINT 0x0019
34#define UMURB_FUNCTION_CLASS_DEVICE 0x001A
35#define UMURB_FUNCTION_CLASS_INTERFACE 0x001B
36#define UMURB_FUNCTION_CLASS_ENDPOINT 0x001C
37#define UMURB_FUNCTION_RESERVE_0X001D 0x001D
38#define UMURB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL 0x001E
39#define UMURB_FUNCTION_GET_INTERFACE 0x0027
40#define UMURB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE 0x0028
41#define UMURB_FUNCTION_RESET_PORT 0x0029
46#define UMURB_FUNCTION_QUERY_PIPE 0x0101
47#define UMURB_FUNCTION_SET_PIPE_POLICY 0x0102
48#define UMURB_FUNCTION_GET_PIPE_POLICY 0x0103
49#define UMURB_FUNCTION_SET_INTERFACE_POWER_POLICY 0x0104
50#define UMURB_FUNCTION_GET_INTERFACE_POWER_POLICY 0x0105
51#define UMURB_FUNCTION_ENABLE_INTERFACE_IDLE 0x0106
52#define UMURB_FUNCTION_DISABLE_INTERFACE_IDLE 0x0107
53#define UMURB_FUNCTION_FLUSH_PIPE 0x0108
54#define UMURB_FUNCTION_GET_ASSOCIATED_INTERFACE 0x0109
55#define UMURB_FUNCTION_GET_DEVICE_INFORMATION 0x010A
56#define UMURB_FUNCTION_GET_DESCRIPTOR 0x010B
57#define UMURB_FUNCTION_RELEASE_ASSOCIATED_INTERFACE 0x010C
251#define FILE_DEVICE_UMDF ((ULONG)(0x8002))
256#define UMDF_IOCTL_CODE(id) \
257 CTL_CODE(FILE_DEVICE_UMDF, (id), METHOD_BUFFERED, FILE_READ_ACCESS|FILE_WRITE_ACCESS)
259#define IOCTL_INETRNAL_USB_SUBMIT_UMURB UMDF_IOCTL_CODE(0x100)
IN OUT ULONG TransferBufferLength
IN OUT PVOID TransferBuffer
IN OUT ULONG TransferBufferLength
IN OUT PVOID TransferBuffer
IN OUT ULONG TransferBufferLength
IN WINUSB_SETUP_PACKET SetupPacket
IN struct _UMURB_HEADER Hdr
IN OUT ULONG BufferLength
IN struct _UMURB_HEADER Hdr
OUT WINUSB_INTERFACE_HANDLE InterfaceHandle
OUT WINUSB_PIPE_INFORMATION PipeInformation
IN UCHAR AlternateSetting
IN UCHAR AlternateSetting
struct _UMURB_PIPE_REQUEST UmUrbPipeRequest
struct _UMURB_GET_ASSOCIATED_INTERFACE UmUrbGetAssociatedInterface
struct _UMURB_DEVICE_INFORMATION UmUrbDeviceInformation
struct _UMURB_BULK_OR_INTERRUPT_TRANSFER UmUrbBulkOrInterruptTransfer
struct _UMURB_SELECT_INTERFACE UmUrbSelectInterface
struct _UMURB_CONTROL_TRANSFER UmUrbControlTransfer
struct _UMURB_CONTROL_GET_INTERFACE_REQUEST UmUrbControlGetInterfaceRequest
struct _UMURB_HEADER UmUrbHeader
struct _UMURB_INTERFACE_POLICY_REQUEST UmUrbInterfacePolicyRequest
struct _UMURB_PIPE_POLICY_REQUEST UmUrbPipePolicyRequest
struct _UMURB_QUERY_PIPE UmUrbQueryPipe
struct _UMURB_CONTROL_DESCRIPTOR_REQUEST UmUrbControlDescriptorRequest
struct _UMURB_DESCRIPTOR_REQUEST UmUrbDescriptorRequest
struct _UMURB_INTERFACE_INFORMATION UmUrbInterfaceInformation
_UMURB_HEADER * PUMURB_HEADER