#if !defined(_M_X64)
C_ASSERT(sizeof(USBPORT_DEVICE_EXTENSION) == 0x500);
#else
-C_ASSERT(sizeof(USBPORT_DEVICE_EXTENSION) == 0x600);
+C_ASSERT(sizeof(USBPORT_DEVICE_EXTENSION) == 0x690);
#endif
typedef struct _USBPORT_RH_DESCRIPTORS {
#define USB2_FRAMES 32
#define USB2_MICROFRAMES 8
#define USB2_MAX_MICROFRAMES (USB2_FRAMES * USB2_MICROFRAMES)
+#define USB2_PREV_MICROFRAME 0xFF
#define USB2_MAX_MICROFRAME_ALLOCATION 7000 // bytes
#define USB2_CONTROLLER_DELAY 100
#define USB2_HS_SS_ISOCHRONOUS_IN_OVERHEAD 39
#define USB2_HS_CS_ISOCHRONOUS_IN_OVERHEAD 38
+#define USB2_BIT_STUFFING_OVERHEAD (8 * (7/6)) // 7.1.9 Bit Stuffing
+
typedef union _USB2_TT_ENDPOINT_PARAMS {
struct {
ULONG TransferType : 4;
ULONG Direction : 1;
USB_DEVICE_SPEED DeviceSpeed : 2;
- ULONG EndpointMoved : 1;
+ BOOL EndpointMoved : 1;
ULONG Reserved : 24;
};
ULONG AsULONG;
struct _USB2_TT_ENDPOINT * NextTtEndpoint;
USB2_TT_ENDPOINT_PARAMS TtEndpointParams;
USB2_TT_ENDPOINT_NUMS Nums;
+ BOOL IsPromoted;
USHORT MaxPacketSize;
USHORT PreviosPeriod;
USHORT Period;
USB2_InitController(
IN PUSB2_HC_EXTENSION HcExtension);
+VOID
+NTAPI
+USBPORT_DumpingEndpointProperties(
+ IN PUSBPORT_ENDPOINT_PROPERTIES EndpointProperties);
+
+VOID
+NTAPI
+USBPORT_DumpingTtEndpoint(
+ IN PUSB2_TT_ENDPOINT TtEndpoint);
+
#endif /* USBPORT_H__ */