ReactOS  r74227
hubbusif.h
Go to the documentation of this file.
1 #pragma once
2 
3 #define _HUBBUSIF_
4 
5 #include "usbdi.h"
6 
7 #if (NTDDI_VERSION >= NTDDI_WINXP)
8 
9 #if !defined(_USBBUSIF_)
11 #endif
12 
13 typedef struct _ROOTHUB_PDO_EXTENSION {
16 
17 #define USBD_DEVHACK_SLOW_ENUMERATION 0x00000001
18 #define USBD_DEVHACK_DISABLE_SN 0x00000002
19 #define USBD_DEVHACK_SET_DIAG_ID 0x00000004
20 
21 #ifndef USB_BUSIFFN
22 #define USB_BUSIFFN __stdcall
23 #endif
24 
25 #define CD_ERR_V1 0x00000001
26 
27 #define ID_ERR_V1 0x00000001
28 
29 #define USBD_KEEP_DEVICE_DATA 0x00000001
30 #define USBD_MARK_DEVICE_BUSY 0x00000002
31 
32 #define USB_IDLE_NOT_READY 0
33 #define USB_IDLE_READY 1
34 
35 _Function_class_(USB_BUSIFFN_CREATE_USB_DEVICE)
36 typedef NTSTATUS
38 USB_BUSIFFN_CREATE_USB_DEVICE (
39  _In_ PVOID BusContext,
44 typedef USB_BUSIFFN_CREATE_USB_DEVICE *PUSB_BUSIFFN_CREATE_USB_DEVICE;
45 
56 
57 typedef struct _USB_CD_ERROR_INFORMATION {
65 
66 _Function_class_(USB_BUSIFFN_CREATE_USB_DEVICE_EX)
67 typedef NTSTATUS
69 USB_BUSIFFN_CREATE_USB_DEVICE_EX (
70  _In_ PVOID BusContext,
75  _Out_ PUSB_CD_ERROR_INFORMATION CdErrorInfo,
77 typedef USB_BUSIFFN_CREATE_USB_DEVICE_EX *PUSB_BUSIFFN_CREATE_USB_DEVICE_EX;
78 
83 
84 _Function_class_(USB_BUSIFFN_CREATE_USB_DEVICE_V7)
85 typedef NTSTATUS
87 USB_BUSIFFN_CREATE_USB_DEVICE_V7 (
88  _In_ PVOID BusContext,
92  _In_ PUSB_PORT_PATH PortPath,
93  _Out_ PUSB_CD_ERROR_INFORMATION CdErrorInfo,
97 typedef USB_BUSIFFN_CREATE_USB_DEVICE_V7 *PUSB_BUSIFFN_CREATE_USB_DEVICE_V7;
98 
105 
115 
116 _Function_class_(USB_BUSIFFN_INITIALIZE_USB_DEVICE)
117 typedef NTSTATUS
119 USB_BUSIFFN_INITIALIZE_USB_DEVICE(
120  _In_ PVOID BusContext,
122 typedef USB_BUSIFFN_INITIALIZE_USB_DEVICE *PUSB_BUSIFFN_INITIALIZE_USB_DEVICE;
123 
124 _Function_class_(USB_BUSIFFN_INITIALIZE_USB_DEVICE_EX)
125 typedef NTSTATUS
127 USB_BUSIFFN_INITIALIZE_USB_DEVICE_EX(
128  _In_ PVOID BusContext,
130  _Out_ PUSB_ID_ERROR_INFORMATION IdErrInfo);
131 typedef USB_BUSIFFN_INITIALIZE_USB_DEVICE_EX *PUSB_BUSIFFN_INITIALIZE_USB_DEVICE_EX;
132 
133 _Function_class_(USB_BUSIFFN_REMOVE_USB_DEVICE)
134 typedef NTSTATUS
136 USB_BUSIFFN_REMOVE_USB_DEVICE(
137  _In_ PVOID BusContext,
139  _In_ ULONG Flags);
140 typedef USB_BUSIFFN_REMOVE_USB_DEVICE *PUSB_BUSIFFN_REMOVE_USB_DEVICE;
141 
142 _Function_class_(USB_BUSIFFN_GET_USB_DESCRIPTORS)
143 typedef NTSTATUS
145 USB_BUSIFFN_GET_USB_DESCRIPTORS(
146  _In_ PVOID BusContext,
147  _Inout_ PUSB_DEVICE_HANDLE DeviceHandle,
148  _Out_writes_bytes_to_(*DeviceDescriptorBufferLength,*DeviceDescriptorBufferLength)
150  _Inout_ PULONG DeviceDescriptorBufferLength,
151  _Out_writes_bytes_to_(*ConfigDescriptorBufferLength, *ConfigDescriptorBufferLength)
153  _Inout_ PULONG ConfigDescriptorBufferLength);
154 typedef USB_BUSIFFN_GET_USB_DESCRIPTORS *PUSB_BUSIFFN_GET_USB_DESCRIPTORS;
155 
156 _Function_class_(USB_BUSIFFN_RESTORE_DEVICE)
157 typedef NTSTATUS
159 USB_BUSIFFN_RESTORE_DEVICE(
160  _In_ PVOID BusContext,
163 typedef USB_BUSIFFN_RESTORE_DEVICE *PUSB_BUSIFFN_RESTORE_DEVICE;
164 
165 _Function_class_(USB_BUSIFFN_GET_POTRTHACK_FLAGS)
166 typedef NTSTATUS
168 USB_BUSIFFN_GET_POTRTHACK_FLAGS(
169  _In_ PVOID BusContext,
170  _Inout_ PULONG Flags);
171 typedef USB_BUSIFFN_GET_POTRTHACK_FLAGS *PUSB_BUSIFFN_GET_POTRTHACK_FLAGS;
172 
173 _Function_class_(USB_BUSIFFN_GET_DEVICE_INFORMATION)
174 typedef NTSTATUS
176 USB_BUSIFFN_GET_DEVICE_INFORMATION(
177  _In_ PVOID BusContext,
178  _In_ PUSB_DEVICE_HANDLE DeviceHandle,
180  PVOID DeviceInformationBuffer,
181  _In_ ULONG DeviceInformationBufferLength,
183 typedef USB_BUSIFFN_GET_DEVICE_INFORMATION *PUSB_BUSIFFN_GET_DEVICE_INFORMATION;
184 
185 _Function_class_(USB_BUSIFFN_GET_CONTROLLER_INFORMATION)
186 typedef NTSTATUS
188 USB_BUSIFFN_GET_CONTROLLER_INFORMATION(
189  _In_ PVOID BusContext,
191  PVOID ControllerInformationBuffer,
192  _In_ ULONG ControllerInformationBufferLength,
193  _Inout_ PULONG LengthOfDataCopied);
194 typedef USB_BUSIFFN_GET_CONTROLLER_INFORMATION *PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION;
195 
196 _Function_class_(USB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND)
197 typedef NTSTATUS
199 USB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND(
200  _In_ PVOID BusContext,
202 typedef USB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND *PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND;
203 
204 _Function_class_(USB_BUSIFFN_GET_EXTENDED_HUB_INFO)
205 typedef NTSTATUS
207 USB_BUSIFFN_GET_EXTENDED_HUB_INFO(
208  _In_ PVOID BusContext,
211  PVOID HubInformationBuffer,
212  _In_ ULONG HubInformationBufferLength,
213  _Out_ PULONG LengthOfDataCopied);
214 typedef USB_BUSIFFN_GET_EXTENDED_HUB_INFO *PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO;
215 
216 _Function_class_(USB_BUSIFFN_GET_ROOTHUB_SYM_NAME)
217 typedef NTSTATUS
219 USB_BUSIFFN_GET_ROOTHUB_SYM_NAME(
220  _In_ PVOID BusContext,
222  _In_ ULONG HubSymNameBufferLength,
224 typedef USB_BUSIFFN_GET_ROOTHUB_SYM_NAME *PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME;
225 
226 _Function_class_(USB_BUSIFFN_GET_DEVICE_BUSCONTEXT)
227 typedef PVOID
229 USB_BUSIFFN_GET_DEVICE_BUSCONTEXT(
230  _In_ PVOID HubBusContext,
231  _In_ PVOID DeviceHandle);
232 typedef USB_BUSIFFN_GET_DEVICE_BUSCONTEXT *PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT;
233 
234 _Function_class_(USB_BUSIFFN_INITIALIZE_20HUB)
235 typedef NTSTATUS
237 USB_BUSIFFN_INITIALIZE_20HUB(
238  _In_ PVOID BusContext,
240  _In_ ULONG TtCount);
241 typedef USB_BUSIFFN_INITIALIZE_20HUB *PUSB_BUSIFFN_INITIALIZE_20HUB;
242 
243 _Function_class_(USB_BUSIFFN_IS_ROOT)
244 typedef BOOLEAN
246 USB_BUSIFFN_IS_ROOT(
247  _In_ PVOID BusContext,
249 typedef USB_BUSIFFN_IS_ROOT *PUSB_BUSIFFN_IS_ROOT;
250 
251 _Function_class_(USB_BUSIFFN_ACQUIRE_SEMAPHORE)
252 typedef VOID
254 USB_BUSIFFN_ACQUIRE_SEMAPHORE(
255  _In_ PVOID BusContext);
256 typedef USB_BUSIFFN_ACQUIRE_SEMAPHORE *PUSB_BUSIFFN_ACQUIRE_SEMAPHORE;
257 
258 _Function_class_(USB_BUSIFFN_RELEASE_SEMAPHORE)
259 typedef VOID
261 USB_BUSIFFN_RELEASE_SEMAPHORE(
262  _In_ PVOID BusContext);
263 typedef USB_BUSIFFN_RELEASE_SEMAPHORE *PUSB_BUSIFFN_RELEASE_SEMAPHORE;
264 
265 _Function_class_(RH_INIT_CALLBACK)
266 typedef VOID
267 __stdcall
268 RH_INIT_CALLBACK(
269  _In_ PVOID CallBackContext);
270 typedef RH_INIT_CALLBACK *PRH_INIT_CALLBACK;
271 
272 _Function_class_(USB_BUSIFFN_ROOTHUB_INIT_NOTIFY)
273 typedef NTSTATUS
275 USB_BUSIFFN_ROOTHUB_INIT_NOTIFY(
276  _In_ PVOID BusContext,
278  _In_ PRH_INIT_CALLBACK CallbackRoutine);
279 typedef USB_BUSIFFN_ROOTHUB_INIT_NOTIFY *PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY;
280 
281 _Function_class_(USB_BUSIFFN_FLUSH_TRANSFERS)
282 typedef VOID
284 USB_BUSIFFN_FLUSH_TRANSFERS(
285  _In_ PVOID BusContext,
286  _In_ PVOID DeviceHandle);
287 typedef USB_BUSIFFN_FLUSH_TRANSFERS *PUSB_BUSIFFN_FLUSH_TRANSFERS;
288 
289 _Function_class_(USB_BUSIFFN_CALC_PIPE_BANDWIDTH)
290 typedef ULONG
292 USB_BUSIFFN_CALC_PIPE_BANDWIDTH(
293  _In_ PVOID BusContext,
296 typedef USB_BUSIFFN_CALC_PIPE_BANDWIDTH *PUSB_BUSIFFN_CALC_PIPE_BANDWIDTH;
297 
298 _Function_class_(USB_BUSIFFN_SET_BUS_WAKE_MODE)
299 typedef VOID
301 USB_BUSIFFN_SET_BUS_WAKE_MODE(
302  _In_ PVOID BusContext,
304 typedef USB_BUSIFFN_SET_BUS_WAKE_MODE *PUSB_BUSIFFN_SET_BUS_WAKE_MODE;
305 
306 _Function_class_(USB_BUSIFFN_SET_DEVICE_FLAG)
307 typedef VOID
309 USB_BUSIFFN_SET_DEVICE_FLAG(
310  _In_ PVOID BusContext,
314 typedef USB_BUSIFFN_SET_DEVICE_FLAG *PUSB_BUSIFFN_SET_DEVICE_FLAG;
315 
316 _Function_class_(USB_BUSIFFN_SET_DEVHANDLE_DATA)
317 typedef VOID
319 USB_BUSIFFN_SET_DEVHANDLE_DATA(
320  _In_ PVOID BusContext,
321  _In_ PVOID DeviceHandle,
323 typedef USB_BUSIFFN_SET_DEVHANDLE_DATA *PUSB_BUSIFFN_SET_DEVHANDLE_DATA;
324 
325 _Function_class_(USB_BUSIFFN_TEST_POINT)
326 typedef NTSTATUS
328 USB_BUSIFFN_TEST_POINT(
329  _In_ PVOID BusContext,
330  _In_ PVOID DeviceHandle,
331  _In_ ULONG Opcode,
333 typedef USB_BUSIFFN_TEST_POINT *PUSB_BUSIFFN_TEST_POINT;
334 
335 _Function_class_(USB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO)
336 typedef NTSTATUS
338 USB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO(
339  _In_ PVOID BusContext,
340  _In_ PUSB_DEVICE_HANDLE DeviceHandle,
341  _Out_writes_bytes_to_(DeviceInformationBufferLength,*LengthOfDataCopied)
342  PVOID DeviceInformationBuffer,
343  _In_ ULONG DeviceInformationBufferLength,
344  _Inout_ PULONG LengthOfDataCopied);
345 typedef USB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO *PUSB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO;
346 
347 _Function_class_(USB_BUSIFFN_WAIT_ASYNC_POWERUP)
348 typedef NTSTATUS
350 USB_BUSIFFN_WAIT_ASYNC_POWERUP(
351  _In_ PVOID BusContext);
352 typedef USB_BUSIFFN_WAIT_ASYNC_POWERUP *PUSB_BUSIFFN_WAIT_ASYNC_POWERUP;
353 
354 _Function_class_(USB_BUSIFFN_GET_DEVICE_ADDRESS)
355 typedef NTSTATUS
357 USB_BUSIFFN_GET_DEVICE_ADDRESS(
358  _In_ PVOID BusContext,
359  _In_ PUSB_DEVICE_HANDLE DeviceHandle,
361 typedef USB_BUSIFFN_GET_DEVICE_ADDRESS *PUSB_BUSIFFN_GET_DEVICE_ADDRESS;
362 
363 _Function_class_(USB_BUSIFFN_DEREF_DEVICE_HANDLE)
364 typedef VOID
366 USB_BUSIFFN_DEREF_DEVICE_HANDLE(
367  _In_ PVOID BusContext,
368  _In_ PUSB_DEVICE_HANDLE DeviceHandle,
369  _In_ PVOID Object,
370  _In_ ULONG Tag);
371 typedef USB_BUSIFFN_DEREF_DEVICE_HANDLE *PUSB_BUSIFFN_DEREF_DEVICE_HANDLE;
372 
373 _Function_class_(USB_BUSIFFN_REF_DEVICE_HANDLE)
374 typedef NTSTATUS
376 USB_BUSIFFN_REF_DEVICE_HANDLE(
377  _In_ PVOID BusContext,
378  _In_ PUSB_DEVICE_HANDLE DeviceHandle,
379  _In_ PVOID Object,
380  _In_ ULONG Tag);
381 typedef USB_BUSIFFN_REF_DEVICE_HANDLE *PUSB_BUSIFFN_REF_DEVICE_HANDLE;
382 
383 _Function_class_(USB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE)
384 typedef ULONG
386 USB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE(
387  _In_ PVOID BusContext,
388  _In_ PUSB_DEVICE_HANDLE DeviceHandle,
390 typedef USB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE *PUSB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE;
391 
392 _Function_class_(USB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT)
393 typedef NTSTATUS
395 USB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT(
396  _In_ PVOID BusContext,
399 typedef USB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT *PUSB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT;
400 
401 _Function_class_(USB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT)
402 typedef VOID
404 USB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT(
405  _In_ PVOID BusContext,
406  _In_ USHORT PortNumber,
407  _In_ LPGUID ContainerId);
408 typedef USB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT *PUSB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT;
409 
410 _Function_class_(USB_BUSIFFN_ABORT_ALL_DEVICE_PIPES)
411 typedef NTSTATUS
413 USB_BUSIFFN_ABORT_ALL_DEVICE_PIPES(
414  _In_ PVOID BusContext,
415  _In_ PUSB_DEVICE_HANDLE DeviceHandle);
416 typedef USB_BUSIFFN_ABORT_ALL_DEVICE_PIPES *PUSB_BUSIFFN_ABORT_ALL_DEVICE_PIPES;
417 
418 #define ERRATA_FLAG_RESET_TT_ON_CANCEL 1
419 #define ERRATA_FLAG_NO_CLEAR_TT_BUFFER_ON_CANCEL 2
420 
421 #define USB_BUSIF_HUB_VERSION_0 0x0000
422 #define USB_BUSIF_HUB_VERSION_1 0x0001
423 #define USB_BUSIF_HUB_VERSION_2 0x0002
424 #define USB_BUSIF_HUB_VERSION_3 0x0003
425 #define USB_BUSIF_HUB_VERSION_4 0x0004
426 #define USB_BUSIF_HUB_VERSION_5 0x0005
427 #define USB_BUSIF_HUB_VERSION_6 0x0006
428 #define USB_BUSIF_HUB_VERSION_7 0x0007
429 
430 #define USB_BUSIF_HUB_MIDUMP_VERSION_0 0x0000
431 
432 #define USB_BUSIF_HUB_SS_VERSION_0 0x0000
433 
434 _Function_class_(USB_BUSIFFN_SET_DEVICE_ERRATA_FLAG)
435 typedef VOID
437 USB_BUSIFFN_SET_DEVICE_ERRATA_FLAG(
438  _In_ PVOID BusContext,
439  _In_ PUSB_DEVICE_HANDLE DeviceHandle,
441 typedef USB_BUSIFFN_SET_DEVICE_ERRATA_FLAG *PUSB_BUSIFFN_SET_DEVICE_ERRATA_FLAG;
442 
443 DEFINE_GUID(USB_BUS_INTERFACE_HUB_GUID,
444  0xb2bb8c0a, 0x5ab4, 0x11d3, 0xa8, 0xcd, 0x0, 0xc0, 0x4f, 0x68, 0x74, 0x7a);
445 
453 
461  PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice;
462  PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
463  PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
464  PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
465  PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
466  PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
468 
476  PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice;
477  PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
478  PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
479  PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
480  PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
481  PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
482  PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
483  PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
484  PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
485  PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
486  PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;
487  PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
489 
497  PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice;
498  PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
499  PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
500  PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
501  PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
502  PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
503  PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
504  PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
505  PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
506  PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
507  PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;
508  PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
509  PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification;
511 
519  PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice;
520  PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
521  PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
522  PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
523  PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
524  PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
525  PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
526  PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
527  PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
528  PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
529  PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;
530  PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
531  PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification;
532  PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers;
534 
542  PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice;
543  PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
544  PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
545  PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
546  PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
547  PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
548  PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
549  PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
550  PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
551  PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
552  PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;
553  PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
554  PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification;
555  PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers;
556  PUSB_BUSIFFN_SET_DEVHANDLE_DATA SetDeviceHandleData;
558 
566  PUSB_BUSIFFN_INITIALIZE_USB_DEVICE_EX InitializeUsbDevice;
567  PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
568  PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
569  PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
570  PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
571  PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
572  PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
573  PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
574  PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
575  PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
576  PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;
577  PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
578  PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification;
579  PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers;
580  PUSB_BUSIFFN_SET_DEVHANDLE_DATA SetDeviceHandleData;
581  PUSB_BUSIFFN_IS_ROOT HubIsRoot;
582  PUSB_BUSIFFN_ACQUIRE_SEMAPHORE AcquireBusSemaphore;
583  PUSB_BUSIFFN_RELEASE_SEMAPHORE ReleaseBusSemaphore;
584  PUSB_BUSIFFN_CALC_PIPE_BANDWIDTH CaculatePipeBandwidth;
585  PUSB_BUSIFFN_SET_BUS_WAKE_MODE SetBusSystemWakeMode;
586  PUSB_BUSIFFN_SET_DEVICE_FLAG SetDeviceFlag;
587  PUSB_BUSIFFN_TEST_POINT HubTestPoint;
588  PUSB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO GetDevicePerformanceInfo;
589  PUSB_BUSIFFN_WAIT_ASYNC_POWERUP WaitAsyncPowerUp;
590  PUSB_BUSIFFN_GET_DEVICE_ADDRESS GetDeviceAddress;
591  PUSB_BUSIFFN_REF_DEVICE_HANDLE RefDeviceHandle;
592  PUSB_BUSIFFN_DEREF_DEVICE_HANDLE DerefDeviceHandle;
593  PUSB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE SetDeviceHandleIdleReadyState;
595 
603  PUSB_BUSIFFN_INITIALIZE_USB_DEVICE_EX InitializeUsbDevice;
604  PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors;
605  PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice;
606  PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice;
607  PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags;
608  PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation;
609  PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation;
610  PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend;
611  PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation;
612  PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName;
613  PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext;
614  PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub;
615  PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification;
616  PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers;
617  PUSB_BUSIFFN_SET_DEVHANDLE_DATA SetDeviceHandleData;
618  PUSB_BUSIFFN_IS_ROOT HubIsRoot;
619  PUSB_BUSIFFN_ACQUIRE_SEMAPHORE AcquireBusSemaphore;
620  PUSB_BUSIFFN_RELEASE_SEMAPHORE ReleaseBusSemaphore;
621  PUSB_BUSIFFN_CALC_PIPE_BANDWIDTH CaculatePipeBandwidth;
622  PUSB_BUSIFFN_SET_BUS_WAKE_MODE SetBusSystemWakeMode;
623  PUSB_BUSIFFN_SET_DEVICE_FLAG SetDeviceFlag;
624  PUSB_BUSIFFN_TEST_POINT HubTestPoint;
625  PUSB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO GetDevicePerformanceInfo;
626  PUSB_BUSIFFN_WAIT_ASYNC_POWERUP WaitAsyncPowerUp;
627  PUSB_BUSIFFN_GET_DEVICE_ADDRESS GetDeviceAddress;
628  PUSB_BUSIFFN_REF_DEVICE_HANDLE RefDeviceHandle;
629  PUSB_BUSIFFN_DEREF_DEVICE_HANDLE DerefDeviceHandle;
630  PUSB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE SetDeviceHandleIdleReadyState;
632  PUSB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT GetContainerIdForPort;
633  PUSB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT SetContainerIdForPort;
634  PUSB_BUSIFFN_ABORT_ALL_DEVICE_PIPES AbortAllDevicePipes;
637 
638 DEFINE_GUID(USB_BUS_INTERFACE_HUB_MINIDUMP_GUID,
639  0xc5485f21, 0x4e81, 0x4a23, 0xa8, 0xf9, 0xd8, 0x51, 0x8a, 0xf4, 0x5c, 0x38);
640 
641 typedef VOID
642 (USB_BUSIFFN *PUSB_BUSIFFN_SET_MINIDUMP_FLAGS) (
643  IN PVOID);
644 
651  PUSB_BUSIFFN_SET_MINIDUMP_FLAGS SetUsbPortMiniDumpFlags;
653 
654 DEFINE_GUID(USB_BUS_INTERFACE_HUB_SS_GUID,
655  0xbfc3f363, 0x8ba1, 0x4c7b, 0x97, 0xba, 0x9b, 0x12, 0xb1, 0xca, 0x13, 0x2f);
656 
657 typedef NTSTATUS
658 (USB_BUSIFFN *PUSB_BUSIFFN_SUSPEND_HUB) (
660 
661 typedef NTSTATUS
662 (USB_BUSIFFN *PUSB_BUSIFFN_RESUME_HUB) (
664 
671  PUSB_BUSIFFN_SUSPEND_HUB SuspendHub;
672  PUSB_BUSIFFN_RESUME_HUB ResumeHub;
674 
675 #include <pshpack1.h>
676 
677 typedef struct _USB_PIPE_INFORMATION_0 {
682 
683 typedef struct _USB_LEVEL_INFORMATION {
687 
703 
710 
720 
728 
734 
754 
755 #include <poppack.h>
756 
757 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
DWORD *typedef PVOID
Definition: winlogon.h:52
enum _USB_DEVICE_TYPE USB_DEVICE_TYPE
_In_ PDEVICE_OBJECT HubPhysicalDeviceObject
Definition: hubbusif.h:209
PUSB_BUSIFFN_RELEASE_SEMAPHORE ReleaseBusSemaphore
Definition: hubbusif.h:583
PUSB_BUSIFFN_ABORT_ALL_DEVICE_PIPES AbortAllDevicePipes
Definition: hubbusif.h:634
PUSB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT GetContainerIdForPort
Definition: hubbusif.h:632
struct _USB_BUS_INTERFACE_HUB_V0 * PUSB_BUS_INTERFACE_HUB_V0
PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName
Definition: hubbusif.h:575
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: hubbusif.h:650
_In_ PVOID DeviceObject
Definition: hubbusif.h:248
PINTERFACE_REFERENCE InterfaceReference
Definition: hubbusif.h:649
#define IN
Definition: typedefs.h:39
PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation
Definition: hubbusif.h:527
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE _In_ USHORT _In_ USHORT PortNumber
Definition: hubbusif.h:40
PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext
Definition: hubbusif.h:529
_Inout_ PUSB_DEVICE_HANDLE _Out_writes_bytes_to_ DeviceDescriptorBufferLength PUCHAR _Inout_ PULONG _Out_writes_bytes_to_ ConfigDescriptorBufferLength PUCHAR ConfigDescriptorBuffer
Definition: hubbusif.h:151
_In_ PVOID CallbackContext
Definition: hubbusif.h:277
PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation
Definition: hubbusif.h:611
_In_ PVOID _In_ ULONG Opcode
Definition: hubbusif.h:330
PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation
Definition: hubbusif.h:505
_Inout_ PUSB_DEVICE_HANDLE DeviceHandle
Definition: hubbusif.h:121
USB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT * PUSB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT
Definition: hubbusif.h:408
PUSB_BUSIFFN_RELEASE_SEMAPHORE ReleaseBusSemaphore
Definition: hubbusif.h:620
USB_BUSIFFN_REMOVE_USB_DEVICE * PUSB_BUSIFFN_REMOVE_USB_DEVICE
Definition: hubbusif.h:140
_In_ PDEVICE_OBJECT Pdo
Definition: classpnp.h:301
PUSB_BUSIFFN_TEST_POINT HubTestPoint
Definition: hubbusif.h:587
struct _USB_BUS_INTERFACE_HUB_V4 * PUSB_BUS_INTERFACE_HUB_V4
PUSB_BUSIFFN_SUSPEND_HUB SuspendHub
Definition: hubbusif.h:671
struct _USB_BUS_INTERFACE_HUB_MINIDUMP USB_BUS_INTERFACE_HUB_MINIDUMP
PUSB_BUSIFFN_RESUME_HUB ResumeHub
Definition: hubbusif.h:672
struct _USB_BUS_INTERFACE_HUB_V7 * PUSB_BUS_INTERFACE_HUB_V7
_In_ GUID * DeviceFlagGuid
Definition: hubbusif.h:311
struct _USB_PORT_PATH USB_PORT_PATH
USB_BUSIFFN_GET_DEVICE_ADDRESS * PUSB_BUSIFFN_GET_DEVICE_ADDRESS
Definition: hubbusif.h:361
PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice
Definition: hubbusif.h:519
PINTERFACE_REFERENCE InterfaceReference
Definition: hubbusif.h:600
PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags
Definition: hubbusif.h:607
_In_ ULONG Mode
Definition: hubbusif.h:303
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: hubbusif.h:601
BOOLEAN Enable
Definition: acefiex.h:245
struct _USB_EXTPORT_INFORMATION_0 USB_EXTPORT_INFORMATION_0
PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers
Definition: hubbusif.h:532
USB_BUSIFFN_GET_ROOTHUB_SYM_NAME * PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME
Definition: hubbusif.h:224
PUSB_BUSIFFN_INITIALIZE_USB_DEVICE_EX InitializeUsbDevice
Definition: hubbusif.h:603
USB_BUSIFFN_ABORT_ALL_DEVICE_PIPES * PUSB_BUSIFFN_ABORT_ALL_DEVICE_PIPES
Definition: hubbusif.h:416
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: hubbusif.h:564
PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice
Definition: hubbusif.h:497
PUSB_BUSIFFN_CALC_PIPE_BANDWIDTH CaculatePipeBandwidth
Definition: hubbusif.h:584
PINTERFACE_REFERENCE InterfaceReference
Definition: hubbusif.h:458
PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice
Definition: hubbusif.h:545
unsigned char * PUCHAR
Definition: retypes.h:3
PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers
Definition: hubbusif.h:555
USB_BUSIFFN_GET_CONTROLLER_INFORMATION * PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION
Definition: hubbusif.h:194
PUSB_BUSIFFN_SET_DEVICE_ERRATA_FLAG SetDeviceErrataFlag
Definition: hubbusif.h:635
PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation
Definition: hubbusif.h:466
PUSB_BUSIFFN_SET_MINIDUMP_FLAGS SetUsbPortMiniDumpFlags
Definition: hubbusif.h:651
#define _Outptr_
Definition: no_sal2.h:396
USB_DEVICE_DESCRIPTOR DeviceDescriptor
Definition: hubbusif.h:692
PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice
Definition: hubbusif.h:521
struct _USB_BUS_INTERFACE_HUB_SELECTIVE_SUSPEND USB_BUS_INTERFACE_HUB_SELECTIVE_SUSPEND
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE HubDeviceHandle
Definition: hubbusif.h:40
PUSB_BUSIFFN_WAIT_ASYNC_POWERUP WaitAsyncPowerUp
Definition: hubbusif.h:589
struct _USB_BUS_INTERFACE_HUB_V7 USB_BUS_INTERFACE_HUB_V7
USB_BUSIFFN_GET_USB_DESCRIPTORS * PUSB_BUSIFFN_GET_USB_DESCRIPTORS
Definition: hubbusif.h:154
PUSB_BUSIFFN_REF_DEVICE_HANDLE RefDeviceHandle
Definition: hubbusif.h:628
PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice
Definition: hubbusif.h:605
struct _USB_ID_ERROR_INFORMATION USB_ID_ERROR_INFORMATION
PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors
Definition: hubbusif.h:604
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: hubbusif.h:495
USB_BUSIFFN_INITIALIZE_20HUB * PUSB_BUSIFFN_INITIALIZE_20HUB
Definition: hubbusif.h:241
struct _USB_BUS_INTERFACE_HUB_V1 USB_BUS_INTERFACE_HUB_V1
PUSB_BUSIFFN_INITIALIZE_USB_DEVICE_EX InitializeUsbDevice
Definition: hubbusif.h:566
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE _In_ USHORT _In_ PUSB_PORT_PATH _Out_ PUSB_CD_ERROR_INFORMATION _In_ USHORT _In_ PDEVICE_OBJECT PdoDeviceObject
Definition: hubbusif.h:89
struct _USB_PIPE_INFORMATION_0 USB_PIPE_INFORMATION_0
PINTERFACE_REFERENCE InterfaceReference
Definition: hubbusif.h:669
PUSB_BUSIFFN_ACQUIRE_SEMAPHORE AcquireBusSemaphore
Definition: hubbusif.h:619
struct _USB_BUS_INTERFACE_HUB_V5 * PUSB_BUS_INTERFACE_HUB_V5
PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice
Definition: hubbusif.h:464
enum _USBPORT_CREATEDEV_ERROR USBPORT_CREATEDEV_ERROR
PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation
Definition: hubbusif.h:571
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: hubbusif.h:451
PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext
Definition: hubbusif.h:552
PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext
Definition: hubbusif.h:576
PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation
Definition: hubbusif.h:482
PUSB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE SetDeviceHandleIdleReadyState
Definition: hubbusif.h:593
PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation
Definition: hubbusif.h:502
PUSB_BUSIFFN_SET_DEVICE_FLAG SetDeviceFlag
Definition: hubbusif.h:586
struct _USB_DEVICE_INFORMATION_0 * PUSB_DEVICE_INFORMATION_0
USB_BUSIFFN_RESTORE_DEVICE * PUSB_BUSIFFN_RESTORE_DEVICE
Definition: hubbusif.h:163
_In_ PVOID _In_ PRH_INIT_CALLBACK CallbackRoutine
Definition: hubbusif.h:277
PUSB_BUSIFFN_DEREF_DEVICE_HANDLE DerefDeviceHandle
Definition: hubbusif.h:629
struct _USB_DEVICE_PERFORMANCE_INFO_0 USB_DEVICE_PERFORMANCE_INFO_0
PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags
Definition: hubbusif.h:523
PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub
Definition: hubbusif.h:577
enum _USBPORT_INITDEV_ERROR USBPORT_INITDEV_ERROR
PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation
Definition: hubbusif.h:574
PUSB_BUSIFFN_IS_ROOT HubIsRoot
Definition: hubbusif.h:618
PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation
Definition: hubbusif.h:609
struct _USB_CONTROLLER_INFORMATION_0 USB_CONTROLLER_INFORMATION_0
USB_BUSIFFN_SET_DEVICE_FLAG * PUSB_BUSIFFN_SET_DEVICE_FLAG
Definition: hubbusif.h:314
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: hubbusif.h:474
PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice
Definition: hubbusif.h:460
PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags
Definition: hubbusif.h:570
PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName
Definition: hubbusif.h:528
USB_EXTPORT_INFORMATION_0 Port[255]
Definition: hubbusif.h:732
_Inout_ PUSB_DEVICE_HANDLE OldDeviceHandle
Definition: hubbusif.h:161
_USBPORT_CREATEDEV_ERROR
Definition: hubbusif.h:46
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
PUSB_BUSIFFN_TEST_POINT HubTestPoint
Definition: hubbusif.h:624
struct _USB_BUS_INTERFACE_HUB_V6 * PUSB_BUS_INTERFACE_HUB_V6
_In_ PUSB_DEVICE_HANDLE _In_ ULONG DeviceErrataFlag
Definition: hubbusif.h:439
USB_BUSIFFN_GET_DEVICE_BUSCONTEXT * PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT
Definition: hubbusif.h:232
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: hubbusif.h:459
PUSB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE SetDeviceHandleIdleReadyState
Definition: hubbusif.h:630
PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext
Definition: hubbusif.h:613
_In_ PVOID _In_ PDEVICE_OBJECT UsbDevicePdo
Definition: hubbusif.h:321
struct _USB_CD_ERROR_INFORMATION * PUSB_CD_ERROR_INFORMATION
struct _USB_DEVICE_INFORMATION_0 USB_DEVICE_INFORMATION_0
struct _USB_EXTHUB_INFORMATION_0 * PUSB_EXTHUB_INFORMATION_0
PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice
Definition: hubbusif.h:544
struct _USB_EXTPORT_INFORMATION_0 * PUSB_EXTPORT_INFORMATION
_In_ PUSB_DEVICE_HANDLE _Out_ PUSHORT DeviceAddress
Definition: hubbusif.h:359
PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice
Definition: hubbusif.h:606
struct _USB_BUS_INTERFACE_HUB_MINIDUMP * PUSB_BUS_INTERFACE_HUB_MINIDUMP
USB_BUSIFFN_ACQUIRE_SEMAPHORE * PUSB_BUSIFFN_ACQUIRE_SEMAPHORE
Definition: hubbusif.h:256
PUSB_BUSIFFN_SET_DEVHANDLE_DATA SetDeviceHandleData
Definition: hubbusif.h:556
PINTERFACE_REFERENCE InterfaceReference
Definition: hubbusif.h:539
PUSB_BUSIFFN_WAIT_ASYNC_POWERUP WaitAsyncPowerUp
Definition: hubbusif.h:626
PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext
Definition: hubbusif.h:507
USB_BUSIFFN_DEREF_DEVICE_HANDLE * PUSB_BUSIFFN_DEREF_DEVICE_HANDLE
Definition: hubbusif.h:371
PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub
Definition: hubbusif.h:508
_Inout_ PUSB_DEVICE_HANDLE _Out_writes_bytes_to_ DeviceDescriptorBufferLength PUCHAR DeviceDescriptorBuffer
Definition: hubbusif.h:148
PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification
Definition: hubbusif.h:509
#define USB_BUSIFFN
Definition: hubbusif.h:22
PUSB_BUSIFFN_SET_BUS_WAKE_MODE SetBusSystemWakeMode
Definition: hubbusif.h:585
#define _Out_
Definition: no_sal2.h:323
struct _USB_PIPE_INFORMATION_0 * PUSB_PIPE_INFORMATION_0
PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers
Definition: hubbusif.h:579
_In_ ULONG _Out_ PULONG HubSymNameActualLength
Definition: hubbusif.h:222
PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation
Definition: hubbusif.h:525
PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation
Definition: hubbusif.h:481
PUSB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO GetDevicePerformanceInfo
Definition: hubbusif.h:625
PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice
Definition: hubbusif.h:500
struct _USB_CONTROLLER_INFORMATION_0 * PUSB_CONTROLLER_INFORMATION_0
typedef VOID(USB_BUSIFFN *PUSB_BUSIFFN_SET_MINIDUMP_FLAGS)(IN PVOID)
PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification
Definition: hubbusif.h:615
PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors
Definition: hubbusif.h:477
USB_BUSIFFN_SET_BUS_WAKE_MODE * PUSB_BUSIFFN_SET_BUS_WAKE_MODE
Definition: hubbusif.h:304
USB_BUSIFFN_GET_POTRTHACK_FLAGS * PUSB_BUSIFFN_GET_POTRTHACK_FLAGS
Definition: hubbusif.h:171
PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation
Definition: hubbusif.h:484
PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors
Definition: hubbusif.h:520
PINTERFACE_REFERENCE InterfaceReference
Definition: hubbusif.h:563
PUSB_BUSIFFN_SET_DEVHANDLE_DATA SetDeviceHandleData
Definition: hubbusif.h:580
enum _USB_DEVICE_SPEED USB_DEVICE_SPEED
PUSB_BUSIFFN_CREATE_USB_DEVICE_EX CreateUsbDevice
Definition: hubbusif.h:602
PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation
Definition: hubbusif.h:503
_In_ PUSB_DEVICE_HANDLE _In_ ULONG _Inout_ PULONG LengthOfDataCopied
Definition: hubbusif.h:181
struct _USB_BUS_INTERFACE_HUB_V3 * PUSB_BUS_INTERFACE_HUB_V3
PUSB_BUSIFFN_SET_BUS_WAKE_MODE SetBusSystemWakeMode
Definition: hubbusif.h:622
PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification
Definition: hubbusif.h:531
struct _USB_BUS_INTERFACE_HUB_SELECTIVE_SUSPEND * PUSB_BUS_INTERFACE_HUB_SELECTIVE_SUSPEND
struct _USB_PORT_PATH * PUSB_PORT_PATH
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE _In_ USHORT _In_ USHORT _Out_ PUSB_CD_ERROR_INFORMATION CdErrorInfo
Definition: hubbusif.h:71
struct _USB_CD_ERROR_INFORMATION USB_CD_ERROR_INFORMATION
PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice
Definition: hubbusif.h:518
USB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE * PUSB_BUSIFFN_SET_DEVICE_HANDLE_IDLE_READY_STATE
Definition: hubbusif.h:390
_In_ PUSBD_PIPE_INFORMATION PipeInfo
Definition: hubbusif.h:294
PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice
Definition: hubbusif.h:499
unsigned char BOOLEAN
USB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND * PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND
Definition: hubbusif.h:202
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE _In_ USHORT _In_ PUSB_PORT_PATH PortPath
Definition: hubbusif.h:89
PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation
Definition: hubbusif.h:608
struct _USB_LEVEL_INFORMATION * PUSB_LEVEL_INFORMATION
PUSB_BUSIFFN_GET_DEVICE_ADDRESS GetDeviceAddress
Definition: hubbusif.h:627
struct _USB_BUS_INTERFACE_HUB_V4 USB_BUS_INTERFACE_HUB_V4
PUSB_BUSIFFN_ACQUIRE_SEMAPHORE AcquireBusSemaphore
Definition: hubbusif.h:582
PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice
Definition: hubbusif.h:461
struct _ROOTHUB_PDO_EXTENSION ROOTHUB_PDO_EXTENSION
PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags
Definition: hubbusif.h:546
USB_DEVICE_TYPE DeviceType
Definition: hubbusif.h:699
PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice
Definition: hubbusif.h:522
PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors
Definition: hubbusif.h:498
PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend
Definition: hubbusif.h:610
USB_BUSIFFN_TEST_POINT * PUSB_BUSIFFN_TEST_POINT
Definition: hubbusif.h:333
_In_ ULONG ControllerInformationBufferLength
Definition: hubbusif.h:192
PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub
Definition: hubbusif.h:487
_In_ GUID _In_ PVOID ValueData
Definition: hubbusif.h:311
unsigned short * PUSHORT
Definition: retypes.h:2
RH_INIT_CALLBACK * PRH_INIT_CALLBACK
Definition: hubbusif.h:270
PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice
Definition: hubbusif.h:463
PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice
Definition: hubbusif.h:569
#define __stdcall
Definition: typedefs.h:26
#define _Inout_
Definition: no_sal2.h:244
PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors
Definition: hubbusif.h:567
USB_DEVICE_SPEED DeviceSpeed
Definition: hubbusif.h:698
USB_BUSIFFN_CALC_PIPE_BANDWIDTH * PUSB_BUSIFFN_CALC_PIPE_BANDWIDTH
Definition: hubbusif.h:296
PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub
Definition: hubbusif.h:614
struct _USB_CONTROLLER_INFORMATION_1 * PUSB_CONTROLLER_INFORMATION_1
typedef NTSTATUS(USB_BUSIFFN *PUSB_BUSIFFN_SUSPEND_HUB)(PDEVICE_OBJECT Pdo)
PINTERFACE_REFERENCE InterfaceReference
Definition: hubbusif.h:516
_Inout_ PUSB_DEVICE_HANDLE _Out_writes_bytes_to_ DeviceDescriptorBufferLength PUCHAR _Inout_ PULONG DeviceDescriptorBufferLength
Definition: hubbusif.h:148
PUSB_BUSIFFN_GET_DEVICE_BUSCONTEXT GetDeviceBusContext
Definition: hubbusif.h:486
PUSB_BUSIFFN_RESTORE_DEVICE RestoreUsbDevice
Definition: hubbusif.h:479
PVOID PUSB_DEVICE_HANDLE
Definition: hubbusif.h:10
unsigned char UCHAR
Definition: xmlstorage.h:181
PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend
Definition: hubbusif.h:483
PINTERFACE_REFERENCE InterfaceReference
Definition: hubbusif.h:494
PUSB_BUSIFFN_CREATE_USB_DEVICE_EX CreateUsbDevice
Definition: hubbusif.h:565
PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation
Definition: hubbusif.h:547
LONG USBD_STATUS
Definition: usb.h:165
PUSB_BUSIFFN_FLUSH_TRANSFERS FlushTransfers
Definition: hubbusif.h:616
_In_ GUID _In_ PVOID _In_ ULONG ValueLength
Definition: hubbusif.h:311
struct _USB_ID_ERROR_INFORMATION * PUSB_ID_ERROR_INFORMATION
_Inout_ PUSB_DEVICE_HANDLE _Out_writes_bytes_to_ DeviceDescriptorBufferLength PUCHAR _Inout_ PULONG _Out_writes_bytes_to_ ConfigDescriptorBufferLength PUCHAR _Inout_ PULONG ConfigDescriptorBufferLength
Definition: hubbusif.h:151
_USBPORT_INITDEV_ERROR
Definition: hubbusif.h:99
USB_BUSIFFN_INITIALIZE_USB_DEVICE * PUSB_BUSIFFN_INITIALIZE_USB_DEVICE
Definition: hubbusif.h:122
USB_BUSIFFN_CREATE_USB_DEVICE_V7 * PUSB_BUSIFFN_CREATE_USB_DEVICE_V7
Definition: hubbusif.h:97
USB_BUSIFFN_RELEASE_SEMAPHORE * PUSB_BUSIFFN_RELEASE_SEMAPHORE
Definition: hubbusif.h:263
PUSB_BUSIFFN_REF_DEVICE_HANDLE RefDeviceHandle
Definition: hubbusif.h:591
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE _In_ USHORT PortStatus
Definition: hubbusif.h:40
USBD_STATUS UsbdStatus
Definition: hubbusif.h:112
struct _USB_BUS_INTERFACE_HUB_V2 USB_BUS_INTERFACE_HUB_V2
USB_PIPE_INFORMATION_0 PipeList[1]
Definition: hubbusif.h:701
_In_ PUSB_DEVICE_HANDLE _In_ ULONG NewIdleReadyState
Definition: hubbusif.h:388
PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend
Definition: hubbusif.h:504
PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend
Definition: hubbusif.h:526
USB_BUSIFFN_IS_ROOT * PUSB_BUSIFFN_IS_ROOT
Definition: hubbusif.h:249
#define _In_
Definition: no_sal2.h:204
PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName
Definition: hubbusif.h:551
PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification
Definition: hubbusif.h:554
USB_BUSIFFN_CREATE_USB_DEVICE * PUSB_BUSIFFN_CREATE_USB_DEVICE
Definition: hubbusif.h:44
struct _USB_EXTHUB_INFORMATION_0 USB_EXTHUB_INFORMATION_0
PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice
Definition: hubbusif.h:568
PUSB_BUSIFFN_GET_DEVICE_INFORMATION QueryDeviceInformation
Definition: hubbusif.h:524
LONG NTSTATUS
Definition: DriverTester.h:11
DEFINE_GUID(USB_BUS_INTERFACE_HUB_GUID, 0xb2bb8c0a, 0x5ab4, 0x11d3, 0xa8, 0xcd, 0x0, 0xc0, 0x4f, 0x68, 0x74, 0x7a)
PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation
Definition: hubbusif.h:548
PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName
Definition: hubbusif.h:612
PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub
Definition: hubbusif.h:553
PUSB_BUSIFFN_GET_DEVICE_ADDRESS GetDeviceAddress
Definition: hubbusif.h:590
USB_BUSIFFN_REF_DEVICE_HANDLE * PUSB_BUSIFFN_REF_DEVICE_HANDLE
Definition: hubbusif.h:381
struct _USB_BUS_INTERFACE_HUB_V1 * PUSB_BUS_INTERFACE_HUB_V1
_In_ PUSB_DEVICE_HANDLE _Out_writes_bytes_to_(DeviceInformationBufferLength,*LengthOfDataCopied) PVOID DeviceInformationBuffer
unsigned short USHORT
Definition: pedump.c:61
PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors
Definition: hubbusif.h:462
USB_BUSIFFN_FLUSH_TRANSFERS * PUSB_BUSIFFN_FLUSH_TRANSFERS
Definition: hubbusif.h:287
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE HsHubDeviceHandle
Definition: hubbusif.h:71
PUSB_BUSIFFN_SET_DEVHANDLE_DATA SetDeviceHandleData
Definition: hubbusif.h:617
PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY RootHubInitNotification
Definition: hubbusif.h:578
PUSB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO GetDevicePerformanceInfo
Definition: hubbusif.h:588
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: hubbusif.h:540
struct _ROOTHUB_PDO_EXTENSION * PROOTHUB_PDO_EXTENSION
unsigned int * PULONG
Definition: retypes.h:1
PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice
Definition: hubbusif.h:541
_Inout_ PUSB_DEVICE_HANDLE _Out_ PUSB_ID_ERROR_INFORMATION IdErrInfo
Definition: hubbusif.h:129
VOID(WINAPI * PINTERFACE_REFERENCE)(PVOID Context)
Definition: precomp.h:13
USB_BUSIFFN_ROOTHUB_INIT_NOTIFY * PUSB_BUSIFFN_ROOTHUB_INIT_NOTIFY
Definition: hubbusif.h:279
PUSB_BUSIFFN_CREATE_USB_DEVICE_V7 CreateUsbDeviceV7
Definition: hubbusif.h:631
PINTERFACE_REFERENCE InterfaceReference
Definition: hubbusif.h:473
PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice
Definition: hubbusif.h:542
_In_ PUSB_DEVICE_HANDLE _In_ ULONG DeviceInformationBufferLength
Definition: hubbusif.h:181
PUSB_BUSIFFN_SET_CONTAINER_ID_FOR_PORT SetContainerIdForPort
Definition: hubbusif.h:633
PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice
Definition: hubbusif.h:496
PUSB_BUSIFFN_SET_DEVICE_FLAG SetDeviceFlag
Definition: hubbusif.h:623
struct _USB_BUS_INTERFACE_HUB_V0 USB_BUS_INTERFACE_HUB_V0
struct _USB_BUS_INTERFACE_HUB_V2 * PUSB_BUS_INTERFACE_HUB_V2
PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags
Definition: hubbusif.h:501
IN ULONG IN ULONG Tag
Definition: evtlib.h:153
USB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO * PUSB_BUSIFFN_GET_DEVICE_PERFORMANCE_INFO
Definition: hubbusif.h:345
_In_ PUSB_DEVICE_HANDLE _In_ ULONG TtCount
Definition: hubbusif.h:239
PUSB_BUSIFFN_REMOVE_USB_DEVICE RemoveUsbDevice
Definition: hubbusif.h:478
ULONG PortPathDepth
Definition: hubbusif.h:80
_In_ PDEVICE_OBJECT _In_ ULONG HubInformationBufferLength
Definition: hubbusif.h:212
PUSB_BUSIFFN_GET_CONTROLLER_INFORMATION GetControllerInformation
Definition: hubbusif.h:572
_Function_class_(USB_BUSIFFN_CREATE_USB_DEVICE) typedef NTSTATUS USB_BUSIFFN USB_BUSIFFN_CREATE_USB_DEVICE(_In_ PVOID BusContext
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: hubbusif.h:517
PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend
Definition: hubbusif.h:549
_Inout_updates_bytes_to_(ControllerInformationBufferLength,*LengthOfDataCopied) PVOID ControllerInformationBuffer
PUSB_BUSIFFN_DEREF_DEVICE_HANDLE DerefDeviceHandle
Definition: hubbusif.h:592
unsigned int ULONG
Definition: retypes.h:1
USB_BUSIFFN_GET_EXTENDED_HUB_INFO * PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO
Definition: hubbusif.h:214
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE _In_ USHORT _In_ USHORT _Out_ PUSB_CD_ERROR_INFORMATION _In_ USHORT TtPortNumber
Definition: hubbusif.h:71
USB_BUSIFFN_WAIT_ASYNC_POWERUP * PUSB_BUSIFFN_WAIT_ASYNC_POWERUP
Definition: hubbusif.h:352
PUSB_BUSIFFN_INITIALIZE_20HUB Initialize20Hub
Definition: hubbusif.h:530
_Outptr_ PUSB_DEVICE_HANDLE * NewDeviceHandle
Definition: hubbusif.h:40
PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName
Definition: hubbusif.h:485
USB_BUSIFFN_INITIALIZE_USB_DEVICE_EX * PUSB_BUSIFFN_INITIALIZE_USB_DEVICE_EX
Definition: hubbusif.h:131
PUSB_BUSIFFN_CALC_PIPE_BANDWIDTH CaculatePipeBandwidth
Definition: hubbusif.h:621
struct _USB_BUS_INTERFACE_HUB_V5 USB_BUS_INTERFACE_HUB_V5
PUSB_BUSIFFN_IS_ROOT HubIsRoot
Definition: hubbusif.h:581
PUSB_BUSIFFN_GET_USB_DESCRIPTORS GetUsbDescriptors
Definition: hubbusif.h:543
_In_ ULONG HubSymNameBufferLength
Definition: hubbusif.h:222
VOID(WINAPI * PINTERFACE_DEREFERENCE)(PVOID Context)
Definition: precomp.h:16
_In_ PUSB_DEVICE_HANDLE _In_ PVOID Object
Definition: hubbusif.h:368
USB_BUSIFFN_CREATE_USB_DEVICE_EX * PUSB_BUSIFFN_CREATE_USB_DEVICE_EX
Definition: hubbusif.h:77
struct _USB_DEVICE_PERFORMANCE_INFO_0 * PUSB_DEVICE_PERFORMANCE_INFO_0
PINTERFACE_DEREFERENCE InterfaceDereference
Definition: hubbusif.h:670
struct _USB_BUS_INTERFACE_HUB_V6 USB_BUS_INTERFACE_HUB_V6
USB_BUSIFFN_SET_DEVICE_ERRATA_FLAG * PUSB_BUSIFFN_SET_DEVICE_ERRATA_FLAG
Definition: hubbusif.h:441
_Outptr_ PUSB_DEVICE_HANDLE _In_ PUSB_DEVICE_HANDLE _In_ USHORT _In_ PUSB_PORT_PATH _Out_ PUSB_CD_ERROR_INFORMATION _In_ USHORT _In_ PDEVICE_OBJECT _In_ PUNICODE_STRING PhysicalDeviceObjectName
Definition: hubbusif.h:89
USB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT * PUSB_BUSIFFN_GET_CONTAINER_ID_FOR_PORT
Definition: hubbusif.h:399
struct _USB_CONTROLLER_INFORMATION_1 USB_CONTROLLER_INFORMATION_1
USB_ENDPOINT_DESCRIPTOR EndpointDescriptor
Definition: hubbusif.h:678
_In_ PUSBD_PIPE_INFORMATION _In_ USB_DEVICE_SPEED DeviceSpeed
Definition: hubbusif.h:294
USB_BUSIFFN_GET_DEVICE_INFORMATION * PUSB_BUSIFFN_GET_DEVICE_INFORMATION
Definition: hubbusif.h:183
PUSB_BUSIFFN_CONTROLLER_SELECTIVE_SUSPEND ControllerSelectiveSuspend
Definition: hubbusif.h:573
PUSB_BUSIFFN_GET_ROOTHUB_SYM_NAME GetRootHubSymbolicName
Definition: hubbusif.h:506
USBPORT_CREATEDEV_ERROR PathError
Definition: hubbusif.h:59
struct _USB_BUS_INTERFACE_HUB_V3 USB_BUS_INTERFACE_HUB_V3
PUSB_BUSIFFN_GET_EXTENDED_HUB_INFO GetExtendedHubInformation
Definition: hubbusif.h:550
PUSB_BUSIFFN_CREATE_USB_DEVICE CreateUsbDevice
Definition: hubbusif.h:475
struct _USB_LEVEL_INFORMATION USB_LEVEL_INFORMATION
USB_BUSIFFN_SET_DEVHANDLE_DATA * PUSB_BUSIFFN_SET_DEVHANDLE_DATA
Definition: hubbusif.h:323
PINTERFACE_REFERENCE InterfaceReference
Definition: hubbusif.h:450
USBPORT_INITDEV_ERROR PathError
Definition: hubbusif.h:108
PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags
Definition: hubbusif.h:465
_In_ USHORT _Out_ LPGUID ContainerId
Definition: hubbusif.h:397
PUSB_BUSIFFN_GET_POTRTHACK_FLAGS GetPortHackFlags
Definition: hubbusif.h:480
PUSB_BUSIFFN_INITIALIZE_USB_DEVICE InitializeUsbDevice
Definition: hubbusif.h:476