ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

hubbusif.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #define _HUBBUSIF_
00004 
00005 #include "usbdi.h"
00006 
00007 #if (NTDDI_VERSION >= NTDDI_WINXP)
00008 
00009 #if !defined(_USBBUSIF_)
00010 typedef PVOID PUSB_DEVICE_HANDLE;
00011 #endif
00012 
00013 typedef struct _ROOTHUB_PDO_EXTENSION {
00014   ULONG Signature;
00015 } ROOTHUB_PDO_EXTENSION, *PROOTHUB_PDO_EXTENSION;
00016 
00017 #define USBD_DEVHACK_SLOW_ENUMERATION   0x00000001
00018 #define USBD_DEVHACK_DISABLE_SN         0x00000002
00019 #define USBD_DEVHACK_SET_DIAG_ID        0x00000004
00020 
00021 #ifndef USB_BUSIFFN
00022 #define USB_BUSIFFN __stdcall
00023 #endif
00024 
00025 #define CD_ERR_V1               0x00000001
00026 
00027 #define ID_ERR_V1               0x00000001
00028 
00029 #define USBD_KEEP_DEVICE_DATA   0x00000001
00030 #define USBD_MARK_DEVICE_BUSY   0x00000002
00031 
00032 #define USB_IDLE_NOT_READY      0
00033 #define USB_IDLE_READY          1
00034 
00035 _Function_class_(USB_BUSIFFN_CREATE_USB_DEVICE)
00036 typedef NTSTATUS
00037 USB_BUSIFFN
00038 USB_BUSIFFN_CREATE_USB_DEVICE (
00039   _In_ PVOID BusContext,
00040   _Outptr_ PUSB_DEVICE_HANDLE *NewDeviceHandle,
00041   _In_ PUSB_DEVICE_HANDLE HubDeviceHandle,
00042   _In_ USHORT PortStatus,
00043   _In_ USHORT PortNumber);
00044 typedef USB_BUSIFFN_CREATE_USB_DEVICE *PUSB_BUSIFFN_CREATE_USB_DEVICE;
00045 
00046 typedef enum _USBPORT_CREATEDEV_ERROR {
00047   CreateDevErrNotSet = 0,
00048   CreateDevBadHubDevHandle,
00049   CreateDevFailedAllocDevHandle,
00050   CreateDevFailedOpenEndpoint,
00051   CreateDevFailedAllocDsBuff,
00052   CreateDevFailedGetDs,
00053   CreateDevTtNotFound,
00054   CreateDevBadDevHandlePtr
00055 } USBPORT_CREATEDEV_ERROR;
00056 
00057 typedef struct _USB_CD_ERROR_INFORMATION {
00058   ULONG Version;
00059   USBPORT_CREATEDEV_ERROR PathError;
00060   ULONG UlongArg1;
00061   ULONG UlongArg2;
00062   NTSTATUS NtStatus;
00063   UCHAR XtraInfo[64];
00064 } USB_CD_ERROR_INFORMATION, *PUSB_CD_ERROR_INFORMATION;
00065 
00066 _Function_class_(USB_BUSIFFN_CREATE_USB_DEVICE_EX)
00067 typedef NTSTATUS
00068 USB_BUSIFFN
00069 USB_BUSIFFN_CREATE_USB_DEVICE_EX (
00070   _In_ PVOID BusContext,
00071   _Outptr_ PUSB_DEVICE_HANDLE *NewDeviceHandle,
00072   _In_ PUSB_DEVICE_HANDLE HsHubDeviceHandle,
00073   _In_ USHORT PortStatus,
00074   _In_ USHORT PortNumber,
00075   _Out_ PUSB_CD_ERROR_INFORMATION CdErrorInfo,
00076   _In_ USHORT TtPortNumber);
00077 typedef USB_BUSIFFN_CREATE_USB_DEVICE_EX *PUSB_BUSIFFN_CREATE_USB_DEVICE_EX;
00078 
00079 typedef struct _USB_PORT_PATH {
00080   ULONG PortPathDepth;
00081   ULONG PortPath[6];
00082 } USB_PORT_PATH, *PUSB_PORT_PATH;
00083 
00084 _Function_class_(USB_BUSIFFN_CREATE_USB_DEVICE_V7)
00085 typedef NTSTATUS
00086 USB_BUSIFFN
00087 USB_BUSIFFN_CREATE_USB_DEVICE_V7 (
00088   _In_ PVOID BusContext,
00089   _Outptr_ PUSB_DEVICE_HANDLE *NewDeviceHandle,
00090   _In_ PUSB_DEVICE_HANDLE HsHubDeviceHandle,
00091   _In_ USHORT PortStatus,
00092   _In_ PUSB_PORT_PATH PortPath,
00093   _Out_ PUSB_CD_ERROR_INFORMATION CdErrorInfo,
00094   _In_ USHORT TtPortNumber,
00095   _In_ PDEVICE_OBJECT PdoDeviceObject,
00096   _In_ PUNICODE_STRING PhysicalDeviceObjectName);
00097 typedef USB_BUSIFFN_CREATE_USB_DEVICE_V7 *PUSB_BUSIFFN_CREATE_USB_DEVICE_V7;
00098 
00099 typedef enum _USBPORT_INITDEV_ERROR {
00100   InitDevErrNotSet = 0,
00101   InitDevFailedSetAddress,
00102   InitDevFailedPokeEndpoint,
00103   InitDevBadDeviceDescriptor
00104 } USBPORT_INITDEV_ERROR;
00105 
00106 typedef struct _USB_ID_ERROR_INFORMATION {
00107   ULONG Version;
00108   USBPORT_INITDEV_ERROR PathError;
00109   ULONG Arg1;
00110   ULONG UsbAddress;
00111   NTSTATUS NtStatus;
00112   USBD_STATUS UsbdStatus;
00113   UCHAR XtraInfo[64];
00114 } USB_ID_ERROR_INFORMATION, *PUSB_ID_ERROR_INFORMATION;
00115 
00116 _Function_class_(USB_BUSIFFN_INITIALIZE_USB_DEVICE)
00117 typedef NTSTATUS
00118 USB_BUSIFFN
00119 USB_BUSIFFN_INITIALIZE_USB_DEVICE(
00120   _In_ PVOID BusContext,
00121   _Inout_ PUSB_DEVICE_HANDLE DeviceHandle);
00122 typedef USB_BUSIFFN_INITIALIZE_USB_DEVICE *PUSB_BUSIFFN_INITIALIZE_USB_DEVICE;
00123 
00124 _Function_class_(USB_BUSIFFN_INITIALIZE_USB_DEVICE_EX)
00125 typedef NTSTATUS
00126 USB_BUSIFFN
00127 USB_BUSIFFN_INITIALIZE_USB_DEVICE_EX(
00128   _In_ PVOID BusContext,
00129   _Inout_ PUSB_DEVICE_HANDLE DeviceHandle,
00130   _Out_ PUSB_ID_ERROR_INFORMATION IdErrInfo);
00131 typedef USB_BUSIFFN_INITIALIZE_USB_DEVICE_EX *PUSB_BUSIFFN_INITIALIZE_USB_DEVICE_EX;
00132 
00133 _Function_class_(USB_BUSIFFN_REMOVE_USB_DEVICE)
00134 typedef NTSTATUS
00135 USB_BUSIFFN
00136 USB_BUSIFFN_REMOVE_USB_DEVICE(
00137   _In_ PVOID BusContext,
00138   _Inout_ PUSB_DEVICE_HANDLE DeviceHandle,
00139   _In_ ULONG Flags);
00140 typedef USB_BUSIFFN_REMOVE_USB_DEVICE *PUSB_BUSIFFN_REMOVE_USB_DEVICE;
00141 
00142 _Function_class_(USB_BUSIFFN_GET_USB_DESCRIPTORS)
00143 typedef NTSTATUS
00144 USB_BUSIFFN
00145 USB_BUSIFFN_GET_USB_DESCRIPTORS(
00146   _In_ PVOID BusContext,
00147   _Inout_ PUSB_DEVICE_HANDLE DeviceHandle,
00148   _Out_writes_bytes_to_(*DeviceDescriptorBufferLength,*DeviceDescriptorBufferLength)
00149     PUCHAR DeviceDescriptorBuffer,
00150   _Inout_ PULONG DeviceDescriptorBufferLength,
00151   _Out_writes_bytes_to_(*ConfigDescriptorBufferLength, *ConfigDescriptorBufferLength)
00152     PUCHAR ConfigDescriptorBuffer,
00153   _Inout_ PULONG ConfigDescriptorBufferLength);
00154 typedef USB_BUSIFFN_GET_USB_DESCRIPTORS *PUSB_BUSIFFN_GET_USB_DESCRIPTORS;
00155 
00156 _Function_class_(USB_BUSIFFN_RESTORE_DEVICE)
00157 typedef NTSTATUS
00158 USB_BUSIFFN
00159 USB_BUSIFFN_RESTORE_DEVICE(
00160   _In_ PVOID BusContext,
00161   _Inout_ PUSB_DEVICE_HANDLE OldDeviceHandle,
00162   _Inout_ PUSB_DEVICE_HANDLE NewDeviceHandle);
00163 typedef USB_BUSIFFN_RESTORE_DEVICE *PUSB_BUSIFFN_RESTORE_DEVICE;
00164 
00165 _Function_class_(USB_BUSIFFN_GET_POTRTHACK_FLAGS)
00166 typedef NTSTATUS
00167 USB_BUSIFFN
00168 USB_BUSIFFN_GET_POTRTHACK_FLAGS(
00169   _In_ PVOID BusContext,
00170   _Inout_ PULONG Flags);
00171 typedef USB_BUSIFFN_GET_POTRTHACK_FLAGS *PUSB_BUSIFFN_GET_POTRTHACK_FLAGS;
00172 
00173 _Function_class_(USB_BUSIFFN_GET_DEVICE_INFORMATION)
00174 typedef NTSTATUS
00175 USB_BUSIFFN
00176 USB_BUSIFFN_GET_DEVICE_INFORMATION(
00177   _In_ PVOID BusContext,
00178   _In_ PUSB_DEVICE_HANDLE DeviceHandle,
00179   _Out_writes_bytes_to_(DeviceInformationBufferLength,*LengthOfDataCopied)
00180     PVOID DeviceInformationBuffer,
00181   _In_ ULONG DeviceInformationBufferLength,
00182   _Inout_ PULONG LengthOfDataCopied);
00183 typedef USB_BUSIFFN_GET_DEVICE_INFORMATION *PUSB_BUSIFFN_GET_DEVICE_INFORMATION;
00184 
00185 _Function_class_(USB_BUSIFFN_GET_CONTROLLER_INFORMATION)
00186 typedef NTSTATUS
00187 USB_BUSIFFN
00188 USB_BUSIFFN_GET_CONTROLLER_INFORMATION(
00189   _In_ PVOID BusContext,
00190   _Inout_updates_bytes_to_(ControllerInformationBufferLength, *LengthOfDataCopied)
00191     PVOID ControllerInformationBuffer,
00192   _In_ ULONG ControllerInformationBufferLength,
00193   _Inout_ PULONG LengthOfDataCopied);
00194 typedef USB_BUSIFFN_GET_CONTROLLER_INFORMATION *PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION;
00195 
00196 _Function_class_(USB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND)
00197 typedef NTSTATUS
00198 USB_BUSIFFN
00199 USB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND(
00200   _In_ PVOID BusContext,
00201   _In_ BOOLEAN Enable);
00202 typedef USB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND *PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND;
00203 
00204 _Function_class_(USB_BUSIFFN_GET_EXTENDED_HUB_INFO)
00205 typedef NTSTATUS
00206 USB_BUSIFFN
00207 USB_BUSIFFN_GET_EXTENDED_HUB_INFO(
00208   _In_ PVOID BusContext,
00209   _In_ PDEVICE_OBJECT HubPhysicalDeviceObject,
00210   _Inout_updates_bytes_to_(HubInformationBufferLength, *LengthOfDataCopied)
00211     PVOID HubInformationBuffer,
00212   _In_ ULONG HubInformationBufferLength,
00213   _Out_ PULONG LengthOfDataCopied);
00214 typedef USB_BUSIFFN_GET_EXTENDED_HUB_INFO *PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO;
00215 
00216 _Function_class_(USB_BUSIFFN_GET_ROOTHUB_SYM_NAME)
00217 typedef NTSTATUS
00218 USB_BUSIFFN
00219 USB_BUSIFFN_GET_ROOTHUB_SYM_NAME(
00220   _In_ PVOID BusContext,
00221   _Inout_updates_bytes_to_(HubSymNameBufferLength, *HubSymNameActualLength) PVOID HubSymNameBuffer,
00222   _In_ ULONG HubSymNameBufferLength,
00223   _Out_ PULONG HubSymNameActualLength);
00224 typedef USB_BUSIFFN_GET_ROOTHUB_SYM_NAME *PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME;
00225 
00226 _Function_class_(USB_BUSIFFN_GET_DEVICE_BUSCONTEXT)
00227 typedef PVOID
00228 USB_BUSIFFN
00229 USB_BUSIFFN_GET_DEVICE_BUSCONTEXT(
00230   _In_ PVOID HubBusContext,
00231   _In_ PVOID DeviceHandle);
00232 typedef USB_BUSIFFN_GET_DEVICE_BUSCONTEXT *PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT;
00233 
00234 _Function_class_(USB_BUSIFFN_INITIALIZE_20HUB)
00235 typedef NTSTATUS
00236 USB_BUSIFFN
00237 USB_BUSIFFN_INITIALIZE_20HUB(
00238   _In_ PVOID BusContext,
00239   _In_ PUSB_DEVICE_HANDLE HubDeviceHandle,
00240   _In_ ULONG TtCount);
00241 typedef USB_BUSIFFN_INITIALIZE_20HUB *PUSB_BUSIFFN_INITIALIZE_20HUB;
00242 
00243 _Function_class_(USB_BUSIFFN_IS_ROOT)
00244 typedef BOOLEAN
00245 USB_BUSIFFN
00246 USB_BUSIFFN_IS_ROOT(
00247   _In_ PVOID BusContext,
00248   _In_ PVOID DeviceObject);
00249 typedef USB_BUSIFFN_IS_ROOT *PUSB_BUSIFFN_IS_ROOT;
00250 
00251 _Function_class_(USB_BUSIFFN_ACQUIRE_SEMAPHORE)
00252 typedef VOID
00253 USB_BUSIFFN
00254 USB_BUSIFFN_ACQUIRE_SEMAPHORE(
00255   _In_ PVOID BusContext);
00256 typedef USB_BUSIFFN_ACQUIRE_SEMAPHORE *PUSB_BUSIFFN_ACQUIRE_SEMAPHORE;
00257 
00258 _Function_class_(USB_BUSIFFN_RELEASE_SEMAPHORE)
00259 typedef VOID
00260 USB_BUSIFFN
00261 USB_BUSIFFN_RELEASE_SEMAPHORE(
00262   _In_ PVOID BusContext);
00263 typedef USB_BUSIFFN_RELEASE_SEMAPHORE *PUSB_BUSIFFN_RELEASE_SEMAPHORE;
00264 
00265 _Function_class_(RH_INIT_CALLBACK)
00266 typedef VOID
00267 __stdcall
00268 RH_INIT_CALLBACK(
00269   _In_ PVOID CallBackContext);
00270 typedef RH_INIT_CALLBACK *PRH_INIT_CALLBACK;
00271 
00272 _Function_class_(USB_BUSIFFN_ROOTHUB_INIT_NOTIFY)
00273 typedef NTSTATUS
00274 USB_BUSIFFN
00275 USB_BUSIFFN_ROOTHUB_INIT_NOTIFY(
00276   _In_ PVOID BusContext,
00277   _In_ PVOID CallbackContext,
00278   _In_ PRH_INIT_CALLBACK CallbackRoutine);
00279 typedef USB_BUSIFFN_ROOTHUB_INIT_NOTIFY *PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY;
00280 
00281 _Function_class_(USB_BUSIFFN_FLUSH_TRANSFERS)
00282 typedef VOID
00283 USB_BUSIFFN
00284 USB_BUSIFFN_FLUSH_TRANSFERS(
00285   _In_ PVOID BusContext,
00286   _In_ PVOID DeviceHandle);
00287 typedef USB_BUSIFFN_FLUSH_TRANSFERS *PUSB_BUSIFFN_FLUSH_TRANSFERS;
00288 
00289 _Function_class_(USB_BUSIFFN_CALC_PIPE_BANDWIDTH)
00290 typedef ULONG
00291 USB_BUSIFFN
00292 USB_BUSIFFN_CALC_PIPE_BANDWIDTH(
00293   _In_ PVOID BusContext,
00294   _In_ PUSBD_PIPE_INFORMATION PipeInfo,
00295   _In_ USB_DEVICE_SPEED DeviceSpeed);
00296 typedef USB_BUSIFFN_CALC_PIPE_BANDWIDTH *PUSB_BUSIFFN_CALC_PIPE_BANDWIDTH;
00297 
00298 _Function_class_(USB_BUSIFFN_SET_BUS_WAKE_MODE)
00299 typedef VOID
00300 USB_BUSIFFN
00301 USB_BUSIFFN_SET_BUS_WAKE_MODE(
00302   _In_ PVOID BusContext,
00303   _In_ ULONG Mode);
00304 typedef USB_BUSIFFN_SET_BUS_WAKE_MODE *PUSB_BUSIFFN_SET_BUS_WAKE_MODE;
00305 
00306 _Function_class_(USB_BUSIFFN_SET_DEVICE_FLAG)
00307 typedef VOID
00308 USB_BUSIFFN
00309 USB_BUSIFFN_SET_DEVICE_FLAG(
00310   _In_ PVOID BusContext,
00311   _In_ GUID *DeviceFlagGuid,
00312   _In_ PVOID ValueData,
00313   _In_ ULONG ValueLength);
00314 typedef USB_BUSIFFN_SET_DEVICE_FLAG *PUSB_BUSIFFN_SET_DEVICE_FLAG;
00315 
00316 _Function_class_(USB_BUSIFFN_SET_DEVHANDLE_DATA)
00317 typedef VOID
00318 USB_BUSIFFN
00319 USB_BUSIFFN_SET_DEVHANDLE_DATA(
00320   _In_ PVOID BusContext,
00321   _In_ PVOID DeviceHandle,
00322   _In_ PDEVICE_OBJECT UsbDevicePdo);
00323 typedef USB_BUSIFFN_SET_DEVHANDLE_DATA *PUSB_BUSIFFN_SET_DEVHANDLE_DATA;
00324 
00325 _Function_class_(USB_BUSIFFN_TEST_POINT)
00326 typedef NTSTATUS
00327 USB_BUSIFFN
00328 USB_BUSIFFN_TEST_POINT(
00329   _In_ PVOID BusContext,
00330   _In_ PVOID DeviceHandle,
00331   _In_ ULONG Opcode,
00332   _In_ PVOID TestData);
00333 typedef USB_BUSIFFN_TEST_POINT *PUSB_BUSIFFN_TEST_POINT;
00334 
00335 _Function_class_(USB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO)
00336 typedef NTSTATUS
00337 USB_BUSIFFN
00338 USB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO(
00339   _In_ PVOID BusContext,
00340   _In_ PUSB_DEVICE_HANDLE DeviceHandle,
00341   _Out_writes_bytes_to_(DeviceInformationBufferLength,*LengthOfDataCopied)
00342     PVOID DeviceInformationBuffer,
00343   _In_ ULONG DeviceInformationBufferLength,
00344   _Inout_ PULONG LengthOfDataCopied);
00345 typedef USB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO *PUSB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO;
00346 
00347 _Function_class_(USB_BUSIFFN_WAIT_ASYNC_POWERUP)
00348 typedef NTSTATUS
00349 USB_BUSIFFN
00350 USB_BUSIFFN_WAIT_ASYNC_POWERUP(
00351   _In_ PVOID BusContext);
00352 typedef USB_BUSIFFN_WAIT_ASYNC_POWERUP *PUSB_BUSIFFN_WAIT_ASYNC_POWERUP;
00353 
00354 _Function_class_(USB_BUSIFFN_GET_DEVICE_ADDRESS)
00355 typedef NTSTATUS
00356 USB_BUSIFFN
00357 USB_BUSIFFN_GET_DEVICE_ADDRESS(
00358   _In_ PVOID BusContext,
00359   _In_ PUSB_DEVICE_HANDLE DeviceHandle,
00360   _Out_ PUSHORT DeviceAddress);
00361 typedef USB_BUSIFFN_GET_DEVICE_ADDRESS *PUSB_BUSIFFN_GET_DEVICE_ADDRESS;
00362 
00363 _Function_class_(USB_BUSIFFN_DEREF_DEVICE_HANDLE)
00364 typedef VOID
00365 USB_BUSIFFN
00366 USB_BUSIFFN_DEREF_DEVICE_HANDLE(
00367   _In_ PVOID BusContext,
00368   _In_ PUSB_DEVICE_HANDLE DeviceHandle,
00369   _In_ PVOID Object,
00370   _In_ ULONG Tag);
00371 typedef USB_BUSIFFN_DEREF_DEVICE_HANDLE *PUSB_BUSIFFN_DEREF_DEVICE_HANDLE;
00372 
00373 _Function_class_(USB_BUSIFFN_REF_DEVICE_HANDLE)
00374 typedef NTSTATUS
00375 USB_BUSIFFN
00376 USB_BUSIFFN_REF_DEVICE_HANDLE(
00377   _In_ PVOID BusContext,
00378   _In_ PUSB_DEVICE_HANDLE DeviceHandle,
00379   _In_ PVOID Object,
00380   _In_ ULONG Tag);
00381 typedef USB_BUSIFFN_REF_DEVICE_HANDLE *PUSB_BUSIFFN_REF_DEVICE_HANDLE;
00382 
00383 _Function_class_(USB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE)
00384 typedef ULONG
00385 USB_BUSIFFN
00386 USB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE(
00387   _In_ PVOID BusContext,
00388   _In_ PUSB_DEVICE_HANDLE DeviceHandle,
00389   _In_ ULONG NewIdleReadyState);
00390 typedef USB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE *PUSB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE;
00391 
00392 _Function_class_(USB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT)
00393 typedef NTSTATUS
00394 USB_BUSIFFN
00395 USB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT(
00396   _In_ PVOID BusContext,
00397   _In_ USHORT PortNumber,
00398   _Out_ LPGUID ContainerId);
00399 typedef USB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT *PUSB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT;
00400 
00401 _Function_class_(USB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT)
00402 typedef VOID
00403 USB_BUSIFFN
00404 USB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT(
00405   _In_ PVOID BusContext,
00406   _In_ USHORT PortNumber,
00407   _In_ LPGUID ContainerId);
00408 typedef USB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT *PUSB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT;
00409 
00410 _Function_class_(USB_BUSIFFN_ABORT_ALL_DEVICE_PIPES)
00411 typedef NTSTATUS
00412 USB_BUSIFFN
00413 USB_BUSIFFN_ABORT_ALL_DEVICE_PIPES(
00414   _In_ PVOID BusContext,
00415   _In_ PUSB_DEVICE_HANDLE DeviceHandle);
00416 typedef USB_BUSIFFN_ABORT_ALL_DEVICE_PIPES *PUSB_BUSIFFN_ABORT_ALL_DEVICE_PIPES;
00417 
00418 #define ERRATA_FLAG_RESET_TT_ON_CANCEL              1
00419 #define ERRATA_FLAG_NO_CLEAR_TT_BUFFER_ON_CANCEL    2
00420 
00421 #define USB_BUSIF_HUB_VERSION_0         0x0000
00422 #define USB_BUSIF_HUB_VERSION_1         0x0001
00423 #define USB_BUSIF_HUB_VERSION_2         0x0002
00424 #define USB_BUSIF_HUB_VERSION_3         0x0003
00425 #define USB_BUSIF_HUB_VERSION_4         0x0004
00426 #define USB_BUSIF_HUB_VERSION_5         0x0005
00427 #define USB_BUSIF_HUB_VERSION_6         0x0006
00428 #define USB_BUSIF_HUB_VERSION_7         0x0007
00429 
00430 #define USB_BUSIF_HUB_MIDUMP_VERSION_0  0x0000
00431 
00432 #define USB_BUSIF_HUB_SS_VERSION_0      0x0000
00433 
00434 _Function_class_(USB_BUSIFFN_SET_DEVICE_ERRATA_FLAG)
00435 typedef VOID
00436 USB_BUSIFFN
00437 USB_BUSIFFN_SET_DEVICE_ERRATA_FLAG(
00438   _In_ PVOID BusContext,
00439   _In_ PUSB_DEVICE_HANDLE DeviceHandle,
00440   _In_ ULONG DeviceErrataFlag);
00441 typedef USB_BUSIFFN_SET_DEVICE_ERRATA_FLAG *PUSB_BUSIFFN_SET_DEVICE_ERRATA_FLAG;
00442 
00443 DEFINE_GUID(USB_BUS_INTERFACE_HUB_GUID,
00444   0xb2bb8c0a, 0x5ab4, 0x11d3, 0xa8, 0xcd, 0x0, 0xc0, 0x4f, 0x68, 0x74, 0x7a);
00445 
00446 typedef struct _USB_BUS_INTERFACE_HUB_V0 {
00447   USHORT Size;
00448   USHORT Version;
00449   PVOID BusContext;
00450   PINTERFACE_REFERENCE InterfaceReference;
00451   PINTERFACE_DEREFERENCE InterfaceDereference;
00452 } USB_BUS_INTERFACE_HUB_V0, *PUSB_BUS_INTERFACE_HUB_V0;
00453 
00454 typedef struct _USB_BUS_INTERFACE_HUB_V1 {
00455   USHORT Size;
00456   USHORT Version;
00457   PVOID BusContext;
00458   PINTERFACE_REFERENCE InterfaceReference;
00459   PINTERFACE_DEREFERENCE InterfaceDereference;
00460   PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice;
00461   PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice;
00462   PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
00463   PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
00464   PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
00465   PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
00466   PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
00467 } USB_BUS_INTERFACE_HUB_V1, *PUSB_BUS_INTERFACE_HUB_V1;
00468 
00469 typedef struct _USB_BUS_INTERFACE_HUB_V2 {
00470   USHORT Size;
00471   USHORT Version;
00472   PVOID BusContext;
00473   PINTERFACE_REFERENCE InterfaceReference;
00474   PINTERFACE_DEREFERENCE InterfaceDereference;
00475   PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice;
00476   PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice;
00477   PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
00478   PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
00479   PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
00480   PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
00481   PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
00482   PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
00483   PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
00484   PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
00485   PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
00486   PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;    
00487   PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
00488 } USB_BUS_INTERFACE_HUB_V2, *PUSB_BUS_INTERFACE_HUB_V2;
00489 
00490 typedef struct _USB_BUS_INTERFACE_HUB_V3 {
00491   USHORT Size;
00492   USHORT Version;
00493   PVOID BusContext;
00494   PINTERFACE_REFERENCE InterfaceReference;
00495   PINTERFACE_DEREFERENCE InterfaceDereference;
00496   PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice;
00497   PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice;
00498   PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
00499   PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
00500   PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
00501   PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
00502   PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
00503   PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
00504   PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
00505   PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
00506   PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
00507   PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;
00508   PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
00509   PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification;
00510 } USB_BUS_INTERFACE_HUB_V3, *PUSB_BUS_INTERFACE_HUB_V3;
00511 
00512 typedef struct _USB_BUS_INTERFACE_HUB_V4 {
00513   USHORT Size;
00514   USHORT Version;
00515   PVOID BusContext;
00516   PINTERFACE_REFERENCE InterfaceReference;
00517   PINTERFACE_DEREFERENCE InterfaceDereference;
00518   PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice;
00519   PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice;
00520   PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
00521   PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
00522   PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
00523   PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
00524   PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
00525   PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
00526   PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
00527   PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
00528   PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
00529   PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;
00530   PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
00531   PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification;
00532   PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers;
00533 } USB_BUS_INTERFACE_HUB_V4, *PUSB_BUS_INTERFACE_HUB_V4;
00534 
00535 typedef struct _USB_BUS_INTERFACE_HUB_V5 {
00536   USHORT Size;
00537   USHORT Version;
00538   PVOID BusContext;
00539   PINTERFACE_REFERENCE InterfaceReference;
00540   PINTERFACE_DEREFERENCE InterfaceDereference;
00541   PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice;
00542   PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice;
00543   PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
00544   PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
00545   PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
00546   PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
00547   PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
00548   PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
00549   PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
00550   PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
00551   PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
00552   PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;
00553   PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
00554   PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification;
00555   PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers;
00556   PUSB_BUSIFFN_SET_DEVHANDLE_DATA SetDeviceHandleData;
00557 } USB_BUS_INTERFACE_HUB_V5, *PUSB_BUS_INTERFACE_HUB_V5;
00558 
00559 typedef struct _USB_BUS_INTERFACE_HUB_V6 {
00560   USHORT Size;
00561   USHORT Version;
00562   PVOID BusContext;
00563   PINTERFACE_REFERENCE InterfaceReference;
00564   PINTERFACE_DEREFERENCE InterfaceDereference;
00565   PUSB_BUSIFFN_CREATE_USB_DEVICE_EX CreateUsbDevice;
00566   PUSB_BUSIFFN_INITIALIZE_USB_DEVICE_EX InitializeUsbDevice;
00567   PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
00568   PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
00569   PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
00570   PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
00571   PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
00572   PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
00573   PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
00574   PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
00575   PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
00576   PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;
00577   PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
00578   PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification;
00579   PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers;
00580   PUSB_BUSIFFN_SET_DEVHANDLE_DATA SetDeviceHandleData;
00581   PUSB_BUSIFFN_IS_ROOT HubIsRoot;
00582   PUSB_BUSIFFN_ACQUIRE_SEMAPHORE AcquireBusSemaphore;
00583   PUSB_BUSIFFN_RELEASE_SEMAPHORE ReleaseBusSemaphore;
00584   PUSB_BUSIFFN_CALC_PIPE_BANDWIDTH CaculatePipeBandwidth;
00585   PUSB_BUSIFFN_SET_BUS_WAKE_MODE SetBusSystemWakeMode;
00586   PUSB_BUSIFFN_SET_DEVICE_FLAG SetDeviceFlag;
00587   PUSB_BUSIFFN_TEST_POINT HubTestPoint;
00588   PUSB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO GetDevicePerformanceInfo;
00589   PUSB_BUSIFFN_WAIT_ASYNC_POWERUP WaitAsyncPowerUp;
00590   PUSB_BUSIFFN_GET_DEVICE_ADDRESS GetDeviceAddress;
00591   PUSB_BUSIFFN_REF_DEVICE_HANDLE RefDeviceHandle;
00592   PUSB_BUSIFFN_DEREF_DEVICE_HANDLE DerefDeviceHandle;
00593   PUSB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE SetDeviceHandleIdleReadyState;
00594 } USB_BUS_INTERFACE_HUB_V6, *PUSB_BUS_INTERFACE_HUB_V6;
00595 
00596 typedef struct _USB_BUS_INTERFACE_HUB_V7 {
00597   USHORT Size;
00598   USHORT Version;
00599   PVOID BusContext;
00600   PINTERFACE_REFERENCE InterfaceReference;
00601   PINTERFACE_DEREFERENCE InterfaceDereference;
00602   PUSB_BUSIFFN_CREATE_USB_DEVICE_EX CreateUsbDevice;
00603   PUSB_BUSIFFN_INITIALIZE_USB_DEVICE_EX InitializeUsbDevice;
00604   PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
00605   PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
00606   PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
00607   PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
00608   PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
00609   PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
00610   PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
00611   PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
00612   PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
00613   PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;
00614   PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
00615   PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification;
00616   PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers;
00617   PUSB_BUSIFFN_SET_DEVHANDLE_DATA SetDeviceHandleData;
00618   PUSB_BUSIFFN_IS_ROOT HubIsRoot;
00619   PUSB_BUSIFFN_ACQUIRE_SEMAPHORE AcquireBusSemaphore;
00620   PUSB_BUSIFFN_RELEASE_SEMAPHORE ReleaseBusSemaphore;
00621   PUSB_BUSIFFN_CALC_PIPE_BANDWIDTH CaculatePipeBandwidth;
00622   PUSB_BUSIFFN_SET_BUS_WAKE_MODE SetBusSystemWakeMode;
00623   PUSB_BUSIFFN_SET_DEVICE_FLAG SetDeviceFlag;
00624   PUSB_BUSIFFN_TEST_POINT HubTestPoint;
00625   PUSB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO GetDevicePerformanceInfo;
00626   PUSB_BUSIFFN_WAIT_ASYNC_POWERUP WaitAsyncPowerUp;
00627   PUSB_BUSIFFN_GET_DEVICE_ADDRESS GetDeviceAddress;
00628   PUSB_BUSIFFN_REF_DEVICE_HANDLE RefDeviceHandle;
00629   PUSB_BUSIFFN_DEREF_DEVICE_HANDLE DerefDeviceHandle;
00630   PUSB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE SetDeviceHandleIdleReadyState;
00631   PUSB_BUSIFFN_CREATE_USB_DEVICE_V7 CreateUsbDeviceV7;
00632   PUSB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT GetContainerIdForPort;
00633   PUSB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT SetContainerIdForPort;
00634   PUSB_BUSIFFN_ABORT_ALL_DEVICE_PIPES AbortAllDevicePipes;
00635   PUSB_BUSIFFN_SET_DEVICE_ERRATA_FLAG SetDeviceErrataFlag;
00636 } USB_BUS_INTERFACE_HUB_V7, *PUSB_BUS_INTERFACE_HUB_V7;
00637 
00638 DEFINE_GUID(USB_BUS_INTERFACE_HUB_MINIDUMP_GUID,
00639   0xc5485f21, 0x4e81, 0x4a23, 0xa8, 0xf9, 0xd8, 0x51, 0x8a, 0xf4, 0x5c, 0x38);
00640 
00641 typedef VOID
00642 (USB_BUSIFFN *PUSB_BUSIFFN_SET_MINIDUMP_FLAGS) (
00643   IN PVOID);
00644 
00645 typedef struct _USB_BUS_INTERFACE_HUB_MINIDUMP {
00646   USHORT Size;
00647   USHORT Version;
00648   PVOID BusContext;
00649   PINTERFACE_REFERENCE InterfaceReference;
00650   PINTERFACE_DEREFERENCE InterfaceDereference;
00651   PUSB_BUSIFFN_SET_MINIDUMP_FLAGS SetUsbPortMiniDumpFlags;
00652 } USB_BUS_INTERFACE_HUB_MINIDUMP, *PUSB_BUS_INTERFACE_HUB_MINIDUMP;
00653 
00654 DEFINE_GUID(USB_BUS_INTERFACE_HUB_SS_GUID, 
00655   0xbfc3f363, 0x8ba1, 0x4c7b, 0x97, 0xba, 0x9b, 0x12, 0xb1, 0xca, 0x13, 0x2f);
00656 
00657 typedef NTSTATUS
00658 (USB_BUSIFFN *PUSB_BUSIFFN_SUSPEND_HUB) (
00659   PDEVICE_OBJECT Pdo);
00660 
00661 typedef NTSTATUS
00662 (USB_BUSIFFN *PUSB_BUSIFFN_RESUME_HUB) (
00663   PDEVICE_OBJECT Pdo);
00664 
00665 typedef struct _USB_BUS_INTERFACE_HUB_SELECTIVE_SUSPEND {
00666   USHORT Size;
00667   USHORT Version;
00668   PVOID BusContext;
00669   PINTERFACE_REFERENCE InterfaceReference;
00670   PINTERFACE_DEREFERENCE InterfaceDereference;
00671   PUSB_BUSIFFN_SUSPEND_HUB SuspendHub;
00672   PUSB_BUSIFFN_RESUME_HUB ResumeHub;
00673 } USB_BUS_INTERFACE_HUB_SELECTIVE_SUSPEND, *PUSB_BUS_INTERFACE_HUB_SELECTIVE_SUSPEND;
00674 
00675 #include <pshpack1.h>
00676 
00677 typedef struct _USB_PIPE_INFORMATION_0 {
00678   USB_ENDPOINT_DESCRIPTOR EndpointDescriptor;
00679   UCHAR ED_Pad[1];
00680   ULONG ScheduleOffset;
00681 } USB_PIPE_INFORMATION_0, *PUSB_PIPE_INFORMATION_0;
00682 
00683 typedef struct _USB_LEVEL_INFORMATION {
00684   ULONG InformationLevel;
00685   ULONG ActualLength;
00686 } USB_LEVEL_INFORMATION, *PUSB_LEVEL_INFORMATION;
00687 
00688 typedef struct _USB_DEVICE_INFORMATION_0 {
00689   ULONG InformationLevel;
00690   ULONG ActualLength;
00691   ULONG PortNumber;
00692   USB_DEVICE_DESCRIPTOR DeviceDescriptor;
00693   UCHAR DD_pad[2];
00694   UCHAR CurrentConfigurationValue;
00695   UCHAR ReservedMBZ;
00696   USHORT DeviceAddress;
00697   ULONG HubAddress;
00698   USB_DEVICE_SPEED DeviceSpeed;
00699   USB_DEVICE_TYPE DeviceType;
00700   ULONG NumberOfOpenPipes;
00701   USB_PIPE_INFORMATION_0 PipeList[1];
00702 } USB_DEVICE_INFORMATION_0, *PUSB_DEVICE_INFORMATION_0;
00703 
00704 typedef struct _USB_CONTROLLER_INFORMATION_0 {
00705   ULONG InformationLevel;
00706   ULONG ActualLength;
00707   BOOLEAN SelectiveSuspendEnabled;
00708   BOOLEAN IsHighSpeedController;
00709 } USB_CONTROLLER_INFORMATION_0, *PUSB_CONTROLLER_INFORMATION_0;
00710 
00711 typedef struct _USB_CONTROLLER_INFORMATION_1 {
00712   ULONG InformationLevel;
00713   ULONG ActualLength;
00714   BOOLEAN SelectiveSuspendEnabled;
00715   BOOLEAN IsHighSpeedController;
00716   ULONG HcBusNumber;
00717   ULONG HcBusDevice;
00718   ULONG HcBusFunction;
00719 } USB_CONTROLLER_INFORMATION_1, *PUSB_CONTROLLER_INFORMATION_1;
00720 
00721 typedef struct _USB_EXTPORT_INFORMATION_0 {
00722   ULONG PhysicalPortNumber;
00723   ULONG PortLabelNumber;
00724   USHORT VidOverride;
00725   USHORT PidOverride;
00726   ULONG PortAttributes;
00727 } USB_EXTPORT_INFORMATION_0, *PUSB_EXTPORT_INFORMATION;
00728 
00729 typedef struct _USB_EXTHUB_INFORMATION_0 {
00730   ULONG InformationLevel;
00731   ULONG NumberOfPorts;
00732   USB_EXTPORT_INFORMATION_0 Port[255];
00733 } USB_EXTHUB_INFORMATION_0, *PUSB_EXTHUB_INFORMATION_0;
00734 
00735 typedef struct _USB_DEVICE_PERFORMANCE_INFO_0 {
00736   ULONG InformationLevel;
00737   ULONG ActualLength;
00738   ULONG BulkBytes;
00739   ULONG BulkUrbCount;
00740   ULONG ControlDataBytes;
00741   ULONG ControlUrbCount;
00742   ULONG IsoBytes;
00743   ULONG IsoUrbCount;
00744   ULONG InterruptBytes;
00745   ULONG InterruptUrbCount;
00746   ULONG AllocedInterrupt[6];
00747   ULONG AllocedIso;
00748   ULONG Total32secBandwidth;
00749   ULONG TotalTtBandwidth;
00750   ULONG TotalIsoLatency;
00751   ULONG DroppedIsoPackets;
00752   ULONG TransferErrors;
00753 } USB_DEVICE_PERFORMANCE_INFO_0, *PUSB_DEVICE_PERFORMANCE_INFO_0;
00754 
00755 #include <poppack.h>
00756 
00757 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */

Generated on Sat May 26 2012 04:28:38 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.