* Update usbbusif.h, usbdlib.h and usbscan.h annotations.

svn path=/trunk/; revision=55116
This commit is contained in:
Amine Khaldi 2012-01-23 16:07:08 +00:00
parent 95ceec858b
commit 5c2fb9efb7
3 changed files with 125 additions and 109 deletions

View file

@ -12,31 +12,33 @@
typedef PVOID PUSB_DEVICE_HANDLE;
#endif
_Must_inspect_result_
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB) (
IN PVOID,
IN PURB);
_In_ PVOID,
_In_ PURB);
#define USB_HCD_CAPS_SUPPORTS_RT_THREADS 0x00000001
typedef VOID
(USB_BUSIFFN *PUSB_BUSIFFN_GETUSBDI_VERSION) (
IN PVOID,
OUT PUSBD_VERSION_INFORMATION OPTIONAL,
OUT PULONG OPTIONAL);
_In_ PVOID,
_Out_opt_ PUSBD_VERSION_INFORMATION,
_Out_opt_ PULONG);
_Must_inspect_result_
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_TIME) (
IN PVOID,
OUT PULONG OPTIONAL);
_In_ PVOID,
_Out_opt_ PULONG);
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_ENUM_LOG_ENTRY) (
IN PVOID,
IN ULONG,
IN ULONG,
IN ULONG,
IN ULONG);
_In_ PVOID,
_In_ ULONG,
_In_ ULONG,
_In_ ULONG,
_In_ ULONG);
typedef struct _USB_BUS_INFORMATION_LEVEL_0 {
ULONG TotalBandwidth;
@ -50,17 +52,19 @@ typedef struct _USB_BUS_INFORMATION_LEVEL_1 {
WCHAR ControllerNameUnicodeString[1];
} USB_BUS_INFORMATION_LEVEL_1, *PUSB_BUS_INFORMATION_LEVEL_1;
_Must_inspect_result_
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_INFORMATION) (
IN PVOID,
IN ULONG,
IN OUT PVOID,
OUT PULONG,
OUT PULONG OPTIONAL);
_In_ PVOID,
_In_ ULONG,
_Inout_ PVOID,
_Out_ PULONG,
_Out_opt_ PULONG);
_Must_inspect_result_
typedef BOOLEAN
(USB_BUSIFFN *PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED) (
IN PVOID OPTIONAL);
_In_opt_ PVOID);
#define USB_BUSIF_USBDI_VERSION_0 0x0000
#define USB_BUSIF_USBDI_VERSION_1 0x0001
@ -113,21 +117,23 @@ typedef struct _USB_BUS_INTERFACE_USBDI_V2 {
#if (NTDDI_VERSION >= NTDDI_VISTA)
_Must_inspect_result_
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_TIME_EX) (
IN PVOID OPTIONAL,
OUT PULONG OPTIONAL);
_In_opt_ PVOID,
_Out_opt_ PULONG);
_Must_inspect_result_
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_QUERY_CONTROLLER_TYPE) (
IN PVOID OPTIONAL,
OUT PULONG OPTIONAL,
OUT PUSHORT OPTIONAL,
OUT PUSHORT OPTIONAL,
OUT PUCHAR OPTIONAL,
OUT PUCHAR OPTIONAL,
OUT PUCHAR OPTIONAL,
OUT PUCHAR OPTIONAL);
_In_opt_ PVOID,
_Out_opt_ PULONG,
_Out_opt_ PUSHORT,
_Out_opt_ PUSHORT,
_Out_opt_ PUCHAR,
_Out_opt_ PUCHAR,
_Out_opt_ PUCHAR,
_Out_opt_ PUCHAR);
typedef struct _USB_BUS_INTERFACE_USBDI_V3 {
USHORT Size;
@ -161,25 +167,26 @@ typedef struct _USBC_FUNCTION_DESCRIPTOR{
PVOID Reserved;
} USBC_FUNCTION_DESCRIPTOR, *PUSBC_FUNCTION_DESCRIPTOR;
typedef
NTSTATUS
_Must_inspect_result_
typedef NTSTATUS
(USB_BUSIFFN *USBC_START_DEVICE_CALLBACK)(
IN PUSB_DEVICE_DESCRIPTOR DeviceDescriptor,
IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
OUT PUSBC_FUNCTION_DESCRIPTOR *FunctionDescriptorBuffer,
OUT PULONG FunctionDescriptorBufferLength,
IN PDEVICE_OBJECT FdoDeviceObject,
IN PDEVICE_OBJECT PdoDeviceObject);
_In_ PUSB_DEVICE_DESCRIPTOR DeviceDescriptor,
_In_ PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
_Outptr_result_bytebuffer_maybenull_(*FunctionDescriptorBufferLength)
PUSBC_FUNCTION_DESCRIPTOR *FunctionDescriptorBuffer,
_Out_ PULONG FunctionDescriptorBufferLength,
_In_ PDEVICE_OBJECT FdoDeviceObject,
_In_ PDEVICE_OBJECT PdoDeviceObject);
typedef
BOOLEAN
_Must_inspect_result_
typedef BOOLEAN
(USB_BUSIFFN *USBC_PDO_ENABLE_CALLBACK)(
IN PVOID Context,
IN USHORT FirstInterfaceNumber,
IN USHORT NumberOfInterfaces,
IN UCHAR FunctionClass,
IN UCHAR FunctionSubClass,
IN UCHAR FunctionProtocol);
_In_ PVOID Context,
_In_ USHORT FirstInterfaceNumber,
_In_ USHORT NumberOfInterfaces,
_In_ UCHAR FunctionClass,
_In_ UCHAR FunctionSubClass,
_In_ UCHAR FunctionProtocol);
#define USBC_DEVICE_CONFIGURATION_INTERFACE_VERSION_1 0x0001
@ -190,7 +197,7 @@ typedef struct _USBC_DEVICE_CONFIGURATION_INTERFACE_V1 {
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
USBC_START_DEVICE_CALLBACK StartDeviceCallback;
USBC_PDO_ENABLE_CALLBACK PdoEnableCallback;
USBC_PDO_ENABLE_CALLBACK PdoEnableCallback;
PVOID Reserved[7];
} USBC_DEVICE_CONFIGURATION_INTERFACE_V1, *PUSBC_DEVICE_CONFIGURATION_INTERFACE_V1;

