summaryrefslogtreecommitdiff
path: root/include/qhy/winusb.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/qhy/winusb.h')
-rw-r--r--include/qhy/winusb.h253
1 files changed, 253 insertions, 0 deletions
diff --git a/include/qhy/winusb.h b/include/qhy/winusb.h
new file mode 100644
index 0000000..0c8db70
--- /dev/null
+++ b/include/qhy/winusb.h
@@ -0,0 +1,253 @@
+/*++
+
+Copyright (c) 2002 Microsoft Corporation
+
+Module Name:
+
+ wusb.h
+
+Abstract:
+
+ Public interface to winusb.dll
+
+Environment:
+
+ Kernel Mode Only
+
+Notes:
+
+ THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
+ KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
+ PURPOSE.
+
+ Copyright (c) 2001 Microsoft Corporation. All Rights Reserved.
+
+
+Revision History:
+
+ 11/19/2002 : created
+
+Authors:
+
+--*/
+
+#ifndef __WUSB_H__
+#define __WUSB_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if(NTDDI_VERSION >= NTDDI_WINXP)
+
+#include "winusbio.h"
+
+
+typedef PVOID WINUSB_INTERFACE_HANDLE, *PWINUSB_INTERFACE_HANDLE;
+
+
+#pragma pack(1)
+
+typedef struct _WINUSB_SETUP_PACKET {
+ UCHAR RequestType;
+ UCHAR Request;
+ USHORT Value;
+ USHORT Index;
+ USHORT Length;
+} WINUSB_SETUP_PACKET, *PWINUSB_SETUP_PACKET;
+
+#pragma pack()
+
+
+
+BOOL __stdcall
+WinUsb_Initialize(
+ __in HANDLE DeviceHandle,
+ __out PWINUSB_INTERFACE_HANDLE InterfaceHandle
+ );
+
+
+BOOL __stdcall
+WinUsb_Free(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle
+ );
+
+
+BOOL __stdcall
+WinUsb_GetAssociatedInterface(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __in UCHAR AssociatedInterfaceIndex,
+ __out PWINUSB_INTERFACE_HANDLE AssociatedInterfaceHandle
+ );
+
+
+
+BOOL __stdcall
+WinUsb_GetDescriptor(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __in UCHAR DescriptorType,
+ __in UCHAR Index,
+ __in USHORT LanguageID,
+ __out_bcount_part_opt(BufferLength, *LengthTransferred) PUCHAR Buffer,
+ __in ULONG BufferLength,
+ __out PULONG LengthTransferred
+ );
+
+BOOL __stdcall
+WinUsb_QueryInterfaceSettings(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __in UCHAR AlternateInterfaceNumber,
+ __out PUSB_INTERFACE_DESCRIPTOR UsbAltInterfaceDescriptor
+ );
+
+BOOL __stdcall
+WinUsb_QueryDeviceInformation(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __in ULONG InformationType,
+ __inout PULONG BufferLength,
+ __out_bcount(*BufferLength) PVOID Buffer
+ );
+
+BOOL __stdcall
+WinUsb_SetCurrentAlternateSetting(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __in UCHAR SettingNumber
+ );
+
+BOOL __stdcall
+WinUsb_GetCurrentAlternateSetting(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __out PUCHAR SettingNumber
+ );
+
+
+BOOL __stdcall
+WinUsb_QueryPipe(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __in UCHAR AlternateInterfaceNumber,
+ __in UCHAR PipeIndex,
+ __out PWINUSB_PIPE_INFORMATION PipeInformation
+ );
+
+
+BOOL __stdcall
+WinUsb_SetPipePolicy(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __in UCHAR PipeID,
+ __in ULONG PolicyType,
+ __in ULONG ValueLength,
+ __in_bcount(ValueLength) PVOID Value
+ );
+
+BOOL __stdcall
+WinUsb_GetPipePolicy(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __in UCHAR PipeID,
+ __in ULONG PolicyType,
+ __inout PULONG ValueLength,
+ __out_bcount(*ValueLength) PVOID Value
+ );
+
+BOOL __stdcall
+WinUsb_ReadPipe(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __in UCHAR PipeID,
+ __out_bcount_part_opt(BufferLength,*LengthTransferred) PUCHAR Buffer,
+ __in ULONG BufferLength,
+ __out_opt PULONG LengthTransferred,
+ __in_opt LPOVERLAPPED Overlapped
+ );
+
+BOOL __stdcall
+WinUsb_WritePipe(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __in UCHAR PipeID,
+ __in_bcount(BufferLength) PUCHAR Buffer,
+ __in ULONG BufferLength,
+ __out_opt PULONG LengthTransferred,
+ __in_opt LPOVERLAPPED Overlapped
+ );
+
+BOOL __stdcall
+WinUsb_ControlTransfer(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __in WINUSB_SETUP_PACKET SetupPacket,
+ __out_bcount_part_opt(BufferLength, *LengthTransferred) PUCHAR Buffer,
+ __in ULONG BufferLength,
+ __out_opt PULONG LengthTransferred,
+ __in_opt LPOVERLAPPED Overlapped
+ );
+
+BOOL __stdcall
+WinUsb_ResetPipe(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __in UCHAR PipeID
+ );
+
+BOOL __stdcall
+WinUsb_AbortPipe(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __in UCHAR PipeID
+ );
+
+BOOL __stdcall
+WinUsb_FlushPipe(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __in UCHAR PipeID
+ );
+
+BOOL __stdcall
+WinUsb_SetPowerPolicy(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __in ULONG PolicyType,
+ __in ULONG ValueLength,
+ __in_bcount(ValueLength) PVOID Value
+ );
+
+BOOL __stdcall
+WinUsb_GetPowerPolicy(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __in ULONG PolicyType,
+ __inout PULONG ValueLength,
+ __out_bcount(*ValueLength) PVOID Value
+ );
+
+BOOL __stdcall
+WinUsb_GetOverlappedResult(
+ __in WINUSB_INTERFACE_HANDLE InterfaceHandle,
+ __in LPOVERLAPPED lpOverlapped,
+ __out LPDWORD lpNumberOfBytesTransferred,
+ __in BOOL bWait
+ );
+
+
+PUSB_INTERFACE_DESCRIPTOR __stdcall
+WinUsb_ParseConfigurationDescriptor(
+ __in PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
+ __in PVOID StartPosition,
+ __in LONG InterfaceNumber,
+ __in LONG AlternateSetting,
+ __in LONG InterfaceClass,
+ __in LONG InterfaceSubClass,
+ __in LONG InterfaceProtocol
+ );
+
+PUSB_COMMON_DESCRIPTOR __stdcall
+WinUsb_ParseDescriptors(
+ __in_bcount(TotalLength) PVOID DescriptorBuffer,
+ __in ULONG TotalLength,
+ __in PVOID StartPosition,
+ __in LONG DescriptorType
+ );
+
+
+#endif // (NTDDI_VERSION >= NTDDI_WINXP)
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif //__WUSB_H__
+