Author: akhaldi Date: Wed Mar 3 12:42:20 2010 New Revision: 45783
URL: http://svn.reactos.org/svn/reactos?rev=45783&view=rev Log: Add several missing USB related definitions
Added: branches/header-work/include/ddk/hubbusif.h (with props) branches/header-work/include/ddk/usbbusif.h (with props) branches/header-work/include/ddk/usbdrivr.h (with props)
Added: branches/header-work/include/ddk/hubbusif.h URL: http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/hubbusif... ============================================================================== --- branches/header-work/include/ddk/hubbusif.h (added) +++ branches/header-work/include/ddk/hubbusif.h [iso-8859-1] Wed Mar 3 12:42:20 2010 @@ -1,0 +1,782 @@ +#pragma once + +#if (NTDDI_VERSION >= NTDDI_WINXP) + +typedef PVOID PUSB_DEVICE_HANDLE; + +typedef struct _ROOTHUB_PDO_EXTENSION { + ULONG Signature; +} ROOTHUB_PDO_EXTENSION, *PROOTHUB_PDO_EXTENSION; + +#define USBD_DEVHACK_SLOW_ENUMERATION 0x00000001 +#define USBD_DEVHACK_DISABLE_SN 0x00000002 +#define USBD_DEVHACK_SET_DIAG_ID 0x00000004 + +#ifndef USB_BUSIFFN +#define USB_BUSIFFN __stdcall +#endif + +#define CD_ERR_V1 0x00000001 + +#define ID_ERR_V1 0x00000001 + +#define USBD_KEEP_DEVICE_DATA 0x00000001 +#define USBD_MARK_DEVICE_BUSY 0x00000002 + +#define USB_IDLE_NOT_READY 0 +#define USB_IDLE_READY 1 + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_CREATE_USB_DEVICE ( + IN PVOID BusContext, + OUT PUSB_DEVICE_HANDLE *NewDeviceHandle, + IN PUSB_DEVICE_HANDLE HubDeviceHandle, + IN USHORT PortStatus, + IN USHORT PortNumber); + +typedef USB_BUSIFFN_CREATE_USB_DEVICE *PUSB_BUSIFFN_CREATE_USB_DEVICE; + +typedef enum _USBPORT_CREATEDEV_ERROR { + CreateDevErrNotSet = 0, + CreateDevBadHubDevHandle, + CreateDevFailedAllocDevHandle, + CreateDevFailedOpenEndpoint, + CreateDevFailedAllocDsBuff, + CreateDevFailedGetDs, + CreateDevTtNotFound, + CreateDevBadDevHandlePtr +} USBPORT_CREATEDEV_ERROR; + +typedef struct _USB_CD_ERROR_INFORMATION { + ULONG Version; + USBPORT_CREATEDEV_ERROR PathError; + ULONG UlongArg1; + ULONG UlongArg2; + NTSTATUS NtStatus; + UCHAR XtraInfo[64]; +} USB_CD_ERROR_INFORMATION, *PUSB_CD_ERROR_INFORMATION; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_CREATE_USB_DEVICE_EX ( + IN PVOID BusContext, + OUT PUSB_DEVICE_HANDLE *NewDeviceHandle, + IN PUSB_DEVICE_HANDLE HsHubDeviceHandle, + IN USHORT PortStatus, + IN USHORT PortNumber, + OUT PUSB_CD_ERROR_INFORMATION CdErrorInfo, + IN USHORT TtPortNumber); + +typedef USB_BUSIFFN_CREATE_USB_DEVICE_EX *PUSB_BUSIFFN_CREATE_USB_DEVICE_EX; + +typedef struct _USB_PORT_PATH { + ULONG PortPathDepth; + ULONG PortPath[6]; +} USB_PORT_PATH, *PUSB_PORT_PATH; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_CREATE_USB_DEVICE_V7 ( + IN PVOID BusContext, + OUT PUSB_DEVICE_HANDLE *NewDeviceHandle, + IN PUSB_DEVICE_HANDLE HsHubDeviceHandle, + IN USHORT PortStatus, + IN PUSB_PORT_PATH PortPath, + OUT PUSB_CD_ERROR_INFORMATION CdErrorInfo, + IN USHORT TtPortNumber, + IN PDEVICE_OBJECT PdoDeviceObject, + IN PUNICODE_STRING PhysicalDeviceObjectName); + +typedef USB_BUSIFFN_CREATE_USB_DEVICE_V7 *PUSB_BUSIFFN_CREATE_USB_DEVICE_V7; + +typedef enum _USBPORT_INITDEV_ERROR { + InitDevErrNotSet = 0, + InitDevFailedSetAddress, + InitDevFailedPokeEndpoint, + InitDevBadDeviceDescriptor +} USBPORT_INITDEV_ERROR; + +typedef struct _USB_ID_ERROR_INFORMATION { + ULONG Version; + USBPORT_INITDEV_ERROR PathError; + ULONG Arg1; + ULONG UsbAddress; + NTSTATUS NtStatus; + USBD_STATUS UsbdStatus; + UCHAR XtraInfo[64]; +} USB_ID_ERROR_INFORMATION, *PUSB_ID_ERROR_INFORMATION; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_INITIALIZE_USB_DEVICE ( + IN PVOID BusContext, + IN OUT PUSB_DEVICE_HANDLE DeviceHandle); + +typedef USB_BUSIFFN_INITIALIZE_USB_DEVICE *PUSB_BUSIFFN_INITIALIZE_USB_DEVICE; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_INITIALIZE_USB_DEVICE_EX ( + IN PVOID BusContext, + IN OUT PUSB_DEVICE_HANDLE DeviceHandle, + OUT PUSB_ID_ERROR_INFORMATION IdErrInfo); + +typedef USB_BUSIFFN_INITIALIZE_USB_DEVICE_EX *PUSB_BUSIFFN_INITIALIZE_USB_DEVICE_EX; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_REMOVE_USB_DEVICE ( + IN PVOID BusContext, + IN OUT PUSB_DEVICE_HANDLE DeviceHandle, + IN ULONG Flags); + +typedef USB_BUSIFFN_REMOVE_USB_DEVICE *PUSB_BUSIFFN_REMOVE_USB_DEVICE; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_GET_USB_DESCRIPTORS ( + IN PVOID BusContext, + IN OUT PUSB_DEVICE_HANDLE DeviceHandle, + OUT PUCHAR DeviceDescriptorBuffer, + IN OUT PULONG DeviceDescriptorBufferLength, + OUT PUCHAR ConfigDescriptorBuffer, + IN OUT PULONG ConfigDescriptorBufferLength); + +typedef USB_BUSIFFN_GET_USB_DESCRIPTORS *PUSB_BUSIFFN_GET_USB_DESCRIPTORS; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_RESTORE_DEVICE ( + IN PVOID BusContext, + IN OUT PUSB_DEVICE_HANDLE OldDeviceHandle, + IN OUT PUSB_DEVICE_HANDLE NewDeviceHandle); + +typedef USB_BUSIFFN_RESTORE_DEVICE *PUSB_BUSIFFN_RESTORE_DEVICE; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_GET_POTRTHACK_FLAGS ( + IN PVOID BusContext, + IN OUT PULONG Flags); + +typedef USB_BUSIFFN_GET_POTRTHACK_FLAGS *PUSB_BUSIFFN_GET_POTRTHACK_FLAGS; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_GET_DEVICE_INFORMATION ( + IN PVOID BusContext, + IN PUSB_DEVICE_HANDLE DeviceHandle, + OUT PVOID DeviceInformationBuffer, + IN ULONG DeviceInformationBufferLength, + IN OUT PULONG LengthOfDataCopied); + +typedef USB_BUSIFFN_GET_DEVICE_INFORMATION *PUSB_BUSIFFN_GET_DEVICE_INFORMATION; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_GET_CONTROLLER_INFORMATION ( + IN PVOID BusContext, + IN OUT PVOID ControllerInformationBuffer, + IN ULONG ControllerInformationBufferLength, + IN OUT PULONG LengthOfDataCopied); + +typedef USB_BUSIFFN_GET_CONTROLLER_INFORMATION *PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ( + IN PVOID BusContext, + IN BOOLEAN Enable); + +typedef USB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND *PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_GET_EXTENDED_HUB_INFO ( + IN PVOID BusContext, + IN PDEVICE_OBJECT HubPhysicalDeviceObject, + IN PVOID HubInformationBuffer, + IN ULONG HubInformationBufferLength, + OUT PULONG LengthOfDataCopied); + +typedef USB_BUSIFFN_GET_EXTENDED_HUB_INFO *PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_GET_ROOTHUB_SYM_NAME ( + IN PVOID BusContext, + IN PVOID HubSymNameBuffer, + IN ULONG HubSymNameBufferLength, + OUT PULONG HubSymNameActualLength); + +typedef USB_BUSIFFN_GET_ROOTHUB_SYM_NAME *PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME; + +typedef +PVOID +USB_BUSIFFN +USB_BUSIFFN_GET_DEVICE_BUSCONTEXT ( + IN PVOID HubBusContext, + IN PVOID DeviceHandle); + +typedef USB_BUSIFFN_GET_DEVICE_BUSCONTEXT *PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_INITIALIZE_20HUB ( + IN PVOID BusContext, + IN PUSB_DEVICE_HANDLE HubDeviceHandle, + IN ULONG TtCount); + +typedef USB_BUSIFFN_INITIALIZE_20HUB *PUSB_BUSIFFN_INITIALIZE_20HUB; + +typedef +BOOLEAN +USB_BUSIFFN +USB_BUSIFFN_IS_ROOT ( + IN PVOID BusContext, + IN PVOID DeviceObject); + +typedef USB_BUSIFFN_IS_ROOT *PUSB_BUSIFFN_IS_ROOT; + +typedef +VOID +USB_BUSIFFN +USB_BUSIFFN_ACQUIRE_SEMAPHORE ( + IN PVOID BusContext); + +typedef USB_BUSIFFN_ACQUIRE_SEMAPHORE *PUSB_BUSIFFN_ACQUIRE_SEMAPHORE; + +typedef +VOID +USB_BUSIFFN +USB_BUSIFFN_RELEASE_SEMAPHORE ( + IN PVOID BusContext); + +typedef USB_BUSIFFN_RELEASE_SEMAPHORE *PUSB_BUSIFFN_RELEASE_SEMAPHORE; + +typedef +VOID +__stdcall +RH_INIT_CALLBACK ( + IN PVOID CallBackContext); + +typedef RH_INIT_CALLBACK *PRH_INIT_CALLBACK; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_ROOTHUB_INIT_NOTIFY ( + IN PVOID BusContext, + IN PVOID CallbackContext, + IN PRH_INIT_CALLBACK CallbackRoutine); + +typedef USB_BUSIFFN_ROOTHUB_INIT_NOTIFY *PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY; + +typedef +VOID +USB_BUSIFFN +USB_BUSIFFN_FLUSH_TRANSFERS ( + IN PVOID BusContext, + IN PVOID DeviceHandle); + +typedef USB_BUSIFFN_FLUSH_TRANSFERS *PUSB_BUSIFFN_FLUSH_TRANSFERS; + +typedef +ULONG +USB_BUSIFFN +USB_BUSIFFN_CALC_PIPE_BANDWIDTH ( + IN PVOID BusContext, + IN PUSBD_PIPE_INFORMATION PipeInfo, + IN USB_DEVICE_SPEED DeviceSpeed); + +typedef USB_BUSIFFN_CALC_PIPE_BANDWIDTH *PUSB_BUSIFFN_CALC_PIPE_BANDWIDTH; + +typedef +VOID +USB_BUSIFFN +USB_BUSIFFN_SET_BUS_WAKE_MODE ( + IN PVOID BusContext, + IN ULONG Mode); + +typedef USB_BUSIFFN_SET_BUS_WAKE_MODE *PUSB_BUSIFFN_SET_BUS_WAKE_MODE; + +typedef +VOID +USB_BUSIFFN +USB_BUSIFFN_SET_DEVICE_FLAG ( + IN PVOID BusContext, + IN GUID *DeviceFlagGuid, + IN PVOID ValueData, + IN ULONG ValueLength); + +typedef USB_BUSIFFN_SET_DEVICE_FLAG *PUSB_BUSIFFN_SET_DEVICE_FLAG; + +typedef +VOID +USB_BUSIFFN +USB_BUSIFFN_SET_DEVHANDLE_DATA ( + IN PVOID BusContext, + IN PVOID DeviceHandle, + IN PDEVICE_OBJECT UsbDevicePdo); + +typedef USB_BUSIFFN_SET_DEVHANDLE_DATA *PUSB_BUSIFFN_SET_DEVHANDLE_DATA; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_TEST_POINT ( + IN PVOID BusContext, + IN PVOID DeviceHandle, + IN ULONG Opcode, + IN PVOID TestData); + +typedef USB_BUSIFFN_TEST_POINT *PUSB_BUSIFFN_TEST_POINT; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO ( + IN PVOID BusContext, + IN PUSB_DEVICE_HANDLE DeviceHandle, + OUT PVOID DeviceInformationBuffer, + IN ULONG DeviceInformationBufferLength, + IN OUT PULONG LengthOfDataCopied); + +typedef USB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO *PUSB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_WAIT_ASYNC_POWERUP ( + IN PVOID BusContext); + +typedef USB_BUSIFFN_WAIT_ASYNC_POWERUP *PUSB_BUSIFFN_WAIT_ASYNC_POWERUP; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_GET_DEVICE_ADDRESS ( + IN PVOID BusContext, + IN PUSB_DEVICE_HANDLE DeviceHandle, + OUT PUSHORT DeviceAddress); + +typedef USB_BUSIFFN_GET_DEVICE_ADDRESS *PUSB_BUSIFFN_GET_DEVICE_ADDRESS; + +typedef +VOID +USB_BUSIFFN +USB_BUSIFFN_DEREF_DEVICE_HANDLE ( + IN PVOID BusContext, + IN PUSB_DEVICE_HANDLE DeviceHandle, + IN PVOID Object, + IN ULONG Tag); + +typedef USB_BUSIFFN_DEREF_DEVICE_HANDLE *PUSB_BUSIFFN_DEREF_DEVICE_HANDLE; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_REF_DEVICE_HANDLE ( + IN PVOID BusContext, + IN PUSB_DEVICE_HANDLE DeviceHandle, + IN PVOID Object, + IN ULONG Tag); + +typedef USB_BUSIFFN_REF_DEVICE_HANDLE *PUSB_BUSIFFN_REF_DEVICE_HANDLE; + +typedef +ULONG +USB_BUSIFFN +USB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE ( + IN PVOID BusContext, + IN PUSB_DEVICE_HANDLE DeviceHandle, + IN ULONG NewIdleReadyState); + +typedef USB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE *PUSB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT ( + IN PVOID BusContext, + IN USHORT PortNumber, + OUT LPGUID ContainerId); + +typedef USB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT *PUSB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT; + +typedef +VOID +USB_BUSIFFN +USB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT ( + IN PVOID BusContext, + IN USHORT PortNumber, + IN LPGUID ContainerId); + +typedef USB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT *PUSB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT; + +typedef +NTSTATUS +USB_BUSIFFN +USB_BUSIFFN_ABORT_ALL_DEVICE_PIPES ( + IN PVOID BusContext, + IN PUSB_DEVICE_HANDLE DeviceHandle); + +typedef USB_BUSIFFN_ABORT_ALL_DEVICE_PIPES *PUSB_BUSIFFN_ABORT_ALL_DEVICE_PIPES; + +#define ERRATA_FLAG_RESET_TT_ON_CANCEL 1 +#define ERRATA_FLAG_NO_CLEAR_TT_BUFFER_ON_CANCEL 2 + +#define USB_BUSIF_HUB_VERSION_0 0x0000 +#define USB_BUSIF_HUB_VERSION_1 0x0001 +#define USB_BUSIF_HUB_VERSION_2 0x0002 +#define USB_BUSIF_HUB_VERSION_3 0x0003 +#define USB_BUSIF_HUB_VERSION_4 0x0004 +#define USB_BUSIF_HUB_VERSION_5 0x0005 +#define USB_BUSIF_HUB_VERSION_6 0x0006 +#define USB_BUSIF_HUB_VERSION_7 0x0007 + +#define USB_BUSIF_HUB_MIDUMP_VERSION_0 0x0000 + +#define USB_BUSIF_HUB_SS_VERSION_0 0x0000 + +typedef +VOID +USB_BUSIFFN +USB_BUSIFFN_SET_DEVICE_ERRATA_FLAG ( + IN PVOID BusContext, + IN PUSB_DEVICE_HANDLE DeviceHandle, + IN ULONG DeviceErrataFlag); + +typedef USB_BUSIFFN_SET_DEVICE_ERRATA_FLAG *PUSB_BUSIFFN_SET_DEVICE_ERRATA_FLAG; + +DEFINE_GUID(USB_BUS_INTERFACE_HUB_GUID, +0xb2bb8c0a, 0x5ab4, 0x11d3, 0xa8, 0xcd, 0x0, 0xc0, 0x4f, 0x68, 0x74, 0x7a); + +typedef struct _USB_BUS_INTERFACE_HUB_V0 { + USHORT Size; + USHORT Version; + PVOID BusContext; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; +} USB_BUS_INTERFACE_HUB_V0, *PUSB_BUS_INTERFACE_HUB_V0; + +typedef struct _USB_BUS_INTERFACE_HUB_V1 { + USHORT Size; + USHORT Version; + PVOID BusContext; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice; + PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice; + PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors; + PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice; + PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice; + PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags; + PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation; +} USB_BUS_INTERFACE_HUB_V1, *PUSB_BUS_INTERFACE_HUB_V1; + +typedef struct _USB_BUS_INTERFACE_HUB_V2 { + USHORT Size; + USHORT Version; + PVOID BusContext; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice; + PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice; + PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors; + PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice; + PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice; + PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags; + PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation; + PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation; + PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend; + PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation; + PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName; + PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext; + PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub; +} USB_BUS_INTERFACE_HUB_V2, *PUSB_BUS_INTERFACE_HUB_V2; + +typedef struct _USB_BUS_INTERFACE_HUB_V3 { + USHORT Size; + USHORT Version; + PVOID BusContext; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice; + PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice; + PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors; + PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice; + PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice; + PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags; + PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation; + PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation; + PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend; + PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation; + PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName; + PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext; + PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub; + PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification; +} USB_BUS_INTERFACE_HUB_V3, *PUSB_BUS_INTERFACE_HUB_V3; + +typedef struct _USB_BUS_INTERFACE_HUB_V4 { + USHORT Size; + USHORT Version; + PVOID BusContext; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice; + PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice; + PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors; + PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice; + PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice; + PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags; + PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation; + PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation; + PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend; + PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation; + PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName; + PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext; + PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub; + PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification; + PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers; +} USB_BUS_INTERFACE_HUB_V4, *PUSB_BUS_INTERFACE_HUB_V4; + +typedef struct _USB_BUS_INTERFACE_HUB_V5 { + USHORT Size; + USHORT Version; + PVOID BusContext; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice; + PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice; + PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors; + PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice; + PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice; + PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags; + PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation; + PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation; + PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend; + PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation; + PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName; + PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext; + PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub; + PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification; + PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers; + PUSB_BUSIFFN_SET_DEVHANDLE_DATA SetDeviceHandleData; +} USB_BUS_INTERFACE_HUB_V5, *PUSB_BUS_INTERFACE_HUB_V5; + +typedef struct _USB_BUS_INTERFACE_HUB_V6 { + USHORT Size; + USHORT Version; + PVOID BusContext; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PUSB_BUSIFFN_CREATE_USB_DEVICE_EX CreateUsbDevice; + PUSB_BUSIFFN_INITIALIZE_USB_DEVICE_EX InitializeUsbDevice; + PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors; + PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice; + PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice; + PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags; + PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation; + PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation; + PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend; + PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation; + PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName; + PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext; + PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub; + PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification; + PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers; + PUSB_BUSIFFN_SET_DEVHANDLE_DATA SetDeviceHandleData; + PUSB_BUSIFFN_IS_ROOT HubIsRoot; + PUSB_BUSIFFN_ACQUIRE_SEMAPHORE AcquireBusSemaphore; + PUSB_BUSIFFN_RELEASE_SEMAPHORE ReleaseBusSemaphore; + PUSB_BUSIFFN_CALC_PIPE_BANDWIDTH CaculatePipeBandwidth; + PUSB_BUSIFFN_SET_BUS_WAKE_MODE SetBusSystemWakeMode; + PUSB_BUSIFFN_SET_DEVICE_FLAG SetDeviceFlag; + PUSB_BUSIFFN_TEST_POINT HubTestPoint; + PUSB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO GetDevicePerformanceInfo; + PUSB_BUSIFFN_WAIT_ASYNC_POWERUP WaitAsyncPowerUp; + PUSB_BUSIFFN_GET_DEVICE_ADDRESS GetDeviceAddress; + PUSB_BUSIFFN_REF_DEVICE_HANDLE RefDeviceHandle; + PUSB_BUSIFFN_DEREF_DEVICE_HANDLE DerefDeviceHandle; + PUSB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE SetDeviceHandleIdleReadyState; +} USB_BUS_INTERFACE_HUB_V6, *PUSB_BUS_INTERFACE_HUB_V6; + +typedef struct _USB_BUS_INTERFACE_HUB_V7 { + USHORT Size; + USHORT Version; + PVOID BusContext; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PUSB_BUSIFFN_CREATE_USB_DEVICE_EX CreateUsbDevice; + PUSB_BUSIFFN_INITIALIZE_USB_DEVICE_EX InitializeUsbDevice; + PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors; + PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice; + PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice; + PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags; + PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation; + PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation; + PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend; + PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation; + PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName; + PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext; + PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub; + PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification; + PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers; + PUSB_BUSIFFN_SET_DEVHANDLE_DATA SetDeviceHandleData; + PUSB_BUSIFFN_IS_ROOT HubIsRoot; + PUSB_BUSIFFN_ACQUIRE_SEMAPHORE AcquireBusSemaphore; + PUSB_BUSIFFN_RELEASE_SEMAPHORE ReleaseBusSemaphore; + PUSB_BUSIFFN_CALC_PIPE_BANDWIDTH CaculatePipeBandwidth; + PUSB_BUSIFFN_SET_BUS_WAKE_MODE SetBusSystemWakeMode; + PUSB_BUSIFFN_SET_DEVICE_FLAG SetDeviceFlag; + PUSB_BUSIFFN_TEST_POINT HubTestPoint; + PUSB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO GetDevicePerformanceInfo; + PUSB_BUSIFFN_WAIT_ASYNC_POWERUP WaitAsyncPowerUp; + PUSB_BUSIFFN_GET_DEVICE_ADDRESS GetDeviceAddress; + PUSB_BUSIFFN_REF_DEVICE_HANDLE RefDeviceHandle; + PUSB_BUSIFFN_DEREF_DEVICE_HANDLE DerefDeviceHandle; + PUSB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE SetDeviceHandleIdleReadyState; + PUSB_BUSIFFN_CREATE_USB_DEVICE_V7 CreateUsbDeviceV7; + PUSB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT GetContainerIdForPort; + PUSB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT SetContainerIdForPort; + PUSB_BUSIFFN_ABORT_ALL_DEVICE_PIPES AbortAllDevicePipes; + PUSB_BUSIFFN_SET_DEVICE_ERRATA_FLAG SetDeviceErrataFlag; +} USB_BUS_INTERFACE_HUB_V7, *PUSB_BUS_INTERFACE_HUB_V7; + +DEFINE_GUID(USB_BUS_INTERFACE_HUB_MINIDUMP_GUID, +0xc5485f21, 0x4e81, 0x4a23, 0xa8, 0xf9, 0xd8, 0x51, 0x8a, 0xf4, 0x5c, 0x38); + +typedef VOID +(USB_BUSIFFN *PUSB_BUSIFFN_SET_MINIDUMP_FLAGS) ( + IN PVOID); + +typedef struct _USB_BUS_INTERFACE_HUB_MINIDUMP { + USHORT Size; + USHORT Version; + PVOID BusContext; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PUSB_BUSIFFN_SET_MINIDUMP_FLAGS SetUsbPortMiniDumpFlags; +} USB_BUS_INTERFACE_HUB_MINIDUMP, *PUSB_BUS_INTERFACE_HUB_MINIDUMP; + +DEFINE_GUID(USB_BUS_INTERFACE_HUB_SS_GUID, +0xbfc3f363, 0x8ba1, 0x4c7b, 0x97, 0xba, 0x9b, 0x12, 0xb1, 0xca, 0x13, 0x2f); + +typedef NTSTATUS +(USB_BUSIFFN *PUSB_BUSIFFN_SUSPEND_HUB) ( + PDEVICE_OBJECT Pdo); + +typedef NTSTATUS +(USB_BUSIFFN *PUSB_BUSIFFN_RESUME_HUB) ( + PDEVICE_OBJECT Pdo); + +typedef struct _USB_BUS_INTERFACE_HUB_SELECTIVE_SUSPEND { + USHORT Size; + USHORT Version; + PVOID BusContext; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PUSB_BUSIFFN_SUSPEND_HUB SuspendHub; + PUSB_BUSIFFN_RESUME_HUB ResumeHub; +} USB_BUS_INTERFACE_HUB_SELECTIVE_SUSPEND, *PUSB_BUS_INTERFACE_HUB_SELECTIVE_SUSPEND; + +#include <pshpack1.h> + +typedef struct _USB_PIPE_INFORMATION_0 { + USB_ENDPOINT_DESCRIPTOR EndpointDescriptor; + UCHAR ED_Pad[1]; + ULONG ScheduleOffset; +} USB_PIPE_INFORMATION_0, *PUSB_PIPE_INFORMATION_0; + +typedef struct _USB_LEVEL_INFORMATION { + ULONG InformationLevel; + ULONG ActualLength; +} USB_LEVEL_INFORMATION, *PUSB_LEVEL_INFORMATION; + +typedef struct _USB_DEVICE_INFORMATION_0 { + ULONG InformationLevel; + ULONG ActualLength; + ULONG PortNumber; + USB_DEVICE_DESCRIPTOR DeviceDescriptor; + UCHAR DD_pad[2]; + UCHAR CurrentConfigurationValue; + UCHAR ReservedMBZ; + USHORT DeviceAddress; + ULONG HubAddress; + USB_DEVICE_SPEED DeviceSpeed; + USB_DEVICE_TYPE DeviceType; + ULONG NumberOfOpenPipes; + USB_PIPE_INFORMATION_0 PipeList[1]; +} USB_DEVICE_INFORMATION_0, *PUSB_DEVICE_INFORMATION_0; + +typedef struct _USB_CONTROLLER_INFORMATION_0 { + ULONG InformationLevel; + ULONG ActualLength; + BOOLEAN SelectiveSuspendEnabled; + BOOLEAN IsHighSpeedController; +} USB_CONTROLLER_INFORMATION_0, *PUSB_CONTROLLER_INFORMATION_0; + +typedef struct _USB_CONTROLLER_INFORMATION_1 { + ULONG InformationLevel; + ULONG ActualLength; + BOOLEAN SelectiveSuspendEnabled; + BOOLEAN IsHighSpeedController; + ULONG HcBusNumber; + ULONG HcBusDevice; + ULONG HcBusFunction; +} USB_CONTROLLER_INFORMATION_1, *PUSB_CONTROLLER_INFORMATION_1; + +typedef struct _USB_EXTPORT_INFORMATION_0 { + ULONG PhysicalPortNumber; + ULONG PortLabelNumber; + USHORT VidOverride; + USHORT PidOverride; + ULONG PortAttributes; +} USB_EXTPORT_INFORMATION_0, *PUSB_EXTPORT_INFORMATION; + +typedef struct _USB_EXTHUB_INFORMATION_0 { + ULONG InformationLevel; + ULONG NumberOfPorts; + USB_EXTPORT_INFORMATION_0 Port[255]; +} USB_EXTHUB_INFORMATION_0, *PUSB_EXTHUB_INFORMATION_0; + +typedef struct _USB_DEVICE_PERFORMANCE_INFO_0 { + ULONG InformationLevel; + ULONG ActualLength; + ULONG BulkBytes; + ULONG BulkUrbCount; + ULONG ControlDataBytes; + ULONG ControlUrbCount; + ULONG IsoBytes; + ULONG IsoUrbCount; + ULONG InterruptBytes; + ULONG InterruptUrbCount; + ULONG AllocedInterrupt[6]; + ULONG AllocedIso; + ULONG Total32secBandwidth; + ULONG TotalTtBandwidth; + ULONG TotalIsoLatency; + ULONG DroppedIsoPackets; + ULONG TransferErrors; +} USB_DEVICE_PERFORMANCE_INFO_0, *PUSB_DEVICE_PERFORMANCE_INFO_0; + +#include <poppack.h> + +#endif
Propchange: branches/header-work/include/ddk/hubbusif.h ------------------------------------------------------------------------------ svn:eol-style = native
Added: branches/header-work/include/ddk/usbbusif.h URL: http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/usbbusif... ============================================================================== --- branches/header-work/include/ddk/usbbusif.h (added) +++ branches/header-work/include/ddk/usbbusif.h [iso-8859-1] Wed Mar 3 12:42:20 2010 @@ -1,0 +1,193 @@ +#pragma once + +#ifndef USB_BUSIFFN +#define USB_BUSIFFN __stdcall +#endif + +#if (NTDDI_VERSION >= NTDDI_WINXP) + +typedef PVOID PUSB_DEVICE_HANDLE; + +typedef NTSTATUS +(USB_BUSIFFN *PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB) ( + 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, + OUT PULONG); + +typedef NTSTATUS +(USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_TIME) ( + IN PVOID, + OUT PULONG); + +typedef NTSTATUS +(USB_BUSIFFN *PUSB_BUSIFFN_ENUM_LOG_ENTRY) ( + IN PVOID, + IN ULONG, + IN ULONG, + IN ULONG, + IN ULONG); + +typedef struct _USB_BUS_INFORMATION_LEVEL_0 { + ULONG TotalBandwidth; + ULONG ConsumedBandwidth; +} USB_BUS_INFORMATION_LEVEL_0, *PUSB_BUS_INFORMATION_LEVEL_0; + +typedef struct _USB_BUS_INFORMATION_LEVEL_1 { + ULONG TotalBandwidth; + ULONG ConsumedBandwidth; + ULONG ControllerNameLength; + WCHAR ControllerNameUnicodeString[1]; +} USB_BUS_INFORMATION_LEVEL_1, *PUSB_BUS_INFORMATION_LEVEL_1; + +typedef NTSTATUS +(USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_INFORMATION) ( + IN PVOID, + IN ULONG, + INout PVOID, + OUT PULONG, + OUT PULONG); + +typedef BOOLEAN +(USB_BUSIFFN *PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED) ( + IN PVOID); + +#define USB_BUSIF_USBDI_VERSION_0 0x0000 +#define USB_BUSIF_USBDI_VERSION_1 0x0001 +#define USB_BUSIF_USBDI_VERSION_2 0x0002 +#define USB_BUSIF_USBDI_VERSION_3 0x0003 + +DEFINE_GUID(USB_BUS_INTERFACE_USBDI_GUID, +0xb1a96a13, 0x3de0, 0x4574, 0x9b, 0x1, 0xc0, 0x8f, 0xea, 0xb3, 0x18, 0xd6); + +typedef struct _USB_BUS_INTERFACE_USBDI_V0 { + USHORT Size; + USHORT Version; + PVOID BusContext; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PUSB_BUSIFFN_GETUSBDI_VERSION GetUSBDIVersion; + PUSB_BUSIFFN_QUERY_BUS_TIME QueryBusTime; + PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB SubmitIsoOutUrb; + PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation; +} USB_BUS_INTERFACE_USBDI_V0, *PUSB_BUS_INTERFACE_USBDI_V0; + +typedef struct _USB_BUS_INTERFACE_USBDI_V1 { + USHORT Size; + USHORT Version; + PVOID BusContext; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PUSB_BUSIFFN_GETUSBDI_VERSION GetUSBDIVersion; + PUSB_BUSIFFN_QUERY_BUS_TIME QueryBusTime; + PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB SubmitIsoOutUrb; + PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation; + PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED IsDeviceHighSpeed; +} USB_BUS_INTERFACE_USBDI_V1, *PUSB_BUS_INTERFACE_USBDI_V1; + +typedef struct _USB_BUS_INTERFACE_USBDI_V2 { + USHORT Size; + USHORT Version; + PVOID BusContext; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PUSB_BUSIFFN_GETUSBDI_VERSION GetUSBDIVersion; + PUSB_BUSIFFN_QUERY_BUS_TIME QueryBusTime; + PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB SubmitIsoOutUrb; + PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation; + PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED IsDeviceHighSpeed; + PUSB_BUSIFFN_ENUM_LOG_ENTRY EnumLogEntry; +} USB_BUS_INTERFACE_USBDI_V2, *PUSB_BUS_INTERFACE_USBDI_V2; + +#endif + +#if (NTDDI_VERSION >= NTDDI_VISTA) + +typedef NTSTATUS +(USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_TIME_EX) ( + IN PVOID, + OUT PULONG); + +typedef NTSTATUS +(USB_BUSIFFN *PUSB_BUSIFFN_QUERY_CONTROLLER_TYPE) ( + IN PVOID, + OUT PULONG, + OUT PUSHORT, + OUT PUSHORT, + OUT PUCHAR, + OUT PUCHAR, + OUT PUCHAR, + OUT PUCHAR); + +typedef struct _USB_BUS_INTERFACE_USBDI_V3 { + USHORT Size; + USHORT Version; + PVOID BusContext; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + PUSB_BUSIFFN_GETUSBDI_VERSION GetUSBDIVersion; + PUSB_BUSIFFN_QUERY_BUS_TIME QueryBusTime; + PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB SubmitIsoOutUrb; + PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation; + PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED IsDeviceHighSpeed; + PUSB_BUSIFFN_ENUM_LOG_ENTRY EnumLogEntry; + PUSB_BUSIFFN_QUERY_BUS_TIME_EX QueryBusTimeEx; + PUSB_BUSIFFN_QUERY_CONTROLLER_TYPE QueryControllerType; +} USB_BUS_INTERFACE_USBDI_V3, *PUSB_BUS_INTERFACE_USBDI_V3; + +DEFINE_GUID(USB_BUS_INTERFACE_USBC_CONFIGURATION_GUID, +0x893b6a96, 0xb7f, 0x4d4d, 0xbd, 0xb4, 0xbb, 0xd4, 0xce, 0xeb, 0xb3, 0x1c); + +#define USBC_FUNCTION_FLAG_APPEND_ID 0x1 + +typedef struct _USBC_FUNCTION_DESCRIPTOR{ + UCHAR FunctionNumber; + UCHAR NumberOfInterfaces; + PUSB_INTERFACE_DESCRIPTOR *InterfaceDescriptorList; + UNICODE_STRING HardwareId; + UNICODE_STRING CompatibleId; + UNICODE_STRING FunctionDescription; + ULONG FunctionFlags; + PVOID Reserved; +} USBC_FUNCTION_DESCRIPTOR, *PUSBC_FUNCTION_DESCRIPTOR; + +typedef +NTSTATUS +(USB_BUSIFFN *USBC_START_DEVICE_CALLBACK)( + IN PUSB_DEVICE_DESCRIPTOR DeviceDescriptor, + IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor, + PUSBC_FUNCTION_DESCRIPTOR *FunctionDescriptorBuffer, + OUT PULONG FunctionDescriptorBufferLength, + IN PDEVICE_OBJECT FdoDeviceObject, + IN PDEVICE_OBJECT PdoDeviceObject); + +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); + +#define USBC_DEVICE_CONFIGURATION_INTERFACE_VERSION_1 0x0001 + +typedef struct _USBC_DEVICE_CONFIGURATION_INTERFACE_V1 { + USHORT Size; + USHORT Version; + PVOID Context; + PINTERFACE_REFERENCE InterfaceReference; + PINTERFACE_DEREFERENCE InterfaceDereference; + USBC_START_DEVICE_CALLBACK StartDeviceCallback; + USBC_PDO_ENABLE_CALLBACK PdoEnableCallback; + PVOID Reserved[7]; +} USBC_DEVICE_CONFIGURATION_INTERFACE_V1, *PUSBC_DEVICE_CONFIGURATION_INTERFACE_V1; + +#endif
Propchange: branches/header-work/include/ddk/usbbusif.h ------------------------------------------------------------------------------ svn:eol-style = native
Added: branches/header-work/include/ddk/usbdrivr.h URL: http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/usbdrivr... ============================================================================== --- branches/header-work/include/ddk/usbdrivr.h (added) +++ branches/header-work/include/ddk/usbdrivr.h [iso-8859-1] Wed Mar 3 12:42:20 2010 @@ -1,0 +1,9 @@ +#pragma once + +#define USB_KERNEL_IOCTL +#include "usbioctl.h" +#undef USB_KERNEL_IOCTL + +#include "usb.h" +#include "usbdlib.h" +#include "usbbusif.h"
Propchange: branches/header-work/include/ddk/usbdrivr.h ------------------------------------------------------------------------------ svn:eol-style = native