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 //in km this is done as a part of Interface info 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 //WinUsb has a common function for all descriptors 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)
struct _UMURB_CONTROL_TRANSFER UmUrbControlTransfer
struct _UMURB_PIPE_REQUEST UmUrbPipeRequest
struct _UMURB_HEADER UmUrbHeader
IN OUT PVOID TransferBuffer
IN OUT ULONG TransferBufferLength
struct _UMURB_CONTROL_GET_INTERFACE_REQUEST UmUrbControlGetInterfaceRequest
IN struct _UMURB_HEADER Hdr
IN OUT ULONG TransferBufferLength
IN OUT ULONG TransferBufferLength
IN WINUSB_SETUP_PACKET SetupPacket
OUT WINUSB_PIPE_INFORMATION PipeInformation
_UMURB_HEADER * PUMURB_HEADER
OUT WINUSB_INTERFACE_HANDLE InterfaceHandle
IN OUT ULONG BufferLength
IN UCHAR AlternateSetting
IN UCHAR AlternateSetting
struct _UMURB_BULK_OR_INTERRUPT_TRANSFER UmUrbBulkOrInterruptTransfer
struct _UMURB_PIPE_POLICY_REQUEST UmUrbPipePolicyRequest
struct _UMURB_DESCRIPTOR_REQUEST UmUrbDescriptorRequest
IN struct _UMURB_HEADER Hdr
struct _UMURB_INTERFACE_INFORMATION UmUrbInterfaceInformation
struct _UMURB_GET_ASSOCIATED_INTERFACE UmUrbGetAssociatedInterface
IN OUT PVOID TransferBuffer
struct _UMURB_DEVICE_INFORMATION UmUrbDeviceInformation
struct _UMURB_QUERY_PIPE UmUrbQueryPipe
struct _UMURB_INTERFACE_POLICY_REQUEST UmUrbInterfacePolicyRequest
struct _UMURB_SELECT_INTERFACE UmUrbSelectInterface
struct _UMURB_CONTROL_DESCRIPTOR_REQUEST UmUrbControlDescriptorRequest