Sync with trunk head (r48826)

svn path=/branches/cmake-bringup/; revision=48831
This commit is contained in:
Timo Kreuzer 2010-09-20 17:27:52 +00:00
commit 912ce51ae6
1261 changed files with 77972 additions and 24019 deletions

View file

@ -22,15 +22,15 @@ typedef struct _ROOTHUB_PDO_EXTENSION {
#define USB_BUSIFFN __stdcall
#endif
#define CD_ERR_V1 0x00000001
#define CD_ERR_V1 0x00000001
#define ID_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
#define USB_IDLE_NOT_READY 0
#define USB_IDLE_READY 1
typedef
NTSTATUS
@ -41,7 +41,6 @@ USB_BUSIFFN_CREATE_USB_DEVICE (
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 {
@ -56,47 +55,45 @@ typedef enum _USBPORT_CREATEDEV_ERROR {
} USBPORT_CREATEDEV_ERROR;
typedef struct _USB_CD_ERROR_INFORMATION {
ULONG Version;
USBPORT_CREATEDEV_ERROR PathError;
ULONG UlongArg1;
ULONG UlongArg2;
NTSTATUS NtStatus;
UCHAR XtraInfo[64];
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 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];
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);
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 {
@ -120,29 +117,26 @@ typedef
NTSTATUS
USB_BUSIFFN
USB_BUSIFFN_INITIALIZE_USB_DEVICE (
IN PVOID BusContext,
IN OUT PUSB_DEVICE_HANDLE DeviceHandle);
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);
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);
IN PVOID BusContext,
IN OUT PUSB_DEVICE_HANDLE DeviceHandle,
IN ULONG Flags);
typedef USB_BUSIFFN_REMOVE_USB_DEVICE *PUSB_BUSIFFN_REMOVE_USB_DEVICE;
typedef
@ -155,7 +149,6 @@ USB_BUSIFFN_GET_USB_DESCRIPTORS (
IN OUT PULONG DeviceDescriptorBufferLength,
OUT PUCHAR ConfigDescriptorBuffer,
IN OUT PULONG ConfigDescriptorBufferLength);
typedef USB_BUSIFFN_GET_USB_DESCRIPTORS *PUSB_BUSIFFN_GET_USB_DESCRIPTORS;
typedef
@ -165,7 +158,6 @@ 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
@ -174,7 +166,6 @@ 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
@ -186,7 +177,6 @@ USB_BUSIFFN_GET_DEVICE_INFORMATION (
OUT PVOID DeviceInformationBuffer,
IN ULONG DeviceInformationBufferLength,
IN OUT PULONG LengthOfDataCopied);
typedef USB_BUSIFFN_GET_DEVICE_INFORMATION *PUSB_BUSIFFN_GET_DEVICE_INFORMATION;
typedef
@ -197,7 +187,6 @@ USB_BUSIFFN_GET_CONTROLLER_INFORMATION (
IN OUT PVOID ControllerInformationBuffer,
IN ULONG ControllerInformationBufferLength,
IN OUT PULONG LengthOfDataCopied);
typedef USB_BUSIFFN_GET_CONTROLLER_INFORMATION *PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION;
typedef
@ -206,7 +195,6 @@ 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
@ -218,7 +206,6 @@ USB_BUSIFFN_GET_EXTENDED_HUB_INFO (
IN PVOID HubInformationBuffer,
IN ULONG HubInformationBufferLength,
OUT PULONG LengthOfDataCopied);
typedef USB_BUSIFFN_GET_EXTENDED_HUB_INFO *PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO;
typedef
@ -229,7 +216,6 @@ USB_BUSIFFN_GET_ROOTHUB_SYM_NAME (
IN PVOID HubSymNameBuffer,
IN ULONG HubSymNameBufferLength,
OUT PULONG HubSymNameActualLength);
typedef USB_BUSIFFN_GET_ROOTHUB_SYM_NAME *PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME;
typedef
@ -238,7 +224,6 @@ 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
@ -248,7 +233,6 @@ 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
@ -257,7 +241,6 @@ USB_BUSIFFN
USB_BUSIFFN_IS_ROOT (
IN PVOID BusContext,
IN PVOID DeviceObject);
typedef USB_BUSIFFN_IS_ROOT *PUSB_BUSIFFN_IS_ROOT;
typedef
@ -265,7 +248,6 @@ VOID
USB_BUSIFFN
USB_BUSIFFN_ACQUIRE_SEMAPHORE (
IN PVOID BusContext);
typedef USB_BUSIFFN_ACQUIRE_SEMAPHORE *PUSB_BUSIFFN_ACQUIRE_SEMAPHORE;
typedef
@ -273,7 +255,6 @@ VOID
USB_BUSIFFN
USB_BUSIFFN_RELEASE_SEMAPHORE (
IN PVOID BusContext);
typedef USB_BUSIFFN_RELEASE_SEMAPHORE *PUSB_BUSIFFN_RELEASE_SEMAPHORE;
typedef
@ -281,7 +262,6 @@ VOID
__stdcall
RH_INIT_CALLBACK (
IN PVOID CallBackContext);
typedef RH_INIT_CALLBACK *PRH_INIT_CALLBACK;
typedef
@ -291,7 +271,6 @@ 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
@ -300,7 +279,6 @@ USB_BUSIFFN
USB_BUSIFFN_FLUSH_TRANSFERS (
IN PVOID BusContext,
IN PVOID DeviceHandle);
typedef USB_BUSIFFN_FLUSH_TRANSFERS *PUSB_BUSIFFN_FLUSH_TRANSFERS;
typedef
@ -310,7 +288,6 @@ 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
@ -319,7 +296,6 @@ 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
@ -330,7 +306,6 @@ USB_BUSIFFN_SET_DEVICE_FLAG (
IN GUID *DeviceFlagGuid,
IN PVOID ValueData,
IN ULONG ValueLength);
typedef USB_BUSIFFN_SET_DEVICE_FLAG *PUSB_BUSIFFN_SET_DEVICE_FLAG;
typedef
@ -340,7 +315,6 @@ 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
@ -351,7 +325,6 @@ USB_BUSIFFN_TEST_POINT (
IN PVOID DeviceHandle,
IN ULONG Opcode,
IN PVOID TestData);
typedef USB_BUSIFFN_TEST_POINT *PUSB_BUSIFFN_TEST_POINT;
typedef
@ -363,7 +336,6 @@ USB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO (
OUT PVOID DeviceInformationBuffer,
IN ULONG DeviceInformationBufferLength,
IN OUT PULONG LengthOfDataCopied);
typedef USB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO *PUSB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO;
typedef
@ -371,7 +343,6 @@ NTSTATUS
USB_BUSIFFN
USB_BUSIFFN_WAIT_ASYNC_POWERUP (
IN PVOID BusContext);
typedef USB_BUSIFFN_WAIT_ASYNC_POWERUP *PUSB_BUSIFFN_WAIT_ASYNC_POWERUP;
typedef
@ -381,7 +352,6 @@ 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
@ -392,7 +362,6 @@ USB_BUSIFFN_DEREF_DEVICE_HANDLE (
IN PUSB_DEVICE_HANDLE DeviceHandle,
IN PVOID Object,
IN ULONG Tag);
typedef USB_BUSIFFN_DEREF_DEVICE_HANDLE *PUSB_BUSIFFN_DEREF_DEVICE_HANDLE;
typedef
@ -403,7 +372,6 @@ USB_BUSIFFN_REF_DEVICE_HANDLE (
IN PUSB_DEVICE_HANDLE DeviceHandle,
IN PVOID Object,
IN ULONG Tag);
typedef USB_BUSIFFN_REF_DEVICE_HANDLE *PUSB_BUSIFFN_REF_DEVICE_HANDLE;
typedef
@ -413,7 +381,6 @@ 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
@ -423,7 +390,6 @@ 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
@ -433,7 +399,6 @@ 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
@ -442,7 +407,6 @@ 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
@ -468,11 +432,10 @@ 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);
0xb2bb8c0a, 0x5ab4, 0x11d3, 0xa8, 0xcd, 0x0, 0xc0, 0x4f, 0x68, 0x74, 0x7a);
typedef struct _USB_BUS_INTERFACE_HUB_V0 {
USHORT Size;
@ -667,7 +630,7 @@ typedef struct _USB_BUS_INTERFACE_HUB_V7 {
} 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);
0xc5485f21, 0x4e81, 0x4a23, 0xa8, 0xf9, 0xd8, 0x51, 0x8a, 0xf4, 0x5c, 0x38);
typedef VOID
(USB_BUSIFFN *PUSB_BUSIFFN_SET_MINIDUMP_FLAGS) (
@ -683,7 +646,7 @@ typedef struct _USB_BUS_INTERFACE_HUB_MINIDUMP {
} 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);
0xbfc3f363, 0x8ba1, 0x4c7b, 0x97, 0xba, 0x9b, 0x12, 0xb1, 0xca, 0x13, 0x2f);
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_SUSPEND_HUB) (
@ -694,95 +657,95 @@ typedef NTSTATUS
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;
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_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;
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];
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;
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;
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;
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];
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;
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
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */