254 lines
5.5 KiB
C
254 lines
5.5 KiB
C
|
/*++
|
||
|
|
||
|
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__
|
||
|
|