View file

@ -114,109 +114,118 @@ typedef struct _USBD_INTERFACE_LIST_ENTRY {
#ifndef _USBD_
_IRQL_requires_max_(DISPATCH_LEVEL)
DECLSPEC_IMPORT
VOID
NTAPI
USBD_GetUSBDIVersion(
OUT PUSBD_VERSION_INFORMATION VersionInformation);
_Out_ PUSBD_VERSION_INFORMATION VersionInformation);
DECLSPEC_IMPORT
PUSB_INTERFACE_DESCRIPTOR
NTAPI
USBD_ParseConfigurationDescriptor(
IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
IN UCHAR InterfaceNumber,
IN UCHAR AlternateSetting);
_In_ PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
_In_ UCHAR InterfaceNumber,
_In_ UCHAR AlternateSetting);
DECLSPEC_IMPORT
PURB
NTAPI
USBD_CreateConfigurationRequest(
IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
OUT PUSHORT Siz);
_In_ PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
_Out_ PUSHORT Siz);
_IRQL_requires_max_(APC_LEVEL)
DECLSPEC_IMPORT
PUSB_COMMON_DESCRIPTOR
NTAPI
USBD_ParseDescriptors(
IN PVOID DescriptorBuffer,
IN ULONG TotalLength,
IN PVOID StartPosition,
IN LONG DescriptorType);
_In_ PVOID DescriptorBuffer,
_In_ ULONG TotalLength,
_In_ PVOID StartPosition,
_In_ LONG DescriptorType);
_IRQL_requires_max_(APC_LEVEL)
DECLSPEC_IMPORT
PUSB_INTERFACE_DESCRIPTOR
NTAPI
USBD_ParseConfigurationDescriptorEx(
IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
IN PVOID StartPosition,
IN LONG InterfaceNumber,
IN LONG AlternateSetting,
IN LONG InterfaceClass,
IN LONG InterfaceSubClass,
IN LONG InterfaceProtocol);
_In_ PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
_In_ PVOID StartPosition,
_In_ LONG InterfaceNumber,
_In_ LONG AlternateSetting,
_In_ LONG InterfaceClass,
_In_ LONG InterfaceSubClass,
_In_ LONG InterfaceProtocol);
_IRQL_requires_max_(DISPATCH_LEVEL)
DECLSPEC_IMPORT
PURB
NTAPI
USBD_CreateConfigurationRequestEx(
IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
IN PUSBD_INTERFACE_LIST_ENTRY InterfaceList);
_In_ PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
_In_ PUSBD_INTERFACE_LIST_ENTRY InterfaceList);
_IRQL_requires_max_(PASSIVE_LEVEL)
DECLSPEC_EXPORT
ULONG
NTAPI
USBD_GetInterfaceLength(
IN PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor,
IN PUCHAR BufferEnd);
_In_ PUSB_INTERFACE_DESCRIPTOR InterfaceDescriptor,
_In_ PUCHAR BufferEnd);
_IRQL_requires_max_(PASSIVE_LEVEL)
DECLSPEC_EXPORT
VOID
NTAPI
USBD_RegisterHcFilter(
IN PDEVICE_OBJECT DeviceObject,
IN PDEVICE_OBJECT FilterDeviceObject);
_In_ PDEVICE_OBJECT DeviceObject,
_In_ PDEVICE_OBJECT FilterDeviceObject);
_IRQL_requires_max_(APC_LEVEL)
DECLSPEC_EXPORT
NTSTATUS
NTAPI
USBD_GetPdoRegistryParameter(
IN PDEVICE_OBJECT PhysicalDeviceObject,
IN OUT PVOID Parameter,
IN ULONG ParameterLength,
IN PWSTR KeyName,
IN ULONG KeyNameLength);
_In_ PDEVICE_OBJECT PhysicalDeviceObject,
_Inout_updates_bytes_(ParameterLength) PVOID Parameter,
_In_ ULONG ParameterLength,
_In_reads_bytes_(KeyNameLength) PWSTR KeyName,
_In_ ULONG KeyNameLength);
DECLSPEC_EXPORT
NTSTATUS
NTAPI
USBD_QueryBusTime(
IN PDEVICE_OBJECT RootHubPdo,
OUT PULONG CurrentFrame);
_In_ PDEVICE_OBJECT RootHubPdo,
_Out_ PULONG CurrentFrame);
#if (NTDDI_VERSION >= NTDDI_WINXP)
_IRQL_requires_max_(DISPATCH_LEVEL)
DECLSPEC_IMPORT
ULONG
NTAPI
USBD_CalculateUsbBandwidth(
IN ULONG MaxPacketSize,
IN UCHAR EndpointType,
IN BOOLEAN LowSpeed);
_In_ ULONG MaxPacketSize,
_In_ UCHAR EndpointType,
_In_ BOOLEAN LowSpeed);
#endif
#if (NTDDI_VERSION >= NTDDI_VISTA)
_IRQL_requires_max_(DISPATCH_LEVEL)
DECLSPEC_IMPORT
USBD_STATUS
NTAPI
USBD_ValidateConfigurationDescriptor(
IN PUSB_CONFIGURATION_DESCRIPTOR ConfigDesc,
IN ULONG BufferLength,
IN USHORT Level,
OUT PUCHAR *Offset,
IN ULONG Tag OPTIONAL);
_In_reads_bytes_(BufferLength) PUSB_CONFIGURATION_DESCRIPTOR ConfigDesc,
_In_ ULONG BufferLength,
_In_ USHORT Level,
_Out_ PUCHAR *Offset,
_In_opt_ ULONG Tag);
#endif

