ReactOS 0.4.15-dev-7842-g558ab78
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
44typedef struct _USBPORT_RESOURCES {
64
65C_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
93C_ASSERT(sizeof(USBPORT_ENDPOINT_PROPERTIES) == 56 + 2 * sizeof(PVOID));
94
103
105
113
115
123
124C_ASSERT(sizeof(USBPORT_SCATTER_GATHER_LIST) == 48 + 4 * sizeof(PVOID));
125
130
131typedef ULONG MPSTATUS; // Miniport status
132typedef 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 */
152typedef MPSTATUS
154 PVOID,
156 PVOID);
157
158typedef MPSTATUS
160 PVOID,
162 PVOID);
163
164typedef VOID
166 PVOID,
169
170typedef VOID
172 PVOID,
173 PVOID,
174 BOOLEAN);
175
176typedef MPSTATUS
178 PVOID,
180
181typedef VOID
183 PVOID,
184 BOOLEAN);
185
186typedef VOID
188
189typedef MPSTATUS
191
192typedef BOOLEAN
194
195typedef VOID
197 PVOID,
198 BOOLEAN);
199
200typedef MPSTATUS
202 PVOID,
203 PVOID,
205 PVOID,
207
208typedef MPSTATUS
210 PVOID,
211 PVOID,
213 PVOID,
214 PVOID);
215
216typedef VOID
218 PVOID,
219 PVOID,
220 PVOID,
221 PULONG);
222
223typedef ULONG
225 PVOID,
226 PVOID);
227
228typedef VOID
230 PVOID,
231 PVOID,
232 ULONG);
233
234typedef VOID
236 PVOID,
237 PVOID);
238
239typedef VOID
241
242typedef ULONG
244
245typedef VOID
247
248typedef VOID
250
251typedef VOID
253
254typedef VOID
256
257typedef VOID
259 PVOID,
260 PVOID,
261 ULONG);
262
263typedef ULONG
265 PVOID,
266 PVOID);
267
268typedef VOID
270 PVOID,
271 PVOID,
272 ULONG);
273
274typedef VOID
276
277/* Roothub functions */
278typedef VOID
280 PVOID,
281 PVOID);
282
283typedef MPSTATUS
285 PVOID,
286 PUSHORT);
287
288#define USB20_PORT_STATUS_RESERVED1_OWNED_BY_COMPANION (1 << 2)
289
290typedef MPSTATUS
292 PVOID,
293 USHORT,
295
296typedef MPSTATUS
298 PVOID,
300
301typedef MPSTATUS
303 PVOID,
304 USHORT);
305
306typedef MPSTATUS
308 PVOID,
309 USHORT);
310
311typedef MPSTATUS
313 PVOID,
314 USHORT);
315
316typedef MPSTATUS
318 PVOID,
319 USHORT);
320
321typedef MPSTATUS
323 PVOID,
324 USHORT);
325
326typedef MPSTATUS
328 PVOID,
329 USHORT);
330
331typedef MPSTATUS
333 PVOID,
334 USHORT);
335
336typedef MPSTATUS
338 PVOID,
339 USHORT);
340
341typedef MPSTATUS
343 PVOID,
344 USHORT);
345
346typedef MPSTATUS
348 PVOID,
349 USHORT);
350
351typedef MPSTATUS
353 PVOID,
354 USHORT);
355
356typedef MPSTATUS
358 PVOID,
359 USHORT);
360
361typedef VOID
363
364typedef VOID
366
367/* Miniport ioctl functions */
368typedef MPSTATUS
370 PVOID,
371 PVOID,
372 PVOID,
373 PULONG,
374 PVOID,
375 PVOID,
376 ULONG,
377 USBD_STATUS *);
378
379typedef MPSTATUS
381 PVOID,
382 PVOID,
383 PVOID,
384 PULONG,
385 PVOID,
386 PVOID,
387 ULONG,
388 USBD_STATUS *);
389
390typedef MPSTATUS
392 PVOID,
393 PVOID,
394 ULONG,
395 PVOID);
396
397/* Port functions */
398typedef ULONG
400 PVOID,
401 ULONG,
402 PCH,
403 ...);
404
405typedef ULONG
407
408typedef ULONG
410 PVOID,
411 PVOID,
412 PVOID,
413 ULONG,
414 PCHAR);
415
416typedef MPSTATUS
418 PVOID,
419 BOOL,
420 PCWSTR,
421 SIZE_T,
422 PVOID,
423 SIZE_T);
424
425typedef ULONG
427
428typedef ULONG
430 PVOID,
431 PVOID);
432
433typedef VOID
435 PVOID,
436 PVOID,
437 PVOID,
439 ULONG);
440
441typedef ULONG
443 PVOID,
444 PVOID,
445 PVOID,
446 ULONG);
447
448typedef ULONG
450 PVOID,
451 ULONG,
452 ULONG,
453 ULONG,
454 ULONG,
455 ULONG);
456
457typedef PVOID
459 ULONG,
460 PVOID,
461 PVOID);
462
463typedef VOID
464(NTAPI ASYNC_TIMER_CALLBACK)(
465 IN PVOID MiniportExtension,
467
468typedef ULONG
470 PVOID,
471 ULONG,
472 PVOID,
473 SIZE_T,
474 ASYNC_TIMER_CALLBACK *);
475
476typedef MPSTATUS
478 PVOID,
479 BOOLEAN,
480 PVOID,
481 ULONG,
482 ULONG);
483
484typedef 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
493typedef ULONG
495 PVOID,
496 ULONG);
497
498typedef VOID
500
501typedef ULONG
503 PVOID,
504 PVOID,
505 PVOID,
506 SIZE_T);
507
508/* Miniport functions */
509typedef VOID
511 PVOID,
513 PVOID);
514
515typedef VOID
517
518typedef MPSTATUS
520 PVOID,
521 USHORT);
522
523typedef 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
647C_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
694
702
704
705ULONG
706NTAPI
708
710NTAPI
714 IN PUSBPORT_REGISTRATION_PACKET RegistrationPacket);
715
716#endif /* USBMPORT_H__ */
unsigned char BOOLEAN
#define VOID
Definition: acefi.h:82
LONG NTSTATUS
Definition: precomp.h:26
#define NTSTATUS
Definition: precomp.h:21
ULONG_PTR KAFFINITY
Definition: compat.h:85
UCHAR KIRQL
Definition: env_spec_w32.h:591
unsigned int BOOL
Definition: ntddk_ex.h:94
#define C_ASSERT(e)
Definition: intsafe.h:73
#define PCHAR
Definition: match.c:90
#define BOOL
Definition: nt_native.h:43
CHAR * PCH
Definition: ntbasedef.h:391
#define BOOLEAN
Definition: pedump.c:73
unsigned short USHORT
Definition: pedump.c:61
enum _KINTERRUPT_MODE KINTERRUPT_MODE
Definition: typedefs.h:120
USB_DEVICE_SPEED DeviceSpeed
Definition: usbmport.h:73
USBPORT_REGISTRATION_PACKET Packet
Definition: usbmport.h:644
PDRIVER_OBJECT DriverObject
Definition: usbmport.h:640
PDRIVER_UNLOAD DriverUnload
Definition: usbmport.h:642
PHCI_STOP_CONTROLLER StopController
Definition: usbmport.h:562
PHCI_SUBMIT_ISO_TRANSFER SubmitIsoTransfer
Definition: usbmport.h:568
PHCI_RH_CLEAR_FEATURE_PORT_POWER RH_ClearFeaturePortPower
Definition: usbmport.h:594
PHCI_SUBMIT_TRANSFER SubmitTransfer
Definition: usbmport.h:567
PHCI_SET_ENDPOINT_STATUS SetEndpointStatus
Definition: usbmport.h:581
PHCI_RH_GET_HUB_STATUS RH_GetHubStatus
Definition: usbmport.h:588
PHCI_ENABLE_INTERRUPTS EnableInterrupts
Definition: usbmport.h:576
PUSBPORT_GET_MINIPORT_REGISTRY_KEY_VALUE UsbPortGetMiniportRegistryKeyValue
Definition: usbmport.h:613
PHCI_GET_ENDPOINT_STATUS GetEndpointStatus
Definition: usbmport.h:580
PHCI_RH_ENABLE_IRQ RH_EnableIrq
Definition: usbmport.h:602
PUSBPORT_INVALIDATE_CONTROLLER UsbPortInvalidateController
Definition: usbmport.h:623
PUSBPORT_REQUEST_ASYNC_CALLBACK UsbPortRequestAsyncCallback
Definition: usbmport.h:620
PHCI_RH_CLEAR_FEATURE_PORT_OVERCURRENT_CHANGE RH_ClearFeaturePortOvercurrentChange
Definition: usbmport.h:600
PHCI_RH_DISABLE_IRQ RH_DisableIrq
Definition: usbmport.h:601
PHCI_DISABLE_INTERRUPTS DisableInterrupts
Definition: usbmport.h:577
PHCI_INTERRUPT_NEXT_SOF InterruptNextSOF
Definition: usbmport.h:575
PHCI_ABORT_TRANSFER AbortTransfer
Definition: usbmport.h:569
PHCI_FLUSH_INTERRUPTS FlushInterrupts
Definition: usbmport.h:629
PHCI_RH_CLEAR_FEATURE_PORT_ENABLE_CHANGE RH_ClearFeaturePortEnableChange
Definition: usbmport.h:596
PHCI_RH_GET_ROOT_HUB_DATA RH_GetRootHubData
Definition: usbmport.h:585
PHCI_PASS_THRU PassThru
Definition: usbmport.h:607
PUSBPORT_TEST_DEBUG_BREAK UsbPortTestDebugBreak
Definition: usbmport.h:611
PHCI_RH_SET_FEATURE_PORT_SUSPEND RH_SetFeaturePortSuspend
Definition: usbmport.h:592
PHCI_RH_CLEAR_FEATURE_PORT_RESET_CHANGE RH_ClearFeaturePortResetChange
Definition: usbmport.h:598
PUSBPORT_LOG_ENTRY UsbPortLogEntry
Definition: usbmport.h:618
PHCI_RH_GET_PORT_STATUS RH_GetPortStatus
Definition: usbmport.h:587
PUSBPORT_BUG_CHECK UsbPortBugCheck
Definition: usbmport.h:624
PHCI_OPEN_ENDPOINT OpenEndpoint
Definition: usbmport.h:557
PHCI_RH_CLEAR_FEATURE_PORT_ENABLE RH_ClearFeaturePortEnable
Definition: usbmport.h:593
PHCI_CHECK_CONTROLLER CheckController
Definition: usbmport.h:573
PHCI_SET_ENDPOINT_DATA_TOGGLE SetEndpointDataToggle
Definition: usbmport.h:579
PHCI_POLL_CONTROLLER PollController
Definition: usbmport.h:578
PHCI_SUSPEND_CONTROLLER SuspendController
Definition: usbmport.h:563
PHCI_GET_32BIT_FRAME_NUMBER Get32BitFrameNumber
Definition: usbmport.h:574
PUSBPORT_NOTIFY_DOUBLE_BUFFER UsbPortNotifyDoubleBuffer
Definition: usbmport.h:625
PHCI_RESET_CONTROLLER ResetController
Definition: usbmport.h:582
PUSBPORT_INVALIDATE_ROOT_HUB UsbPortInvalidateRootHub
Definition: usbmport.h:614
PHCI_RESUME_CONTROLLER ResumeController
Definition: usbmport.h:564
PHCI_SET_ENDPOINT_STATE SetEndpointState
Definition: usbmport.h:571
PHCI_START_SEND_ONE_PACKET StartSendOnePacket
Definition: usbmport.h:605
PHCI_QUERY_ENDPOINT_REQUIREMENTS QueryEndpointRequirements
Definition: usbmport.h:559
PUSBPORT_COMPLETE_ISO_TRANSFER UsbPortCompleteIsoTransfer
Definition: usbmport.h:617
PUSBPORT_DBG_PRINT UsbPortDbgPrint
Definition: usbmport.h:610
PUSBPORT_WAIT UsbPortWait
Definition: usbmport.h:622
PHCI_CLOSE_ENDPOINT CloseEndpoint
Definition: usbmport.h:560
PHCI_RH_CLEAR_FEATURE_PORT_SUSPEND_CHANGE RH_ClearFeaturePortSuspendChange
Definition: usbmport.h:599
PHCI_END_SEND_ONE_PACKET EndSendOnePacket
Definition: usbmport.h:606
PHCI_RH_CHIRP_ROOT_PORT RH_ChirpRootPort
Definition: usbmport.h:630
PHCI_RH_SET_FEATURE_PORT_RESET RH_SetFeaturePortReset
Definition: usbmport.h:589
PUSBPORT_COMPLETE_TRANSFER UsbPortCompleteTransfer
Definition: usbmport.h:616
PHCI_INTERRUPT_SERVICE InterruptService
Definition: usbmport.h:565
PHCI_START_CONTROLLER StartController
Definition: usbmport.h:561
PUSBPORT_READ_WRITE_CONFIG_SPACE UsbPortReadWriteConfigSpace
Definition: usbmport.h:621
PHCI_REOPEN_ENDPOINT ReopenEndpoint
Definition: usbmport.h:558
PUSBPORT_ASSERT_FAILURE UsbPortAssertFailure
Definition: usbmport.h:612
PHCI_INTERRUPT_DPC InterruptDpc
Definition: usbmport.h:566
PHCI_RH_CLEAR_FEATURE_PORT_CONNECT_CHANGE RH_ClearFeaturePortConnectChange
Definition: usbmport.h:597
PHCI_TAKE_PORT_CONTROL TakePortControl
Definition: usbmport.h:631
PHCI_POLL_ENDPOINT PollEndpoint
Definition: usbmport.h:572
PHCI_GET_ENDPOINT_STATE GetEndpointState
Definition: usbmport.h:570
PHCI_RH_SET_FEATURE_PORT_ENABLE RH_SetFeaturePortEnable
Definition: usbmport.h:591
PUSBPORT_GET_MAPPED_VIRTUAL_ADDRESS UsbPortGetMappedVirtualAddress
Definition: usbmport.h:619
PUSBPORT_INVALIDATE_ENDPOINT UsbPortInvalidateEndpoint
Definition: usbmport.h:615
PHCI_RH_SET_FEATURE_PORT_POWER RH_SetFeaturePortPower
Definition: usbmport.h:590
PHCI_REBALANCE_ENDPOINT RebalanceEndpoint
Definition: usbmport.h:628
PHCI_RH_GET_STATUS RH_GetStatus
Definition: usbmport.h:586
PHCI_RH_CLEAR_FEATURE_PORT_SUSPEND RH_ClearFeaturePortSuspend
Definition: usbmport.h:595
BOOLEAN IsChirpHandled
Definition: usbmport.h:60
ULONG ResourcesTypes
Definition: usbmport.h:45
UCHAR Padded1[3]
Definition: usbmport.h:49
ULONG IoSpaceLength
Definition: usbmport.h:56
KAFFINITY InterruptAffinity
Definition: usbmport.h:50
PVOID ResourceBase
Definition: usbmport.h:55
ULONG_PTR Reserved
Definition: usbmport.h:54
ULONG InterruptVector
Definition: usbmport.h:47
BOOLEAN ShareVector
Definition: usbmport.h:51
UCHAR Padded2[3]
Definition: usbmport.h:52
ULONG_PTR StartVA
Definition: usbmport.h:57
KINTERRUPT_MODE InterruptMode
Definition: usbmport.h:53
UCHAR LegacySupport
Definition: usbmport.h:59
KIRQL InterruptLevel
Definition: usbmport.h:48
USB_CONTROLLER_FLAVOR HcFlavor
Definition: usbmport.h:46
USBPORT_HUB_CHARACTERISTICS HubCharacteristics
Definition: usbmport.h:697
PHYSICAL_ADDRESS SgPhysicalAddress
Definition: usbmport.h:107
USBPORT_SCATTER_GATHER_ELEMENT SgElement[2]
Definition: usbmport.h:121
USB_DEFAULT_PIPE_SETUP_PACKET SetupPacket
Definition: usbmport.h:101
uint32_t * PULONG
Definition: typedefs.h:59
const uint16_t * PCWSTR
Definition: typedefs.h:57
#define NTAPI
Definition: typedefs.h:36
void * PVOID
Definition: typedefs.h:50
ULONG_PTR SIZE_T
Definition: typedefs.h:80
uint16_t * PUSHORT
Definition: typedefs.h:56
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
USBPORT_HUB_30_CHARACTERISTICS Usb30HubCharacteristics
Definition: usbmport.h:690
USBPORT_HUB_20_CHARACTERISTICS Usb20HubCharacteristics
Definition: usbmport.h:689
USBPORT_HUB_11_CHARACTERISTICS Usb11HubCharacteristics
Definition: usbmport.h:688
enum _USB_DEVICE_SPEED USB_DEVICE_SPEED
union _USB_HUB_STATUS_AND_CHANGE * PUSB_HUB_STATUS_AND_CHANGE
union _USB_PORT_STATUS_AND_CHANGE * PUSB_PORT_STATUS_AND_CHANGE
enum _USB_CONTROLLER_FLAVOR USB_CONTROLLER_FLAVOR
LONG USBD_STATUS
Definition: usb.h:165
#define USBD_STATUS(Status)
Definition: usbdi.h:52
MPSTATUS(NTAPI * PHCI_START_SEND_ONE_PACKET)(PVOID, PVOID, PVOID, PULONG, PVOID, PVOID, ULONG, USBD_STATUS *)
Definition: usbmport.h:369
NTSTATUS(NTAPI * PUSBPORT_WAIT)(PVOID, ULONG)
Definition: usbmport.h:485
struct _USBPORT_REGISTRATION_PACKET * PUSBPORT_REGISTRATION_PACKET
union _USBPORT_HUB_11_CHARACTERISTICS USBPORT_HUB_11_CHARACTERISTICS
MPSTATUS(NTAPI * PHCI_RH_CLEAR_FEATURE_PORT_SUSPEND_CHANGE)(PVOID, USHORT)
Definition: usbmport.h:352
VOID(NTAPI * PUSBPORT_BUG_CHECK)(PVOID)
Definition: usbmport.h:499
ULONG(NTAPI * PHCI_GET_ENDPOINT_STATUS)(PVOID, PVOID)
Definition: usbmport.h:264
struct _USBPORT_ROOT_HUB_DATA * PUSBPORT_ROOT_HUB_DATA
VOID(NTAPI * PHCI_SET_ENDPOINT_STATE)(PVOID, PVOID, ULONG)
Definition: usbmport.h:229
ULONG(NTAPI * PUSBPORT_REQUEST_ASYNC_CALLBACK)(PVOID, ULONG, PVOID, SIZE_T, ASYNC_TIMER_CALLBACK *)
Definition: usbmport.h:469
VOID(NTAPI * PHCI_QUERY_ENDPOINT_REQUIREMENTS)(PVOID, PUSBPORT_ENDPOINT_PROPERTIES, PUSBPORT_ENDPOINT_REQUIREMENTS)
Definition: usbmport.h:165
struct _USBPORT_SCATTER_GATHER_LIST USBPORT_SCATTER_GATHER_LIST
VOID(NTAPI * PHCI_ENABLE_INTERRUPTS)(PVOID)
Definition: usbmport.h:249
VOID(NTAPI * PHCI_RH_GET_ROOT_HUB_DATA)(PVOID, PVOID)
Definition: usbmport.h:279
ULONG MPSTATUS
Definition: usbmport.h:131
MPSTATUS(NTAPI * PHCI_RH_CHIRP_ROOT_PORT)(PVOID, USHORT)
Definition: usbmport.h:519
struct _USBPORT_RESOURCES * PUSBPORT_RESOURCES
ULONG(NTAPI * PUSBPORT_INVALIDATE_ROOT_HUB)(PVOID)
Definition: usbmport.h:426
ULONG NTAPI USBPORT_GetHciMn(VOID)
Definition: usbport.c:2804
USBPORT_HUB_11_CHARACTERISTICS USBPORT_HUB_30_CHARACTERISTICS
Definition: usbmport.h:684
MPSTATUS(NTAPI * PHCI_START_CONTROLLER)(PVOID, PUSBPORT_RESOURCES)
Definition: usbmport.h:177
ULONG(NTAPI * PUSBPORT_INVALIDATE_CONTROLLER)(PVOID, ULONG)
Definition: usbmport.h:494
MPSTATUS(NTAPI * PHCI_PASS_THRU)(PVOID, PVOID, ULONG, PVOID)
Definition: usbmport.h:391
MPSTATUS(NTAPI * PHCI_OPEN_ENDPOINT)(PVOID, PUSBPORT_ENDPOINT_PROPERTIES, PVOID)
Definition: usbmport.h:153
struct _USBPORT_REGISTRATION_PACKET USBPORT_REGISTRATION_PACKET
ULONG(NTAPI * PUSBPORT_TEST_DEBUG_BREAK)(PVOID)
Definition: usbmport.h:406
struct _USBPORT_ENDPOINT_PROPERTIES * PUSBPORT_ENDPOINT_PROPERTIES
union _USBPORT_HUB_20_CHARACTERISTICS USBPORT_HUB_20_CHARACTERISTICS
PVOID(NTAPI * PUSBPORT_GET_MAPPED_VIRTUAL_ADDRESS)(ULONG, PVOID, PVOID)
Definition: usbmport.h:458
MPSTATUS(NTAPI * PHCI_RH_CLEAR_FEATURE_PORT_RESET_CHANGE)(PVOID, USHORT)
Definition: usbmport.h:347
ULONG(NTAPI * PUSBPORT_ASSERT_FAILURE)(PVOID, PVOID, PVOID, ULONG, PCHAR)
Definition: usbmport.h:409
struct _USBPORT_ROOT_HUB_DATA USBPORT_ROOT_HUB_DATA
struct _USBPORT_RESOURCES USBPORT_RESOURCES
VOID(NTAPI * PHCI_CHECK_CONTROLLER)(PVOID)
Definition: usbmport.h:240
MPSTATUS(NTAPI * PHCI_RH_SET_FEATURE_PORT_POWER)(PVOID, USHORT)
Definition: usbmport.h:307
VOID(NTAPI * PUSBPORT_COMPLETE_TRANSFER)(PVOID, PVOID, PVOID, USBD_STATUS, ULONG)
Definition: usbmport.h:434
struct _USBPORT_ENDPOINT_PROPERTIES USBPORT_ENDPOINT_PROPERTIES
VOID(NTAPI * PHCI_CLOSE_ENDPOINT)(PVOID, PVOID, BOOLEAN)
Definition: usbmport.h:171
MPSTATUS(NTAPI * PUSBPORT_READ_WRITE_CONFIG_SPACE)(PVOID, BOOLEAN, PVOID, ULONG, ULONG)
Definition: usbmport.h:477
VOID(NTAPI * PHCI_FLUSH_INTERRUPTS)(PVOID)
Definition: usbmport.h:516
ULONG(NTAPI * PUSBPORT_LOG_ENTRY)(PVOID, ULONG, ULONG, ULONG, ULONG, ULONG)
Definition: usbmport.h:449
MPSTATUS(NTAPI * PHCI_RH_CLEAR_FEATURE_PORT_ENABLE)(PVOID, USHORT)
Definition: usbmport.h:322
ULONG(* PUSBPORT_DBG_PRINT)(PVOID, ULONG, PCH,...)
Definition: usbmport.h:399
MPSTATUS(NTAPI * PHCI_RH_CLEAR_FEATURE_PORT_ENABLE_CHANGE)(PVOID, USHORT)
Definition: usbmport.h:337
MPSTATUS(NTAPI * PHCI_RH_SET_FEATURE_PORT_ENABLE)(PVOID, USHORT)
Definition: usbmport.h:312
union _USBPORT_HUB_CHARACTERISTICS USBPORT_HUB_CHARACTERISTICS
BOOLEAN(NTAPI * PHCI_INTERRUPT_SERVICE)(PVOID)
Definition: usbmport.h:193
MPSTATUS(NTAPI * PHCI_RH_GET_PORT_STATUS)(PVOID, USHORT, PUSB_PORT_STATUS_AND_CHANGE)
Definition: usbmport.h:291
MPSTATUS(NTAPI * PHCI_RESUME_CONTROLLER)(PVOID)
Definition: usbmport.h:190
NTSTATUS NTAPI USBPORT_RegisterUSBPortDriver(IN PDRIVER_OBJECT DriverObject, IN ULONG Version, IN PUSBPORT_REGISTRATION_PACKET RegistrationPacket)
Definition: usbport.c:2811
VOID(NTAPI * PHCI_SUSPEND_CONTROLLER)(PVOID)
Definition: usbmport.h:187
VOID(NTAPI * PHCI_REBALANCE_ENDPOINT)(PVOID, PUSBPORT_ENDPOINT_PROPERTIES, PVOID)
Definition: usbmport.h:510
struct _USBPORT_MINIPORT_INTERFACE USBPORT_MINIPORT_INTERFACE
MPSTATUS(NTAPI * PHCI_SUBMIT_ISO_TRANSFER)(PVOID, PVOID, PUSBPORT_TRANSFER_PARAMETERS, PVOID, PVOID)
Definition: usbmport.h:209
VOID(NTAPI * PHCI_POLL_ENDPOINT)(PVOID, PVOID)
Definition: usbmport.h:235
struct _USBPORT_SCATTER_GATHER_ELEMENT * PUSBPORT_SCATTER_GATHER_ELEMENT
MPSTATUS(NTAPI * PUSBPORT_GET_MINIPORT_REGISTRY_KEY_VALUE)(PVOID, BOOL, PCWSTR, SIZE_T, PVOID, SIZE_T)
Definition: usbmport.h:417
MPSTATUS(NTAPI * PHCI_RH_GET_HUB_STATUS)(PVOID, PUSB_HUB_STATUS_AND_CHANGE)
Definition: usbmport.h:297
struct _USBPORT_SCATTER_GATHER_ELEMENT USBPORT_SCATTER_GATHER_ELEMENT
MPSTATUS(NTAPI * PHCI_END_SEND_ONE_PACKET)(PVOID, PVOID, PVOID, PULONG, PVOID, PVOID, ULONG, USBD_STATUS *)
Definition: usbmport.h:380
ULONG(NTAPI * PUSBPORT_INVALIDATE_ENDPOINT)(PVOID, PVOID)
Definition: usbmport.h:429
MPSTATUS(NTAPI * PHCI_SUBMIT_TRANSFER)(PVOID, PVOID, PUSBPORT_TRANSFER_PARAMETERS, PVOID, PUSBPORT_SCATTER_GATHER_LIST)
Definition: usbmport.h:201
VOID(NTAPI * PHCI_POLL_CONTROLLER)(PVOID)
Definition: usbmport.h:255
MPSTATUS(NTAPI * PHCI_RH_CLEAR_FEATURE_PORT_POWER)(PVOID, USHORT)
Definition: usbmport.h:327
ULONG(NTAPI * PHCI_GET_ENDPOINT_STATE)(PVOID, PVOID)
Definition: usbmport.h:224
VOID(NTAPI * PHCI_INTERRUPT_DPC)(PVOID, BOOLEAN)
Definition: usbmport.h:196
VOID(NTAPI * PHCI_STOP_CONTROLLER)(PVOID, BOOLEAN)
Definition: usbmport.h:182
ULONG(NTAPI * PHCI_GET_32BIT_FRAME_NUMBER)(PVOID)
Definition: usbmport.h:243
VOID(NTAPI * PHCI_DISABLE_INTERRUPTS)(PVOID)
Definition: usbmport.h:252
struct _USBPORT_MINIPORT_INTERFACE * PUSBPORT_MINIPORT_INTERFACE
VOID(NTAPI * PHCI_RH_ENABLE_IRQ)(PVOID)
Definition: usbmport.h:365
struct _USBPORT_TRANSFER_PARAMETERS USBPORT_TRANSFER_PARAMETERS
VOID(NTAPI * PHCI_RESET_CONTROLLER)(PVOID)
Definition: usbmport.h:275
ULONG RHSTATUS
Definition: usbmport.h:132
VOID(NTAPI * PHCI_TAKE_PORT_CONTROL)(PVOID)
Definition: usbmport.h:524
ULONG(NTAPI * PUSBPORT_COMPLETE_ISO_TRANSFER)(PVOID, PVOID, PVOID, ULONG)
Definition: usbmport.h:442
MPSTATUS(NTAPI * PHCI_RH_SET_FEATURE_PORT_SUSPEND)(PVOID, USHORT)
Definition: usbmport.h:317
struct _USBPORT_SCATTER_GATHER_LIST * PUSBPORT_SCATTER_GATHER_LIST
VOID(NTAPI * PHCI_SET_ENDPOINT_DATA_TOGGLE)(PVOID, PVOID, ULONG)
Definition: usbmport.h:258
ULONG(NTAPI * PUSBPORT_NOTIFY_DOUBLE_BUFFER)(PVOID, PVOID, PVOID, SIZE_T)
Definition: usbmport.h:502
MPSTATUS(NTAPI * PHCI_RH_CLEAR_FEATURE_PORT_OVERCURRENT_CHANGE)(PVOID, USHORT)
Definition: usbmport.h:357
VOID(NTAPI * PHCI_RH_DISABLE_IRQ)(PVOID)
Definition: usbmport.h:362
struct _USBPORT_ENDPOINT_REQUIREMENTS USBPORT_ENDPOINT_REQUIREMENTS
IN PVOID CallBackContext
Definition: usbmport.h:466
VOID(NTAPI * PHCI_ABORT_TRANSFER)(PVOID, PVOID, PVOID, PULONG)
Definition: usbmport.h:217
MPSTATUS(NTAPI * PHCI_REOPEN_ENDPOINT)(PVOID, PUSBPORT_ENDPOINT_PROPERTIES, PVOID)
Definition: usbmport.h:159
MPSTATUS(NTAPI * PHCI_RH_CLEAR_FEATURE_PORT_SUSPEND)(PVOID, USHORT)
Definition: usbmport.h:332
MPSTATUS(NTAPI * PHCI_RH_SET_FEATURE_PORT_RESET)(PVOID, USHORT)
Definition: usbmport.h:302
MPSTATUS(NTAPI * PHCI_RH_GET_STATUS)(PVOID, PUSHORT)
Definition: usbmport.h:284
MPSTATUS(NTAPI * PHCI_RH_CLEAR_FEATURE_PORT_CONNECT_CHANGE)(PVOID, USHORT)
Definition: usbmport.h:342
struct _USBPORT_TRANSFER_PARAMETERS * PUSBPORT_TRANSFER_PARAMETERS
VOID(NTAPI * PHCI_INTERRUPT_NEXT_SOF)(PVOID)
Definition: usbmport.h:246
struct _USBPORT_ENDPOINT_REQUIREMENTS * PUSBPORT_ENDPOINT_REQUIREMENTS
VOID(NTAPI * PHCI_SET_ENDPOINT_STATUS)(PVOID, PVOID, ULONG)
Definition: usbmport.h:269
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
Definition: wdffdo.h:469
DRIVER_UNLOAD * PDRIVER_UNLOAD
Definition: iotypes.h:2253
unsigned char UCHAR
Definition: xmlstorage.h:181