ReactOS 0.4.17-dev-1037-g720d112
exports.cpp
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS USB Host Controller Extension
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: Class functions exported to UCX clients
5 * COPYRIGHT: Copyright 2026 Justin Miller <justinmiller100@gmail.com>
6 */
7
8#include "ucx01000.h"
9
10#define NDEBUG
11#include <debug.h>
12
13/* Controller */
14
19UcxApiInitializeDeviceInit(
20 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
22{
23 UNREFERENCED_PARAMETER(DriverGlobals);
25
26 /* Lets clients get as far as UcxControllerCreate until this is real */
29}
30
35UcxApiIoDeviceControl(
36 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
37 _In_ WDFDEVICE Device,
38 _In_ WDFREQUEST Request,
42{
43 UNREFERENCED_PARAMETER(DriverGlobals);
49
50 /* Not claimed; the client completes the request itself */
51 return FALSE;
52}
53
58UcxApiControllerCreate(
59 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
60 _In_ WDFDEVICE Device,
63 _Out_ UCXCONTROLLER *Controller)
64{
65 UNREFERENCED_PARAMETER(DriverGlobals);
69
73}
74
76VOID
78UcxApiControllerNeedsReset(
79 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
80 _In_ UCXCONTROLLER Controller)
81{
82 UNREFERENCED_PARAMETER(DriverGlobals);
85}
86
88VOID
90UcxApiControllerResetComplete(
91 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
92 _In_ UCXCONTROLLER Controller,
94{
95 UNREFERENCED_PARAMETER(DriverGlobals);
99}
100
102VOID
103NTAPI
104UcxApiControllerSetFailed(
105 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
106 _In_ UCXCONTROLLER Controller)
107{
108 UNREFERENCED_PARAMETER(DriverGlobals);
111}
112
115NTAPI
116UcxApiControllerSetIdStrings(
117 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
118 _In_ UCXCONTROLLER Controller,
122{
123 UNREFERENCED_PARAMETER(DriverGlobals);
128
131}
132
134VOID
135NTAPI
136UcxApiControllerNotifyTransportCharacteristicsChange(
137 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
138 _In_ UCXCONTROLLER Controller,
140{
141 UNREFERENCED_PARAMETER(DriverGlobals);
145}
146
147/* Root hub */
148
152NTAPI
153UcxApiRootHubCreate(
154 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
155 _In_ UCXCONTROLLER Controller,
158 _Out_ UCXROOTHUB *RootHub)
159{
160 UNREFERENCED_PARAMETER(DriverGlobals);
164
165 *RootHub = NULL;
168}
169
171VOID
172NTAPI
173UcxApiRootHubPortChanged(
174 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
175 _In_ UCXROOTHUB UcxRootHub)
176{
177 UNREFERENCED_PARAMETER(DriverGlobals);
180}
181
182/* USB devices */
183
187NTAPI
188UcxApiUsbDeviceCreate(
189 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
190 _In_ UCXCONTROLLER Controller,
193 _Out_ UCXUSBDEVICE *UsbDevice)
194{
195 UNREFERENCED_PARAMETER(DriverGlobals);
199
200 *UsbDevice = NULL;
203}
204
205VOID
206NTAPI
208 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
211{
212 UNREFERENCED_PARAMETER(DriverGlobals);
214 UNREFERENCED_PARAMETER(EventCallbacks);
216}
217
219VOID
220NTAPI
221UcxApiUsbDeviceRemoteWakeNotification(
222 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
223 _In_ UCXUSBDEVICE UsbDevice,
225{
226 UNREFERENCED_PARAMETER(DriverGlobals);
230}
231
232/* Endpoints */
233
237NTAPI
238UcxApiEndpointCreate(
239 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
240 _In_ UCXUSBDEVICE UsbDevice,
243 _Out_ UCXENDPOINT *Endpoint)
244{
245 UNREFERENCED_PARAMETER(DriverGlobals);
249
250 *Endpoint = NULL;
253}
254
257UCXSSTREAMS
258NTAPI
259UcxApiEndpointGetStaticStreamsReferenced(
260 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
261 _In_ UCXENDPOINT Endpoint,
263{
264 UNREFERENCED_PARAMETER(DriverGlobals);
267
269 return NULL;
270}
271
273VOID
274NTAPI
275UcxApiEndpointNeedToCancelTransfers(
276 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
277 _In_ UCXENDPOINT Endpoint)
278{
279 UNREFERENCED_PARAMETER(DriverGlobals);
282}
283
284VOID
285NTAPI
287 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
289 _In_ PUCX_ENDPOINT_EVENT_CALLBACKS EventCallbacks)
290{
291 UNREFERENCED_PARAMETER(DriverGlobals);
293 UNREFERENCED_PARAMETER(EventCallbacks);
295}
296
297VOID
298NTAPI
300 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
303{
304 UNREFERENCED_PARAMETER(DriverGlobals);
306 UNREFERENCED_PARAMETER(EventCallbacks);
308}
309
310VOID
311NTAPI
313 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
314 _In_ UCXENDPOINT Endpoint,
315 _In_ WDFQUEUE WdfQueue)
316{
317 UNREFERENCED_PARAMETER(DriverGlobals);
319 UNREFERENCED_PARAMETER(WdfQueue);
321}
322
324VOID
325NTAPI
326UcxApiEndpointPurgeComplete(
327 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
328 _In_ UCXENDPOINT Endpoint)
329{
330 UNREFERENCED_PARAMETER(DriverGlobals);
333}
334
336VOID
337NTAPI
338UcxApiEndpointAbortComplete(
339 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
340 _In_ UCXENDPOINT Endpoint)
341{
342 UNREFERENCED_PARAMETER(DriverGlobals);
345}
346
348VOID
349NTAPI
350UcxApiEndpointNoPingResponseError(
351 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
352 _In_ UCXENDPOINT Endpoint)
353{
354 UNREFERENCED_PARAMETER(DriverGlobals);
357}
358
359/* Static streams */
360
361VOID
362NTAPI
364 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
365 _In_ UCXSSTREAMS StaticStreams,
366 _In_ PSTREAM_INFO StreamInfo)
367{
368 UNREFERENCED_PARAMETER(DriverGlobals);
370 UNREFERENCED_PARAMETER(StreamInfo);
372}
373
377NTAPI
378UcxApiStaticStreamsCreate(
379 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
380 _In_ UCXENDPOINT Endpoint,
383 _Out_ UCXSSTREAMS *StaticStreams)
384{
385 UNREFERENCED_PARAMETER(DriverGlobals);
389
393}
unsigned char BOOLEAN
Definition: actypes.h:127
LONG NTSTATUS
Definition: precomp.h:26
_In_ ULONG Attributes
Definition: dispmprt.h:1077
#define _IRQL_requires_max_(irql)
Definition: driverspecs.h:230
#define _IRQL_requires_(irql)
Definition: driverspecs.h:229
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
VOID NTAPI UcxApiDefaultEndpointInitSetEventCallbacks(_In_ PUCX_DRIVER_GLOBALS DriverGlobals, _Inout_ PUCXENDPOINT_INIT EndpointInit, _In_ PUCX_DEFAULT_ENDPOINT_EVENT_CALLBACKS EventCallbacks)
Definition: exports.cpp:299
return NULL
Definition: exports.cpp:269
UNIMPLEMENTED
Definition: exports.cpp:27
return STATUS_NOT_IMPLEMENTED
Definition: exports.cpp:72
VOID NTAPI UcxApiUsbDeviceInitSetEventCallbacks(_In_ PUCX_DRIVER_GLOBALS DriverGlobals, _Inout_ PUCXUSBDEVICE_INIT UsbDeviceInit, _In_ PUCX_USBDEVICE_EVENT_CALLBACKS EventCallbacks)
Definition: exports.cpp:207
return STATUS_SUCCESS
Definition: exports.cpp:28
VOID NTAPI UcxApiStaticStreamsSetStreamInfo(_In_ PUCX_DRIVER_GLOBALS DriverGlobals, _In_ UCXSSTREAMS StaticStreams, _In_ PSTREAM_INFO StreamInfo)
Definition: exports.cpp:363
return FALSE
Definition: exports.cpp:51
VOID NTAPI UcxApiEndpointSetWdfIoQueue(_In_ PUCX_DRIVER_GLOBALS DriverGlobals, _In_ UCXENDPOINT Endpoint, _In_ WDFQUEUE WdfQueue)
Definition: exports.cpp:312
VOID NTAPI UcxApiEndpointInitSetEventCallbacks(_In_ PUCX_DRIVER_GLOBALS DriverGlobals, _Inout_ PUCXENDPOINT_INIT EndpointInit, _In_ PUCX_ENDPOINT_EVENT_CALLBACKS EventCallbacks)
Definition: exports.cpp:286
_Must_inspect_result_ _In_ PUCXHUB_DEVICE_CREATE_INFO _Out_ UCXUSBDEVICE * Device
Definition: hubucx.h:258
_In_ UCXHUB_DEVICE_CONTEXT _In_ UCXENDPOINT Endpoint
Definition: hubucx.h:238
#define _Inout_
Definition: no_sal2.h:162
#define _Must_inspect_result_
Definition: no_sal2.h:62
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:329
#define NTAPI
Definition: typedefs.h:36
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXCONTROLLER * Controller
_In_ UCXCONTROLLER _In_ PUCX_CONTROLLER_RESET_COMPLETE_INFO UcxControllerResetCompleteInfo
_In_ UCXCONTROLLER _In_ PUNICODE_STRING ManufacturerNameString
_In_ UCXCONTROLLER _In_ PUNICODE_STRING _In_ PUNICODE_STRING _In_ PUNICODE_STRING ModelNumberString
_In_ UCXCONTROLLER _In_ PUNICODE_STRING _In_ PUNICODE_STRING ModelNameString
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG Config
_In_ PUCXUSBDEVICE_INFO _In_ PUCXUSBDEVICE_INIT UsbDeviceInit
_In_ PGUID _In_ ULONG OutputBufferLength
Definition: ucxcontroller.h:81
_Out_ PUCX_CONTROLLER_TRANSPORT_CHARACTERISTICS UcxControllerTransportCharacteristics
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST Request
_Must_inspect_result_ _In_ UCXUSBDEVICE UsbDevice
Definition: ucxendpoint.h:313
_Must_inspect_result_ _In_ UCXENDPOINT _In_ PVOID Tag
Definition: ucxendpoint.h:325
_Must_inspect_result_ _In_ UCXUSBDEVICE _Inout_ PUCXENDPOINT_INIT * EndpointInit
Definition: ucxendpoint.h:314
WDF_EXTERN_C_START struct _UCX_DRIVER_GLOBALS * PUCX_DRIVER_GLOBALS
struct _UCXENDPOINT_INIT * PUCXENDPOINT_INIT
Definition: ucxobjects.h:20
struct _UCXSSTREAMS_INIT * PUCXSSTREAMS_INIT
Definition: ucxobjects.h:21
struct _UCXUSBDEVICE_INIT * PUCXUSBDEVICE_INIT
Definition: ucxobjects.h:19
_In_ UCXROOTHUB UcxRootHub
Definition: ucxroothub.h:306
_Must_inspect_result_ _In_ UCXCONTROLLER _In_ PUCX_ROOTHUB_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXROOTHUB * RootHub
Definition: ucxroothub.h:299
_Must_inspect_result_ _In_ UCXENDPOINT _Inout_ PUCXSSTREAMS_INIT * StaticStreamsInit
Definition: ucxsstreams.h:53
WDF_EXTERN_C_START struct _STREAM_INFO * PSTREAM_INFO
_Must_inspect_result_ _In_ UCXENDPOINT _Inout_ PUCXSSTREAMS_INIT _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXSSTREAMS * StaticStreams
Definition: ucxsstreams.h:55
_In_ UCXUSBDEVICE _In_ ULONG Interface
Definition: ucxusbdevice.h:428
_In_ PWDFDEVICE_INIT DeviceInit
Definition: wdfcontrol.h:113