ReactOS  0.4.14-dev-358-gbef841c
usbmport.h
Go to the documentation of this file.
1 #ifndef USBMPORT_H__
2 #define USBMPORT_H__
3 
4 #define USBPORT_HCI_MN 0x10000001
5 
6 /* Tranfer types */
7 #define USBPORT_TRANSFER_TYPE_ISOCHRONOUS 0
8 #define USBPORT_TRANSFER_TYPE_CONTROL 1
9 #define USBPORT_TRANSFER_TYPE_BULK 2
10 #define USBPORT_TRANSFER_TYPE_INTERRUPT 3
11 
12 /* Endpoint states */
13 #define USBPORT_ENDPOINT_UNKNOWN 0
14 #define USBPORT_ENDPOINT_PAUSED 2
15 #define USBPORT_ENDPOINT_ACTIVE 3
16 #define USBPORT_ENDPOINT_REMOVE 4
17 #define USBPORT_ENDPOINT_CLOSED 5
18 
19 /* Endpoint status */
20 #define USBPORT_ENDPOINT_RUN 0
21 #define USBPORT_ENDPOINT_HALT 1
22 #define USBPORT_ENDPOINT_CONTROL 4
23 
24 /* Interrupt Endpoint Poll Interval */
25 #define ENDPOINT_INTERRUPT_1ms 1
26 #define ENDPOINT_INTERRUPT_2ms 2
27 #define ENDPOINT_INTERRUPT_4ms 4
28 #define ENDPOINT_INTERRUPT_8ms 8
29 #define ENDPOINT_INTERRUPT_16ms 16
30 #define ENDPOINT_INTERRUPT_32ms 32
31 
32 #define INTERRUPT_ENDPOINTs (ENDPOINT_INTERRUPT_32ms + \
33  ENDPOINT_INTERRUPT_16ms + \
34  ENDPOINT_INTERRUPT_8ms + \
35  ENDPOINT_INTERRUPT_4ms + \
36  ENDPOINT_INTERRUPT_2ms + \
37  ENDPOINT_INTERRUPT_1ms)
38 
39 /* Types of resources. For USBPORT_RESOURCES::ResourcesTypes */
40 #define USBPORT_RESOURCES_PORT 1
41 #define USBPORT_RESOURCES_INTERRUPT 2
42 #define USBPORT_RESOURCES_MEMORY 4
43 
44 typedef struct _USBPORT_RESOURCES {
64 
65 C_ASSERT(sizeof(USBPORT_RESOURCES) == 32 + 5 * sizeof(PVOID));
66 
70  USHORT TotalMaxPacketSize; // TransactionPerMicroframe * MaxPacketSize
87  UCHAR TransactionPerMicroframe; // 1 + additional transactions. Total: from 1 to 3)
92 
93 C_ASSERT(sizeof(USBPORT_ENDPOINT_PROPERTIES) == 56 + 2 * sizeof(PVOID));
94 
103 
105 
113 
115 
123 
124 C_ASSERT(sizeof(USBPORT_SCATTER_GATHER_LIST) == 48 + 4 * sizeof(PVOID));
125 
130 
131 typedef ULONG MPSTATUS; // Miniport status
132 typedef ULONG RHSTATUS; // Roothub status
133 
134 #define MP_STATUS_SUCCESS 0
135 #define MP_STATUS_FAILURE 1
136 #define MP_STATUS_NO_RESOURCES 2
137 #define MP_STATUS_NO_BANDWIDTH 3
138 #define MP_STATUS_ERROR 4
139 #define MP_STATUS_RESERVED1 5
140 #define MP_STATUS_NOT_SUPPORTED 6
141 #define MP_STATUS_HW_ERROR 7
142 #define MP_STATUS_UNSUCCESSFUL 8
143 
144 #define RH_STATUS_SUCCESS 0
145 #define RH_STATUS_NO_CHANGES 1
146 #define RH_STATUS_UNSUCCESSFUL 2
147 
148 /* Additional USB Class Codes from USB.org */
149 #define USBC_DEVICE_CLASS_TYPE_C_BRIDGE 0x12
150 
151 /* Miniport functions */
152 typedef MPSTATUS
154  PVOID,
156  PVOID);
157 
158 typedef MPSTATUS
160  PVOID,
162  PVOID);
163 
164 typedef VOID
166  PVOID,
169 
170 typedef VOID
172  PVOID,
173  PVOID,
174  BOOLEAN);
175 
176 typedef MPSTATUS
178  PVOID,
180 
181 typedef VOID
183  PVOID,
184  BOOLEAN);
185 
186 typedef VOID
188 
189 typedef MPSTATUS
191 
192 typedef BOOLEAN
194 
195 typedef VOID
197  PVOID,
198  BOOLEAN);
199 
200 typedef MPSTATUS
202  PVOID,
203  PVOID,
205  PVOID,
207 
208 typedef MPSTATUS
210  PVOID,
211  PVOID,
213  PVOID,
214  PVOID);
215 
216 typedef VOID
218  PVOID,
219  PVOID,
220  PVOID,
221  PULONG);
222 
223 typedef ULONG
225  PVOID,
226  PVOID);
227 
228 typedef VOID
230  PVOID,
231  PVOID,
232  ULONG);
233 
234 typedef VOID
236  PVOID,
237  PVOID);
238 
239 typedef VOID
241 
242 typedef ULONG
244 
245 typedef VOID
247 
248 typedef VOID
250 
251 typedef VOID
253 
254 typedef VOID
256 
257 typedef VOID
259  PVOID,
260  PVOID,
261  ULONG);
262 
263 typedef ULONG
265  PVOID,
266  PVOID);
267 
268 typedef VOID
270  PVOID,
271  PVOID,
272  ULONG);
273 
274 typedef VOID
276 
277 /* Roothub functions */
278 typedef VOID
280  PVOID,
281  PVOID);
282 
283 typedef MPSTATUS
285  PVOID,
286  PUSHORT);
287 
288 #define USB20_PORT_STATUS_RESERVED1_OWNED_BY_COMPANION (1 << 2)
289 
290 typedef MPSTATUS
292  PVOID,
293  USHORT,
295 
296 typedef MPSTATUS
298  PVOID,
300 
301 typedef MPSTATUS
303  PVOID,
304  USHORT);
305 
306 typedef MPSTATUS
308  PVOID,
309  USHORT);
310 
311 typedef MPSTATUS
313  PVOID,
314  USHORT);
315 
316 typedef MPSTATUS
318  PVOID,
319  USHORT);
320 
321 typedef MPSTATUS
323  PVOID,
324  USHORT);
325 
326 typedef MPSTATUS
328  PVOID,
329  USHORT);
330 
331 typedef MPSTATUS
333  PVOID,
334  USHORT);
335 
336 typedef MPSTATUS
338  PVOID,
339  USHORT);
340 
341 typedef MPSTATUS
343  PVOID,
344  USHORT);
345 
346 typedef MPSTATUS
348  PVOID,
349  USHORT);
350 
351 typedef MPSTATUS
353  PVOID,
354  USHORT);
355 
356 typedef MPSTATUS
358  PVOID,
359  USHORT);
360 
361 typedef VOID
363 
364 typedef VOID
366 
367 /* Miniport ioctl functions */
368 typedef MPSTATUS
370  PVOID,
371  PVOID,
372  PVOID,
373  PULONG,
374  PVOID,
375  PVOID,
376  ULONG,
377  USBD_STATUS *);
378 
379 typedef MPSTATUS
381  PVOID,
382  PVOID,
383  PVOID,
384  PULONG,
385  PVOID,
386  PVOID,
387  ULONG,
388  USBD_STATUS *);
389 
390 typedef MPSTATUS
392  PVOID,
393  PVOID,
394  ULONG,
395  PVOID);
396 
397 /* Port functions */
398 typedef ULONG
400  PVOID,
401  ULONG,
402  PCH,
403  ...);
404 
405 typedef ULONG
407 
408 typedef ULONG
410  PVOID,
411  PVOID,
412  PVOID,
413  ULONG,
414  PCHAR);
415 
416 typedef MPSTATUS
418  PVOID,
419  BOOL,
420  PCWSTR,
421  SIZE_T,
422  PVOID,
423  SIZE_T);
424 
425 typedef ULONG
427 
428 typedef ULONG
430  PVOID,
431  PVOID);
432 
433 typedef VOID
435  PVOID,
436  PVOID,
437  PVOID,
438  USBD_STATUS,
439  ULONG);
440 
441 typedef ULONG
443  PVOID,
444  PVOID,
445  PVOID,
446  ULONG);
447 
448 typedef ULONG
450  PVOID,
451  ULONG,
452  ULONG,
453  ULONG,
454  ULONG,
455  ULONG);
456 
457 typedef PVOID
459  ULONG,
460  PVOID,
461  PVOID);
462 
463 typedef VOID
464 (NTAPI ASYNC_TIMER_CALLBACK)(
465  IN PVOID MiniportExtension,
467 
468 typedef ULONG
470  PVOID,
471  ULONG,
472  PVOID,
473  SIZE_T,
474  ASYNC_TIMER_CALLBACK *);
475 
476 typedef MPSTATUS
478  PVOID,
479  BOOLEAN,
480  PVOID,
481  ULONG,
482  ULONG);
483 
484 typedef NTSTATUS
486  PVOID,
487  ULONG);
488 
489 #define USBPORT_INVALIDATE_CONTROLLER_RESET 1
490 #define USBPORT_INVALIDATE_CONTROLLER_SURPRISE_REMOVE 2
491 #define USBPORT_INVALIDATE_CONTROLLER_SOFT_INTERRUPT 3
492 
493 typedef ULONG
495  PVOID,
496  ULONG);
497 
498 typedef VOID
500 
501 typedef ULONG
503  PVOID,
504  PVOID,
505  PVOID,
506  SIZE_T);
507 
508 /* Miniport functions */
509 typedef VOID
511  PVOID,
513  PVOID);
514 
515 typedef VOID
517 
518 typedef MPSTATUS
520  PVOID,
521  USHORT);
522 
523 typedef VOID
525 
526 #define USB_MINIPORT_VERSION_OHCI 0x01
527 #define USB_MINIPORT_VERSION_UHCI 0x02
528 #define USB_MINIPORT_VERSION_EHCI 0x03
529 #define USB_MINIPORT_VERSION_XHCI 0x04
530 
531 #define USB_MINIPORT_FLAGS_INTERRUPT 0x0001
532 #define USB_MINIPORT_FLAGS_PORT_IO 0x0002
533 #define USB_MINIPORT_FLAGS_MEMORY_IO 0x0004
534 #define USB_MINIPORT_FLAGS_USB2 0x0010
535 #define USB_MINIPORT_FLAGS_DISABLE_SS 0x0020
536 #define USB_MINIPORT_FLAGS_NOT_LOCK_INT 0x0040
537 #define USB_MINIPORT_FLAGS_POLLING 0x0080
538 #define USB_MINIPORT_FLAGS_NO_DMA 0x0100
539 #define USB_MINIPORT_FLAGS_WAKE_SUPPORT 0x0200
540 
541 #define TOTAL_USB11_BUS_BANDWIDTH 12000
542 #define TOTAL_USB20_BUS_BANDWIDTH 400000
543 
555 
556  /* Miniport */
583 
584  /* Roothub */
603 
604  /* Miniport ioctl */
608 
609  /* Port */
626 
627  /* Miniport */
635 
636 #define USB10_MINIPORT_INTERFACE_VERSION 100
637 #define USB20_MINIPORT_INTERFACE_VERSION 200
638 
646 
647 C_ASSERT(sizeof(USBPORT_MINIPORT_INTERFACE) == 32 + 76 * sizeof(PVOID));
648 
649 #define USBPORT_TRANSFER_DIRECTION_OUT 1 // From host to device
650 #define USBPORT_MAX_DEVICE_ADDRESS 127
651 
652 /* For USB1.1 or USB3 Hub Descriptors */
654  struct {
656  USHORT NoPowerSwitching :1; // Reserved. Used only on 1.0 compliant hubs that implement no power switching.
661  };
664 
666 
667 /* For USB2.0 Hub Descriptors */
669  struct {
671  USHORT NoPowerSwitching :1; // Reserved. Used only on 1.0 compliant hubs that implement no power switching.
678  };
681 
683 
685 
692 
693 C_ASSERT(sizeof(USBPORT_HUB_CHARACTERISTICS) == sizeof(USHORT));
694 
695 typedef struct _USBPORT_ROOT_HUB_DATA {
702 
703 C_ASSERT(sizeof(USBPORT_ROOT_HUB_DATA) == 16);
704 
705 ULONG
706 NTAPI
708 
709 NTSTATUS
710 NTAPI
713  IN ULONG Version,
714  IN PUSBPORT_REGISTRATION_PACKET RegistrationPacket);
715 
716 #endif /* USBMPORT_H__ */
VOID(NTAPI * PHCI_POLL_ENDPOINT)(PVOID, PVOID)
Definition: usbmport.h:235
ULONG MPSTATUS
Definition: usbmport.h:131
PHCI_RH_GET_STATUS RH_GetStatus
Definition: usbmport.h:586
PHCI_RH_GET_PORT_STATUS RH_GetPortStatus
Definition: usbmport.h:587
ULONG(NTAPI * PHCI_GET_32BIT_FRAME_NUMBER)(PVOID)
Definition: usbmport.h:243
PHCI_RH_CLEAR_FEATURE_PORT_POWER RH_ClearFeaturePortPower
Definition: usbmport.h:594
const uint16_t * PCWSTR
Definition: typedefs.h:55
#define IN
Definition: typedefs.h:38
ULONG(NTAPI * PUSBPORT_LOG_ENTRY)(PVOID, ULONG, ULONG, ULONG, ULONG, ULONG)
Definition: usbmport.h:449
IN PVOID IN PVOID IN USHORT Version
Definition: pci.h:359
IN PVOID CallBackContext
Definition: usbmport.h:466
PHCI_SUBMIT_TRANSFER SubmitTransfer
Definition: usbmport.h:567
union _USB_PORT_STATUS_AND_CHANGE * PUSB_PORT_STATUS_AND_CHANGE
struct _USBPORT_TRANSFER_PARAMETERS USBPORT_TRANSFER_PARAMETERS
VOID(NTAPI * PHCI_STOP_CONTROLLER)(PVOID, BOOLEAN)
Definition: usbmport.h:182
PHCI_RH_SET_FEATURE_PORT_ENABLE RH_SetFeaturePortEnable
Definition: usbmport.h:591
MPSTATUS(NTAPI * PHCI_RH_SET_FEATURE_PORT_ENABLE)(PVOID, USHORT)
Definition: usbmport.h:312
BOOLEAN IsChirpHandled
Definition: usbmport.h:60
PUSBPORT_TEST_DEBUG_BREAK UsbPortTestDebugBreak
Definition: usbmport.h:611
PUSBPORT_GET_MAPPED_VIRTUAL_ADDRESS UsbPortGetMappedVirtualAddress
Definition: usbmport.h:619
MPSTATUS(NTAPI * PHCI_RH_CHIRP_ROOT_PORT)(PVOID, USHORT)
Definition: usbmport.h:519
USBPORT_HUB_30_CHARACTERISTICS Usb30HubCharacteristics
Definition: usbmport.h:690
PUSBPORT_ASSERT_FAILURE UsbPortAssertFailure
Definition: usbmport.h:612
PUSBPORT_COMPLETE_ISO_TRANSFER UsbPortCompleteIsoTransfer
Definition: usbmport.h:617
MPSTATUS(NTAPI * PHCI_START_SEND_ONE_PACKET)(PVOID, PVOID, PVOID, PULONG, PVOID, PVOID, ULONG, USBD_STATUS *)
Definition: usbmport.h:369
PHCI_RH_SET_FEATURE_PORT_POWER RH_SetFeaturePortPower
Definition: usbmport.h:590
PHCI_DISABLE_INTERRUPTS DisableInterrupts
Definition: usbmport.h:577
PUSBPORT_INVALIDATE_ENDPOINT UsbPortInvalidateEndpoint
Definition: usbmport.h:615
LONG NTSTATUS
Definition: precomp.h:26
PHCI_RESUME_CONTROLLER ResumeController
Definition: usbmport.h:564
VOID(NTAPI * PHCI_INTERRUPT_NEXT_SOF)(PVOID)
Definition: usbmport.h:246
ULONG RHSTATUS
Definition: usbmport.h:132
MPSTATUS(NTAPI * PHCI_RH_GET_PORT_STATUS)(PVOID, USHORT, PUSB_PORT_STATUS_AND_CHANGE)
Definition: usbmport.h:291
PUSBPORT_COMPLETE_TRANSFER UsbPortCompleteTransfer
Definition: usbmport.h:616
USBPORT_REGISTRATION_PACKET Packet
Definition: usbmport.h:644
struct _USBPORT_ENDPOINT_PROPERTIES USBPORT_ENDPOINT_PROPERTIES
MPSTATUS(NTAPI * PHCI_RH_CLEAR_FEATURE_PORT_SUSPEND_CHANGE)(PVOID, USHORT)
Definition: usbmport.h:352
PDRIVER_OBJECT DriverObject
Definition: usbmport.h:640
ULONG(NTAPI * PUSBPORT_INVALIDATE_CONTROLLER)(PVOID, ULONG)
Definition: usbmport.h:494
MPSTATUS(NTAPI * PHCI_RESUME_CONTROLLER)(PVOID)
Definition: usbmport.h:190
PHCI_RH_SET_FEATURE_PORT_RESET RH_SetFeaturePortReset
Definition: usbmport.h:589
KAFFINITY InterruptAffinity
Definition: usbmport.h:50
PHYSICAL_ADDRESS SgPhysicalAddress
Definition: usbmport.h:107
PHCI_ENABLE_INTERRUPTS EnableInterrupts
Definition: usbmport.h:576
PDRIVER_UNLOAD DriverUnload
Definition: usbmport.h:642
PHCI_RH_GET_ROOT_HUB_DATA RH_GetRootHubData
Definition: usbmport.h:585
PUSBPORT_NOTIFY_DOUBLE_BUFFER UsbPortNotifyDoubleBuffer
Definition: usbmport.h:625
USB_DEVICE_SPEED DeviceSpeed
Definition: usbmport.h:73
USB_DEFAULT_PIPE_SETUP_PACKET SetupPacket
Definition: usbmport.h:101
#define BOOL
Definition: nt_native.h:43
struct _USBPORT_SCATTER_GATHER_LIST USBPORT_SCATTER_GATHER_LIST
PHCI_PASS_THRU PassThru
Definition: usbmport.h:607
KIRQL InterruptLevel
Definition: usbmport.h:48
PUSBPORT_READ_WRITE_CONFIG_SPACE UsbPortReadWriteConfigSpace
Definition: usbmport.h:621
MPSTATUS(NTAPI * PHCI_RH_GET_STATUS)(PVOID, PUSHORT)
Definition: usbmport.h:284
MPSTATUS(NTAPI * PHCI_RH_CLEAR_FEATURE_PORT_OVERCURRENT_CHANGE)(PVOID, USHORT)
Definition: usbmport.h:357
MPSTATUS(NTAPI * PHCI_RH_SET_FEATURE_PORT_RESET)(PVOID, USHORT)
Definition: usbmport.h:302
DRIVER_UNLOAD * PDRIVER_UNLOAD
Definition: iotypes.h:2145
PVOID(NTAPI * PUSBPORT_GET_MAPPED_VIRTUAL_ADDRESS)(ULONG, PVOID, PVOID)
Definition: usbmport.h:458
ULONG(NTAPI * PUSBPORT_COMPLETE_ISO_TRANSFER)(PVOID, PVOID, PVOID, ULONG)
Definition: usbmport.h:442
uint32_t ULONG_PTR
Definition: typedefs.h:63
struct _USBPORT_REGISTRATION_PACKET * PUSBPORT_REGISTRATION_PACKET
BOOLEAN ShareVector
Definition: usbmport.h:51
MPSTATUS(NTAPI * PHCI_SUBMIT_ISO_TRANSFER)(PVOID, PVOID, PUSBPORT_TRANSFER_PARAMETERS, PVOID, PVOID)
Definition: usbmport.h:209
UCHAR KIRQL
Definition: env_spec_w32.h:591
struct _USBPORT_TRANSFER_PARAMETERS * PUSBPORT_TRANSFER_PARAMETERS
ULONG IoSpaceLength
Definition: usbmport.h:56
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
PHCI_SET_ENDPOINT_STATE SetEndpointState
Definition: usbmport.h:571
ULONG(NTAPI * PUSBPORT_TEST_DEBUG_BREAK)(PVOID)
Definition: usbmport.h:406
PHCI_END_SEND_ONE_PACKET EndSendOnePacket
Definition: usbmport.h:606
USB_CONTROLLER_FLAVOR HcFlavor
Definition: usbmport.h:46
MPSTATUS(NTAPI * PUSBPORT_GET_MINIPORT_REGISTRY_KEY_VALUE)(PVOID, BOOL, PCWSTR, SIZE_T, PVOID, SIZE_T)
Definition: usbmport.h:417
ULONG NTAPI USBPORT_GetHciMn(VOID)
Definition: usbport.c:2782
unsigned int BOOL
Definition: ntddk_ex.h:94
PUSBPORT_DBG_PRINT UsbPortDbgPrint
Definition: usbmport.h:610
ULONG_PTR StartVA
Definition: usbmport.h:57
PUSBPORT_LOG_ENTRY UsbPortLogEntry
Definition: usbmport.h:618
USBPORT_HUB_CHARACTERISTICS HubCharacteristics
Definition: usbmport.h:697
PHCI_CLOSE_ENDPOINT CloseEndpoint
Definition: usbmport.h:560
PHCI_RH_CLEAR_FEATURE_PORT_ENABLE_CHANGE RH_ClearFeaturePortEnableChange
Definition: usbmport.h:596
ULONG ResourcesTypes
Definition: usbmport.h:45
PHCI_RH_CLEAR_FEATURE_PORT_SUSPEND_CHANGE RH_ClearFeaturePortSuspendChange
Definition: usbmport.h:599
CHAR * PCH
Definition: ntbasedef.h:398
VOID(NTAPI * PHCI_TAKE_PORT_CONTROL)(PVOID)
Definition: usbmport.h:524
PUSBPORT_REQUEST_ASYNC_CALLBACK UsbPortRequestAsyncCallback
Definition: usbmport.h:620
unsigned char BOOLEAN
ULONG_PTR Reserved
Definition: usbmport.h:54
struct _USBPORT_SCATTER_GATHER_ELEMENT USBPORT_SCATTER_GATHER_ELEMENT
enum _KINTERRUPT_MODE KINTERRUPT_MODE
PHCI_START_CONTROLLER StartController
Definition: usbmport.h:561
static PDRIVER_OBJECT DriverObject
Definition: template.c:42
PHCI_RH_GET_HUB_STATUS RH_GetHubStatus
Definition: usbmport.h:588
VOID(NTAPI * PHCI_SET_ENDPOINT_STATE)(PVOID, PVOID, ULONG)
Definition: usbmport.h:229
void * PVOID
Definition: retypes.h:9
union _USB_HUB_STATUS_AND_CHANGE * PUSB_HUB_STATUS_AND_CHANGE
VOID(NTAPI * PHCI_POLL_CONTROLLER)(PVOID)
Definition: usbmport.h:255
PHCI_SUBMIT_ISO_TRANSFER SubmitIsoTransfer
Definition: usbmport.h:568
PHCI_POLL_CONTROLLER PollController
Definition: usbmport.h:578
PHCI_RH_CLEAR_FEATURE_PORT_SUSPEND RH_ClearFeaturePortSuspend
Definition: usbmport.h:595
VOID(NTAPI * PHCI_RESET_CONTROLLER)(PVOID)
Definition: usbmport.h:275
PHCI_INTERRUPT_SERVICE InterruptService
Definition: usbmport.h:565
PHCI_OPEN_ENDPOINT OpenEndpoint
Definition: usbmport.h:557
enum _USB_DEVICE_SPEED USB_DEVICE_SPEED
VOID(NTAPI * PHCI_CLOSE_ENDPOINT)(PVOID, PVOID, BOOLEAN)
Definition: usbmport.h:171
#define PCHAR
Definition: match.c:90
ULONG(NTAPI * PUSBPORT_DBG_PRINT)(PVOID, ULONG, PCH,...)
Definition: usbmport.h:399
PHCI_SET_ENDPOINT_STATUS SetEndpointStatus
Definition: usbmport.h:581
MPSTATUS(NTAPI * PHCI_RH_SET_FEATURE_PORT_POWER)(PVOID, USHORT)
Definition: usbmport.h:307
ULONG(NTAPI * PUSBPORT_NOTIFY_DOUBLE_BUFFER)(PVOID, PVOID, PVOID, SIZE_T)
Definition: usbmport.h:502
MPSTATUS(NTAPI * PHCI_RH_CLEAR_FEATURE_PORT_RESET_CHANGE)(PVOID, USHORT)
Definition: usbmport.h:347
PHCI_GET_ENDPOINT_STATE GetEndpointState
Definition: usbmport.h:570
PHCI_RH_CLEAR_FEATURE_PORT_RESET_CHANGE RH_ClearFeaturePortResetChange
Definition: usbmport.h:598
PUSBPORT_INVALIDATE_ROOT_HUB UsbPortInvalidateRootHub
Definition: usbmport.h:614
MPSTATUS(NTAPI * PHCI_SUBMIT_TRANSFER)(PVOID, PVOID, PUSBPORT_TRANSFER_PARAMETERS, PVOID, PUSBPORT_SCATTER_GATHER_LIST)
Definition: usbmport.h:201
VOID(NTAPI * PHCI_RH_DISABLE_IRQ)(PVOID)
Definition: usbmport.h:362
PHCI_ABORT_TRANSFER AbortTransfer
Definition: usbmport.h:569
VOID(NTAPI * PHCI_RH_ENABLE_IRQ)(PVOID)
Definition: usbmport.h:365
VOID(NTAPI * PHCI_ABORT_TRANSFER)(PVOID, PVOID, PVOID, PULONG)
Definition: usbmport.h:217
enum _USB_CONTROLLER_FLAVOR USB_CONTROLLER_FLAVOR
UCHAR Padded2[3]
Definition: usbmport.h:52
struct _USBPORT_SCATTER_GATHER_ELEMENT * PUSBPORT_SCATTER_GATHER_ELEMENT
PHCI_RH_CHIRP_ROOT_PORT RH_ChirpRootPort
Definition: usbmport.h:630
PHCI_REBALANCE_ENDPOINT RebalanceEndpoint
Definition: usbmport.h:628
PHCI_RH_SET_FEATURE_PORT_SUSPEND RH_SetFeaturePortSuspend
Definition: usbmport.h:592
MPSTATUS(NTAPI * PHCI_OPEN_ENDPOINT)(PVOID, PUSBPORT_ENDPOINT_PROPERTIES, PVOID)
Definition: usbmport.h:153
NTSTATUS NTAPI USBPORT_RegisterUSBPortDriver(IN PDRIVER_OBJECT DriverObject, IN ULONG Version, IN PUSBPORT_REGISTRATION_PACKET RegistrationPacket)
Definition: usbport.c:2789
PUSBPORT_INVALIDATE_CONTROLLER UsbPortInvalidateController
Definition: usbmport.h:623
struct _USBPORT_ENDPOINT_PROPERTIES * PUSBPORT_ENDPOINT_PROPERTIES
unsigned char UCHAR
Definition: xmlstorage.h:181
UCHAR LegacySupport
Definition: usbmport.h:59
union _USBPORT_HUB_20_CHARACTERISTICS USBPORT_HUB_20_CHARACTERISTICS
PHCI_CHECK_CONTROLLER CheckController
Definition: usbmport.h:573
LONG USBD_STATUS
Definition: usb.h:165
#define NTSTATUS
Definition: precomp.h:20
KINTERRUPT_MODE InterruptMode
Definition: usbmport.h:53
PHCI_RH_DISABLE_IRQ RH_DisableIrq
Definition: usbmport.h:601
struct _USBPORT_SCATTER_GATHER_LIST * PUSBPORT_SCATTER_GATHER_LIST
Definition: typedefs.h:117
MPSTATUS(NTAPI * PHCI_PASS_THRU)(PVOID, PVOID, ULONG, PVOID)
Definition: usbmport.h:391
union _USBPORT_HUB_11_CHARACTERISTICS USBPORT_HUB_11_CHARACTERISTICS
USBPORT_HUB_11_CHARACTERISTICS Usb11HubCharacteristics
Definition: usbmport.h:688
MPSTATUS(NTAPI * PHCI_END_SEND_ONE_PACKET)(PVOID, PVOID, PVOID, PULONG, PVOID, PVOID, ULONG, USBD_STATUS *)
Definition: usbmport.h:380
PHCI_START_SEND_ONE_PACKET StartSendOnePacket
Definition: usbmport.h:605
PHCI_POLL_ENDPOINT PollEndpoint
Definition: usbmport.h:572
VOID(NTAPI * PHCI_RH_GET_ROOT_HUB_DATA)(PVOID, PVOID)
Definition: usbmport.h:279
VOID(NTAPI * PHCI_QUERY_ENDPOINT_REQUIREMENTS)(PVOID, PUSBPORT_ENDPOINT_PROPERTIES, PUSBPORT_ENDPOINT_REQUIREMENTS)
Definition: usbmport.h:165
PHCI_SET_ENDPOINT_DATA_TOGGLE SetEndpointDataToggle
Definition: usbmport.h:579
ULONG_PTR SIZE_T
Definition: typedefs.h:78
ULONG(NTAPI * PUSBPORT_ASSERT_FAILURE)(PVOID, PVOID, PVOID, ULONG, PCHAR)
Definition: usbmport.h:409
ULONG(NTAPI * PUSBPORT_INVALIDATE_ROOT_HUB)(PVOID)
Definition: usbmport.h:426
PHCI_TAKE_PORT_CONTROL TakePortControl
Definition: usbmport.h:631
MPSTATUS(NTAPI * PHCI_RH_SET_FEATURE_PORT_SUSPEND)(PVOID, USHORT)
Definition: usbmport.h:317
C_ASSERT(sizeof(USBPORT_RESOURCES)==32+5 *sizeof(PVOID))
PHCI_STOP_CONTROLLER StopController
Definition: usbmport.h:562
PHCI_GET_ENDPOINT_STATUS GetEndpointStatus
Definition: usbmport.h:580
VOID(NTAPI * PHCI_ENABLE_INTERRUPTS)(PVOID)
Definition: usbmport.h:249
PHCI_INTERRUPT_NEXT_SOF InterruptNextSOF
Definition: usbmport.h:575
PHCI_RH_CLEAR_FEATURE_PORT_ENABLE RH_ClearFeaturePortEnable
Definition: usbmport.h:593
USBPORT_HUB_20_CHARACTERISTICS Usb20HubCharacteristics
Definition: usbmport.h:689
unsigned short USHORT
Definition: pedump.c:61
struct _USBPORT_RESOURCES USBPORT_RESOURCES
NTSTATUS(NTAPI * PUSBPORT_WAIT)(PVOID, ULONG)
Definition: usbmport.h:485
ULONG_PTR KAFFINITY
Definition: compat.h:75
PHCI_SUSPEND_CONTROLLER SuspendController
Definition: usbmport.h:563
VOID(NTAPI * PHCI_CHECK_CONTROLLER)(PVOID)
Definition: usbmport.h:240
MPSTATUS(NTAPI * PHCI_RH_CLEAR_FEATURE_PORT_POWER)(PVOID, USHORT)
Definition: usbmport.h:327
BOOLEAN(NTAPI * PHCI_INTERRUPT_SERVICE)(PVOID)
Definition: usbmport.h:193
MPSTATUS(NTAPI * PHCI_RH_CLEAR_FEATURE_PORT_CONNECT_CHANGE)(PVOID, USHORT)
Definition: usbmport.h:342
PHCI_INTERRUPT_DPC InterruptDpc
Definition: usbmport.h:566
VOID(NTAPI * PHCI_SET_ENDPOINT_DATA_TOGGLE)(PVOID, PVOID, ULONG)
Definition: usbmport.h:258
unsigned int * PULONG
Definition: retypes.h:1
VOID(NTAPI * PHCI_FLUSH_INTERRUPTS)(PVOID)
Definition: usbmport.h:516
USBPORT_SCATTER_GATHER_ELEMENT SgElement[2]
Definition: usbmport.h:121
PUSBPORT_GET_MINIPORT_REGISTRY_KEY_VALUE UsbPortGetMiniportRegistryKeyValue
Definition: usbmport.h:613
MPSTATUS(NTAPI * PHCI_START_CONTROLLER)(PVOID, PUSBPORT_RESOURCES)
Definition: usbmport.h:177
PHCI_RH_CLEAR_FEATURE_PORT_CONNECT_CHANGE RH_ClearFeaturePortConnectChange
Definition: usbmport.h:597
struct _USBPORT_MINIPORT_INTERFACE * PUSBPORT_MINIPORT_INTERFACE
struct _USBPORT_ROOT_HUB_DATA USBPORT_ROOT_HUB_DATA
USBPORT_HUB_11_CHARACTERISTICS USBPORT_HUB_30_CHARACTERISTICS
Definition: usbmport.h:684
MPSTATUS(NTAPI * PHCI_RH_GET_HUB_STATUS)(PVOID, PUSB_HUB_STATUS_AND_CHANGE)
Definition: usbmport.h:297
struct _USBPORT_ROOT_HUB_DATA * PUSBPORT_ROOT_HUB_DATA
#define BOOLEAN
Definition: pedump.c:73
MPSTATUS(NTAPI * PHCI_RH_CLEAR_FEATURE_PORT_ENABLE)(PVOID, USHORT)
Definition: usbmport.h:322
struct _USBPORT_REGISTRATION_PACKET USBPORT_REGISTRATION_PACKET
VOID(NTAPI * PUSBPORT_BUG_CHECK)(PVOID)
Definition: usbmport.h:499
struct _USBPORT_ENDPOINT_REQUIREMENTS * PUSBPORT_ENDPOINT_REQUIREMENTS
PHCI_QUERY_ENDPOINT_REQUIREMENTS QueryEndpointRequirements
Definition: usbmport.h:559
unsigned int ULONG
Definition: retypes.h:1
PHCI_RH_ENABLE_IRQ RH_EnableIrq
Definition: usbmport.h:602
PHCI_REOPEN_ENDPOINT ReopenEndpoint
Definition: usbmport.h:558
MPSTATUS(NTAPI * PHCI_REOPEN_ENDPOINT)(PVOID, PUSBPORT_ENDPOINT_PROPERTIES, PVOID)
Definition: usbmport.h:159
MPSTATUS(NTAPI * PHCI_RH_CLEAR_FEATURE_PORT_ENABLE_CHANGE)(PVOID, USHORT)
Definition: usbmport.h:337
struct _USBPORT_ENDPOINT_REQUIREMENTS USBPORT_ENDPOINT_REQUIREMENTS
VOID(NTAPI * PHCI_DISABLE_INTERRUPTS)(PVOID)
Definition: usbmport.h:252
VOID(NTAPI * PHCI_REBALANCE_ENDPOINT)(PVOID, PUSBPORT_ENDPOINT_PROPERTIES, PVOID)
Definition: usbmport.h:510
ULONG(NTAPI * PUSBPORT_REQUEST_ASYNC_CALLBACK)(PVOID, ULONG, PVOID, SIZE_T, ASYNC_TIMER_CALLBACK *)
Definition: usbmport.h:469
MPSTATUS(NTAPI * PUSBPORT_READ_WRITE_CONFIG_SPACE)(PVOID, BOOLEAN, PVOID, ULONG, ULONG)
Definition: usbmport.h:477
ULONG(NTAPI * PUSBPORT_INVALIDATE_ENDPOINT)(PVOID, PVOID)
Definition: usbmport.h:429
VOID(NTAPI * PHCI_SET_ENDPOINT_STATUS)(PVOID, PVOID, ULONG)
Definition: usbmport.h:269
typedef VOID(NTAPI ASYNC_TIMER_CALLBACK)(IN PVOID MiniportExtension
PUSBPORT_WAIT UsbPortWait
Definition: usbmport.h:622
struct _USBPORT_RESOURCES * PUSBPORT_RESOURCES
PHCI_GET_32BIT_FRAME_NUMBER Get32BitFrameNumber
Definition: usbmport.h:574
union _USBPORT_HUB_CHARACTERISTICS USBPORT_HUB_CHARACTERISTICS
PUSBPORT_BUG_CHECK UsbPortBugCheck
Definition: usbmport.h:624
ULONG(NTAPI * PHCI_GET_ENDPOINT_STATE)(PVOID, PVOID)
Definition: usbmport.h:224
PVOID ResourceBase
Definition: usbmport.h:55
VOID(NTAPI * PUSBPORT_COMPLETE_TRANSFER)(PVOID, PVOID, PVOID, USBD_STATUS, ULONG)
Definition: usbmport.h:434
VOID(NTAPI * PHCI_SUSPEND_CONTROLLER)(PVOID)
Definition: usbmport.h:187
ULONG(NTAPI * PHCI_GET_ENDPOINT_STATUS)(PVOID, PVOID)
Definition: usbmport.h:264
PHCI_FLUSH_INTERRUPTS FlushInterrupts
Definition: usbmport.h:629
ULONG InterruptVector
Definition: usbmport.h:47
unsigned short * PUSHORT
Definition: retypes.h:2
VOID(NTAPI * PHCI_INTERRUPT_DPC)(PVOID, BOOLEAN)
Definition: usbmport.h:196
struct _USBPORT_MINIPORT_INTERFACE USBPORT_MINIPORT_INTERFACE
MPSTATUS(NTAPI * PHCI_RH_CLEAR_FEATURE_PORT_SUSPEND)(PVOID, USHORT)
Definition: usbmport.h:332
PHCI_RH_CLEAR_FEATURE_PORT_OVERCURRENT_CHANGE RH_ClearFeaturePortOvercurrentChange
Definition: usbmport.h:600
PHCI_RESET_CONTROLLER ResetController
Definition: usbmport.h:582
UCHAR Padded1[3]
Definition: usbmport.h:49