77 typedef BOOL __stdcall WinUSB_Initialize(HANDLE DeviceHandle, WINUSB_INTERFACE_HANDLE* InterfaceHandle);
78 typedef BOOL __stdcall WinUSB_Free(WINUSB_INTERFACE_HANDLE InterfaceHandle);
79 typedef BOOL __stdcall WinUSB_GetAssociatedInterface(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR AssociatedInterfaceIndex, WINUSB_INTERFACE_HANDLE* AssociatedInterfaceHandle);
80 typedef BOOL __stdcall WinUSB_GetDescriptor(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR DescriptorType, UCHAR Index, USHORT LanguageID, PUCHAR Buffer, ULONG BufferLength, PULONG LengthTransferred);
81 typedef BOOL __stdcall WinUSB_QueryInterfaceSettings(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR AltSettingIndex, PUSB_INTERFACE_DESCRIPTOR UsbAltInterfaceDescriptor);
82 typedef BOOL __stdcall WinUSB_QueryDeviceInformation(WINUSB_INTERFACE_HANDLE InterfaceHandle, ULONG InformationType, PULONG BufferLength, PVOID Buffer);
83 typedef BOOL __stdcall WinUSB_SetCurrentAlternateSetting(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR AltSettingNumber);
84 typedef BOOL __stdcall WinUSB_GetCurrentAlternateSetting(WINUSB_INTERFACE_HANDLE InterfaceHandle, PUCHAR AltSettingNumber);
85 typedef BOOL __stdcall WinUSB_QueryPipe(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR AltSettingNumber, UCHAR PipeIndex, PWINUSB_PIPE_INFORMATION PipeInformation);
86 typedef BOOL __stdcall WinUSB_SetPipePolicy(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID, ULONG PolicyType, ULONG ValueLength, PVOID Value);
87 typedef BOOL __stdcall WinUSB_GetPipePolicy(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID, ULONG PolicyType, PULONG ValueLength, PVOID Value);
88 typedef BOOL __stdcall WinUSB_ReadPipe(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID, PUCHAR Buffer, ULONG BufferLength, PULONG LengthTransferred, LPOVERLAPPED Overlapped);
89 typedef BOOL __stdcall WinUSB_WritePipe(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID, PUCHAR Buffer, ULONG BufferLength, PULONG LengthTransferred, LPOVERLAPPED Overlapped);
90 typedef BOOL __stdcall WinUSB_ControlTransfer(WINUSB_INTERFACE_HANDLE InterfaceHandle, WINUSB_SETUP_PACKET SetupPacket, PUCHAR Buffer, ULONG BufferLength, PULONG LengthTransferred, LPOVERLAPPED Overlapped);
91 typedef BOOL __stdcall WinUSB_ResetPipe(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID);
92 typedef BOOL __stdcall WinUSB_AbortPipe(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID);
93 typedef BOOL __stdcall WinUSB_FlushPipe(WINUSB_INTERFACE_HANDLE InterfaceHandle, UCHAR PipeID);
94 typedef BOOL __stdcall WinUSB_SetPowerPolicy(WINUSB_INTERFACE_HANDLE InterfaceHandle, ULONG PolicyType, ULONG ValueLength, PVOID Value);
95 typedef BOOL __stdcall WinUSB_GetPowerPolicy(WINUSB_INTERFACE_HANDLE InterfaceHandle, ULONG PolicyType, PULONG ValueLength, PVOID Value);
96 typedef BOOL __stdcall WinUSB_GetOverlappedResult(WINUSB_INTERFACE_HANDLE InterfaceHandle, LPOVERLAPPED Overlapped, LPDWORD lpNumberOfBytesTransferred,
BOOL bWait);
104 WinUSB_Initialize Initialize;
106 WinUSB_GetAssociatedInterface GetAssociatedInterface;
107 WinUSB_GetDescriptor GetDescriptor;
108 WinUSB_QueryInterfaceSettings QueryInterfaceSettings;
109 WinUSB_QueryDeviceInformation QueryDeviceInformation;
110 WinUSB_SetCurrentAlternateSetting SetCurrentAlternateSetting;
111 WinUSB_GetCurrentAlternateSetting GetCurrentAlternateSetting;
112 WinUSB_QueryPipe QueryPipe;
113 WinUSB_SetPipePolicy SetPipePolicy;
114 WinUSB_GetPipePolicy GetPipePolicy;
115 WinUSB_ReadPipe ReadPipe;
116 WinUSB_WritePipe WritePipe;
117 WinUSB_ControlTransfer ControlTransfer;
118 WinUSB_ResetPipe ResetPipe;
119 WinUSB_AbortPipe AbortPipe;
120 WinUSB_FlushPipe FlushPipe;
121 WinUSB_SetPowerPolicy SetPowerPolicy;
122 WinUSB_GetPowerPolicy GetPowerPolicy;
123 WinUSB_GetOverlappedResult GetOverlappedResult;
127 typedef struct _WINUSB_API
129 WinUSB_Initialize(* Initialize);
131 WinUSB_GetAssociatedInterface(*GetAssociatedInterface);
132 WinUSB_GetDescriptor(* GetDescriptor);
133 WinUSB_QueryInterfaceSettings(* QueryInterfaceSettings);
134 WinUSB_QueryDeviceInformation(* QueryDeviceInformation);
135 WinUSB_SetCurrentAlternateSetting(* SetCurrentAlternateSetting);
136 WinUSB_GetCurrentAlternateSetting(* GetCurrentAlternateSetting);
137 WinUSB_QueryPipe(* QueryPipe);
138 WinUSB_SetPipePolicy(* SetPipePolicy);
139 WinUSB_GetPipePolicy(* GetPipePolicy);
140 WinUSB_ReadPipe(* ReadPipe);
141 WinUSB_WritePipe(* WritePipe);
142 WinUSB_ControlTransfer(* ControlTransfer);
143 WinUSB_ResetPipe(* ResetPipe);
144 WinUSB_AbortPipe(* AbortPipe);
145 WinUSB_FlushPipe(* FlushPipe);
146 WinUSB_SetPowerPolicy(* SetPowerPolicy);
147 WinUSB_GetPowerPolicy(* GetPowerPolicy);
148 WinUSB_GetOverlappedResult(*GetOverlappedResult);
156 XsWinUsb(XsWinUsb
const&) =
delete;
157 XsWinUsb
const& operator=(XsWinUsb
const&) =
delete;