Sync with trunk (r48545)
[reactos.git] / include / ddk / hubbusif.h
index e03f19e..be7b12e 100644 (file)
@@ -1,8 +1,14 @@
 #pragma once
 
+#define _HUBBUSIF_
+
+#include "usbdi.h"
+
 #if (NTDDI_VERSION >= NTDDI_WINXP)
 
+#if !defined(_USBBUSIF_)
 typedef PVOID PUSB_DEVICE_HANDLE;
+#endif
 
 typedef struct _ROOTHUB_PDO_EXTENSION {
   ULONG Signature;
@@ -16,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
@@ -35,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 {
@@ -50,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 {
@@ -114,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
@@ -149,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
@@ -159,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
@@ -168,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
@@ -180,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
@@ -191,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
@@ -200,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
@@ -212,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
@@ -223,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
@@ -232,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
@@ -242,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
@@ -251,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
@@ -259,7 +248,6 @@ VOID
 USB_BUSIFFN
 USB_BUSIFFN_ACQUIRE_SEMAPHORE (
   IN PVOID BusContext);
-
 typedef USB_BUSIFFN_ACQUIRE_SEMAPHORE *PUSB_BUSIFFN_ACQUIRE_SEMAPHORE;
 
 typedef
@@ -267,7 +255,6 @@ VOID
 USB_BUSIFFN
 USB_BUSIFFN_RELEASE_SEMAPHORE (
   IN PVOID BusContext);
-
 typedef USB_BUSIFFN_RELEASE_SEMAPHORE *PUSB_BUSIFFN_RELEASE_SEMAPHORE;
 
 typedef
@@ -275,7 +262,6 @@ VOID
 __stdcall
 RH_INIT_CALLBACK (
   IN PVOID CallBackContext);
-
 typedef RH_INIT_CALLBACK *PRH_INIT_CALLBACK;
 
 typedef
@@ -285,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
@@ -294,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
@@ -304,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
@@ -313,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
@@ -324,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
@@ -334,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
@@ -345,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
@@ -357,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
@@ -365,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
@@ -375,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
@@ -386,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
@@ -397,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
@@ -407,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
@@ -417,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
@@ -427,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
@@ -436,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
@@ -462,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;
@@ -661,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) (
@@ -677,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) (
@@ -688,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) */