3 #define USB_BUSIFFN __stdcall
8 /* usbbusif.h and hubbusif.h need to be imported */
9 typedef PVOID PUSB_DEVICE_HANDLE
;
14 RH_INIT_CALLBACK (PVOID CallBackContext
);
16 typedef RH_INIT_CALLBACK
*PRH_INIT_CALLBACK
;
18 typedef struct _USB_EXTPORT_INFORMATION_0
20 ULONG PhysicalPortNumber
;
21 ULONG PortLabelNumber
;
25 } USB_EXTPORT_INFORMATION_0
, *PUSB_EXTPORT_INFORMATION
;
27 typedef struct _USB_EXTHUB_INFORMATION_0
29 ULONG InformationLevel
;
31 USB_EXTPORT_INFORMATION_0 Port
[255];
32 } USB_EXTHUB_INFORMATION_0
, *PUSB_EXTHUB_INFORMATION_0
;
34 typedef struct _USB_BUS_INTERFACE_USBDI_V2
39 PINTERFACE_REFERENCE InterfaceReference
;
40 PINTERFACE_DEREFERENCE InterfaceDereference
;
42 PVOID GetUSBDIVersion
;
44 PVOID SubmitIsoOutUrb
;
45 PVOID QueryBusInformation
;
46 PVOID IsDeviceHighSpeed
;
48 } USB_BUS_INTERFACE_USBDI_V2
, *PUSB_BUS_INTERFACE_USBDI_V2
;
50 typedef struct _USB_BUS_INTERFACE_HUB_V5
55 PINTERFACE_REFERENCE InterfaceReference
;
56 PINTERFACE_DEREFERENCE InterfaceDereference
;
58 PVOID CreateUsbDevice
;
59 PVOID InitializeUsbDevice
;
60 PVOID GetUsbDescriptors
;
61 PVOID RemoveUsbDevice
;
62 PVOID RestoreUsbDevice
;
63 PVOID GetPortHackFlags
;
64 PVOID QueryDeviceInformation
;
65 PVOID GetControllerInformation
;
66 PVOID ControllerSelectiveSuspend
;
67 PVOID GetExtendedHubInformation
;
68 PVOID GetRootHubSymbolicName
;
69 PVOID GetDeviceBusContext
;
70 PVOID Initialize20Hub
;
71 PVOID RootHubInitNotification
;
73 PVOID SetDeviceHandleData
;
74 } USB_BUS_INTERFACE_HUB_V5
, *PUSB_BUS_INTERFACE_HUB_V5
;
78 InterfaceReference(PVOID BusContext
);
82 InterfaceDereference(PVOID BusContext
);
86 CreateUsbDevice(PVOID BusContext
,
87 PUSB_DEVICE_HANDLE
*NewDevice
,
88 PUSB_DEVICE_HANDLE HubDeviceHandle
,
89 USHORT PortStatus
, USHORT PortNumber
);
93 InitializeUsbDevice(PVOID BusContext
, PUSB_DEVICE_HANDLE DeviceHandle
);
97 GetUsbDescriptors(PVOID BusContext
,
98 PUSB_DEVICE_HANDLE DeviceHandle
,
99 PUCHAR DeviceDescriptorBuffer
,
100 PULONG DeviceDescriptorBufferLength
,
101 PUCHAR ConfigurationBuffer
,
102 PULONG ConfigDescriptorBufferLength
);
106 RemoveUsbDevice(PVOID BusContext
, PUSB_DEVICE_HANDLE DeviceHandle
, ULONG Flags
);
110 RestoreUsbDevice(PVOID BusContext
, PUSB_DEVICE_HANDLE OldDeviceHandle
, PUSB_DEVICE_HANDLE NewDeviceHandle
);
114 GetPortHackFlags(PVOID BusContext
, PULONG Flags
);
118 QueryDeviceInformation(PVOID BusContext
,
119 PUSB_DEVICE_HANDLE DeviceHandle
,
120 PVOID DeviceInformationBuffer
,
121 ULONG DeviceInformationBufferLength
,
122 PULONG LengthReturned
);
126 GetControllerInformation(PVOID BusContext
,
127 PVOID ControllerInformationBuffer
,
128 ULONG ControllerInformationBufferLength
,
129 PULONG LengthReturned
);
133 ControllerSelectiveSuspend(PVOID BusContext
, BOOLEAN Enable
);
137 GetExtendedHubInformation(PVOID BusContext
,
138 PDEVICE_OBJECT HubPhysicalDeviceObject
,
139 PVOID HubInformationBuffer
,
140 ULONG HubInformationBufferLength
,
141 PULONG LengthReturned
);
145 GetRootHubSymbolicName(PVOID BusContext
,
146 PVOID HubSymNameBuffer
,
147 ULONG HubSymNameBufferLength
,
148 PULONG HubSymNameActualLength
);
152 GetDeviceBusContext(PVOID HubBusContext
, PVOID DeviceHandle
);
156 Initialize20Hub(PVOID BusContext
, PUSB_DEVICE_HANDLE HubDeviceHandle
, ULONG TtCount
);
160 RootHubInitNotification(PVOID BusContext
, PVOID CallbackContext
, PRH_INIT_CALLBACK CallbackRoutine
);
164 FlushTransfers(PVOID BusContext
, PVOID DeviceHandle
);
168 SetDeviceHandleData(PVOID BusContext
, PVOID DeviceHandle
, PDEVICE_OBJECT UsbDevicePdo
);
172 GetUSBDIVersion(PVOID BusContext
, PUSBD_VERSION_INFORMATION VersionInformation
, PULONG HcdCapabilites
);
176 QueryBusTime(PVOID BusContext
, PULONG CurrentFrame
);
180 SubmitIsoOutUrb(PVOID BusContext
, PURB Urb
);
184 QueryBusInformation(PVOID BusContext
,
186 PVOID BusInformationBuffer
,
187 PULONG BusInformationBufferLength
,
188 PULONG BusInformationActualLength
);
192 IsDeviceHighSpeed(PVOID BusCOntext
);
196 EnumLogEntry(PVOID BusContext
, ULONG DriverTag
, ULONG EnumTag
, ULONG P1
, ULONG P2
);