View file

@ -37,32 +37,32 @@ extern "C" {
#define BULKIN_FLAG 0x80
typedef struct _DRV_VERSION {
OUT ULONG major;
OUT ULONG minor;
OUT ULONG internal;
_Out_ ULONG major;
_Out_ ULONG minor;
_Out_ ULONG internal;
} DRV_VERSION, *PDRV_VERSION;
typedef struct _IO_BLOCK {
IN ULONG uOffset;
IN ULONG uLength;
IN OUT PUCHAR pbyData;
IN ULONG uIndex;
_In_ ULONG uOffset;
_In_ ULONG uLength;
_Inout_updates_bytes_(uLength) PUCHAR pbyData;
_In_ ULONG uIndex;
} IO_BLOCK, *PIO_BLOCK;
typedef struct _IO_BLOCK_EX {
IN ULONG uOffset;
IN ULONG uLength;
IN OUT PUCHAR pbyData;
IN ULONG uIndex;
IN UCHAR bRequest;
IN UCHAR bmRequestType;
IN UCHAR fTransferDirectionIn;
_In_ ULONG uOffset;
_In_ ULONG uLength;
_Inout_updates_bytes_(uLength) PUCHAR pbyData;
_In_ ULONG uIndex;
_In_ UCHAR bRequest;
_In_ UCHAR bmRequestType;
_In_ UCHAR fTransferDirectionIn;
} IO_BLOCK_EX, *PIO_BLOCK_EX;
typedef struct _CHANNEL_INFO {
OUT ULONG EventChannelSize;
OUT ULONG uReadDataAlignment;
OUT ULONG uWriteDataAlignment;
_Out_ ULONG EventChannelSize;
_Out_ ULONG uReadDataAlignment;
_Out_ ULONG uWriteDataAlignment;
}CHANNEL_INFO, *PCHANNEL_INFO;
typedef enum _PIPE_TYPE {
@ -73,16 +73,16 @@ typedef enum _PIPE_TYPE {
} PIPE_TYPE;
typedef struct _USBSCAN_GET_DESCRIPTOR {
IN UCHAR DescriptorType;
IN UCHAR Index;
IN USHORT LanguageId;
_In_ UCHAR DescriptorType;
_In_ UCHAR Index;
_In_ USHORT LanguageId;
} USBSCAN_GET_DESCRIPTOR, *PUSBSCAN_GET_DESCRIPTOR;
typedef struct _DEVICE_DESCRIPTOR {
OUT USHORT usVendorId;
OUT USHORT usProductId;
OUT USHORT usBcdDevice;
OUT USHORT usLanguageId;
_Out_ USHORT usVendorId;
_Out_ USHORT usProductId;
_Out_ USHORT usBcdDevice;
_Out_ USHORT usLanguageId;
} DEVICE_DESCRIPTOR, *PDEVICE_DESCRIPTOR;
typedef enum _RAW_PIPE_TYPE {
@ -100,8 +100,8 @@ typedef struct _USBSCAN_PIPE_INFORMATION {
} USBSCAN_PIPE_INFORMATION, *PUSBSCAN_PIPE_INFORMATION;
typedef struct _USBSCAN_PIPE_CONFIGURATION {
OUT ULONG NumberOfPipes;
OUT USBSCAN_PIPE_INFORMATION PipeInfo[MAX_NUM_PIPES];
_Out_ ULONG NumberOfPipes;
_Out_writes_(NumberOfPipes) USBSCAN_PIPE_INFORMATION PipeInfo[MAX_NUM_PIPES];
} USBSCAN_PIPE_CONFIGURATION, *PUSBSCAN_PIPE_CONFIGURATION;
#if (NTDDI_VERSION >= NTDDI_WINXP)