[ros-diffs] [akhaldi] 45783: Add several missing USB related definitions

akhaldi at svn.reactos.org akhaldi at svn.reactos.org
Wed Mar 3 12:42:21 CET 2010


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.h?rev=45783&view=auto
==============================================================================
--- 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.h?rev=45783&view=auto
==============================================================================
--- 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.h?rev=45783&view=auto
==============================================================================
--- 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




More information about the Ros-diffs mailing list