#define USBPORT_ENDPOINT_HALT 1
#define USBPORT_ENDPOINT_CONTROL 4
+/* Interrupt Endpoint Poll Interval */
+#define ENDPOINT_INTERRUPT_1ms 1
+#define ENDPOINT_INTERRUPT_2ms 2
+#define ENDPOINT_INTERRUPT_4ms 4
+#define ENDPOINT_INTERRUPT_8ms 8
+#define ENDPOINT_INTERRUPT_16ms 16
+#define ENDPOINT_INTERRUPT_32ms 32
+
+#define INTERRUPT_ENDPOINTs (ENDPOINT_INTERRUPT_32ms + \
+ ENDPOINT_INTERRUPT_16ms + \
+ ENDPOINT_INTERRUPT_8ms + \
+ ENDPOINT_INTERRUPT_4ms + \
+ ENDPOINT_INTERRUPT_2ms + \
+ ENDPOINT_INTERRUPT_1ms)
+
/* Types of resources. For USBPORT_RESOURCES::ResourcesTypes */
#define USBPORT_RESOURCES_PORT 1
#define USBPORT_RESOURCES_INTERRUPT 2
PVOID,
ULONG);
+#define USBPORT_INVALIDATE_CONTROLLER_RESET 1
+#define USBPORT_INVALIDATE_CONTROLLER_SURPRISE_REMOVE 2
+#define USBPORT_INVALIDATE_CONTROLLER_SOFT_INTERRUPT 3
+
typedef ULONG
(NTAPI *PUSBPORT_INVALIDATE_CONTROLLER)(
PVOID,
#define USB_MINIPORT_FLAGS_NO_DMA 0x0100
#define USB_MINIPORT_FLAGS_WAKE_SUPPORT 0x0200
+#define TOTAL_USB11_BUS_BANDWIDTH 12000
+#define TOTAL_USB20_BUS_BANDWIDTH 400000
+
typedef struct _USBPORT_REGISTRATION_PACKET {
ULONG MiniPortVersion;
ULONG MiniPortFlags;
ULONG Reserved5;
} USBPORT_REGISTRATION_PACKET, *PUSBPORT_REGISTRATION_PACKET;
+#define USB10_MINIPORT_INTERFACE_VERSION 100
+#define USB20_MINIPORT_INTERFACE_VERSION 200
+
typedef struct _USBPORT_MINIPORT_INTERFACE {
PDRIVER_OBJECT DriverObject;
LIST_ENTRY DriverLink;