Reintegrate header branch
[reactos.git] / reactos / drivers / usb / usbehci / usbiffn.h
1 #pragma once
2
3 #define USB_BUSIFFN __stdcall
4 #include <ntifs.h>
5 #include <ntddk.h>
6 #include <usb.h>
7
8 /* usbbusif.h and hubbusif.h need to be imported */
9 typedef PVOID PUSB_DEVICE_HANDLE;
10
11 typedef
12 VOID
13 USB_BUSIFFN
14 RH_INIT_CALLBACK (PVOID CallBackContext);
15
16 typedef RH_INIT_CALLBACK *PRH_INIT_CALLBACK;
17
18 typedef struct _USB_EXTPORT_INFORMATION_0
19 {
20 ULONG PhysicalPortNumber;
21 ULONG PortLabelNumber;
22 USHORT VidOverride;
23 USHORT PidOverride;
24 ULONG PortAttributes;
25 } USB_EXTPORT_INFORMATION_0, *PUSB_EXTPORT_INFORMATION;
26
27 typedef struct _USB_EXTHUB_INFORMATION_0
28 {
29 ULONG InformationLevel;
30 ULONG NumberOfPorts;
31 USB_EXTPORT_INFORMATION_0 Port[255];
32 } USB_EXTHUB_INFORMATION_0, *PUSB_EXTHUB_INFORMATION_0;
33
34 typedef struct _USB_BUS_INTERFACE_USBDI_V2
35 {
36 USHORT Size;
37 USHORT Version;
38 PVOID BusContext;
39 PINTERFACE_REFERENCE InterfaceReference;
40 PINTERFACE_DEREFERENCE InterfaceDereference;
41
42 PVOID GetUSBDIVersion;
43 PVOID QueryBusTime;
44 PVOID SubmitIsoOutUrb;
45 PVOID QueryBusInformation;
46 PVOID IsDeviceHighSpeed;
47 PVOID EnumLogEntry;
48 } USB_BUS_INTERFACE_USBDI_V2, *PUSB_BUS_INTERFACE_USBDI_V2;
49
50 typedef struct _USB_BUS_INTERFACE_HUB_V5
51 {
52 USHORT Size;
53 USHORT Version;
54 PVOID BusContext;
55 PINTERFACE_REFERENCE InterfaceReference;
56 PINTERFACE_DEREFERENCE InterfaceDereference;
57
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;
72 PVOID FlushTransfers;
73 PVOID SetDeviceHandleData;
74 } USB_BUS_INTERFACE_HUB_V5, *PUSB_BUS_INTERFACE_HUB_V5;
75
76 VOID
77 USB_BUSIFFN
78 InterfaceReference(PVOID BusContext);
79
80 VOID
81 USB_BUSIFFN
82 InterfaceDereference(PVOID BusContext);
83
84 NTSTATUS
85 USB_BUSIFFN
86 CreateUsbDevice(PVOID BusContext,
87 PUSB_DEVICE_HANDLE *NewDevice,
88 PUSB_DEVICE_HANDLE HubDeviceHandle,
89 USHORT PortStatus, USHORT PortNumber);
90
91 NTSTATUS
92 USB_BUSIFFN
93 InitializeUsbDevice(PVOID BusContext, PUSB_DEVICE_HANDLE DeviceHandle);
94
95 NTSTATUS
96 USB_BUSIFFN
97 GetUsbDescriptors(PVOID BusContext,
98 PUSB_DEVICE_HANDLE DeviceHandle,
99 PUCHAR DeviceDescriptorBuffer,
100 PULONG DeviceDescriptorBufferLength,
101 PUCHAR ConfigurationBuffer,
102 PULONG ConfigDescriptorBufferLength);
103
104 NTSTATUS
105 USB_BUSIFFN
106 RemoveUsbDevice(PVOID BusContext, PUSB_DEVICE_HANDLE DeviceHandle, ULONG Flags);
107
108 NTSTATUS
109 USB_BUSIFFN
110 RestoreUsbDevice(PVOID BusContext, PUSB_DEVICE_HANDLE OldDeviceHandle, PUSB_DEVICE_HANDLE NewDeviceHandle);
111
112 NTSTATUS
113 USB_BUSIFFN
114 GetPortHackFlags(PVOID BusContext, PULONG Flags);
115
116 NTSTATUS
117 USB_BUSIFFN
118 QueryDeviceInformation(PVOID BusContext,
119 PUSB_DEVICE_HANDLE DeviceHandle,
120 PVOID DeviceInformationBuffer,
121 ULONG DeviceInformationBufferLength,
122 PULONG LengthReturned);
123
124 NTSTATUS
125 USB_BUSIFFN
126 GetControllerInformation(PVOID BusContext,
127 PVOID ControllerInformationBuffer,
128 ULONG ControllerInformationBufferLength,
129 PULONG LengthReturned);
130
131 NTSTATUS
132 USB_BUSIFFN
133 ControllerSelectiveSuspend(PVOID BusContext, BOOLEAN Enable);
134
135 NTSTATUS
136 USB_BUSIFFN
137 GetExtendedHubInformation(PVOID BusContext,
138 PDEVICE_OBJECT HubPhysicalDeviceObject,
139 PVOID HubInformationBuffer,
140 ULONG HubInformationBufferLength,
141 PULONG LengthReturned);
142
143 NTSTATUS
144 USB_BUSIFFN
145 GetRootHubSymbolicName(PVOID BusContext,
146 PVOID HubSymNameBuffer,
147 ULONG HubSymNameBufferLength,
148 PULONG HubSymNameActualLength);
149
150 PVOID
151 USB_BUSIFFN
152 GetDeviceBusContext(PVOID HubBusContext, PVOID DeviceHandle);
153
154 NTSTATUS
155 USB_BUSIFFN
156 Initialize20Hub(PVOID BusContext, PUSB_DEVICE_HANDLE HubDeviceHandle, ULONG TtCount);
157
158 NTSTATUS
159 USB_BUSIFFN
160 RootHubInitNotification(PVOID BusContext, PVOID CallbackContext, PRH_INIT_CALLBACK CallbackRoutine);
161
162 VOID
163 USB_BUSIFFN
164 FlushTransfers(PVOID BusContext, PVOID DeviceHandle);
165
166 VOID
167 USB_BUSIFFN
168 SetDeviceHandleData(PVOID BusContext, PVOID DeviceHandle, PDEVICE_OBJECT UsbDevicePdo);
169
170 NTSTATUS
171 USB_BUSIFFN
172 GetUSBDIVersion(PVOID BusContext, PUSBD_VERSION_INFORMATION VersionInformation, PULONG HcdCapabilites);
173
174 NTSTATUS
175 USB_BUSIFFN
176 QueryBusTime(PVOID BusContext, PULONG CurrentFrame);
177
178 NTSTATUS
179 USB_BUSIFFN
180 SubmitIsoOutUrb(PVOID BusContext, PURB Urb);
181
182 NTSTATUS
183 USB_BUSIFFN
184 QueryBusInformation(PVOID BusContext,
185 ULONG Level,
186 PVOID BusInformationBuffer,
187 PULONG BusInformationBufferLength,
188 PULONG BusInformationActualLength);
189
190 BOOLEAN
191 USB_BUSIFFN
192 IsDeviceHighSpeed(PVOID BusCOntext);
193
194 NTSTATUS
195 USB_BUSIFFN
196 EnumLogEntry(PVOID BusContext, ULONG DriverTag, ULONG EnumTag, ULONG P1, ULONG P2);