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

View file

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

View file

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