ReactOS 0.4.17-dev-1037-g720d112
ucxusbdevice.h
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: UCX USB device object interface
5 * COPYRIGHT: Copyright 2026 Justin Miller <justinmiller100@gmail.com>
6 */
7
8#pragma once
9
10#include "ucxglobals.h"
11#include "ucxfuncenum.h"
12#include "ucxobjects.h"
13
15
16/* C reaches the header fields through an unnamed member, C++ through Header */
17#ifdef __cplusplus
18#define UCX_MGMT_HEADER_MEMBER USBDEVICE_MGMT_HEADER Header
19#define UCX_ANONYMOUS_FLAGS Flags
20#else
21#define UCX_MGMT_HEADER_MEMBER USBDEVICE_MGMT_HEADER
22#define UCX_ANONYMOUS_FLAGS
23#endif
24
26{
28 UCXUSBDEVICE Hub;
29 UCXUSBDEVICE UsbDevice;
31
33{
36
38{
43
44typedef struct _USBDEVICE_ENABLE
45{
47 UCXENDPOINT DefaultEndpoint;
50
51typedef struct _USBDEVICE_RESET
52{
54 UCXENDPOINT DefaultEndpoint;
56 _Field_size_(EndpointsToDisableCount) UCXENDPOINT *EndpointsToDisable;
58
59typedef struct _USBDEVICE_PURGEIO
60{
64
65typedef struct _USBDEVICE_ABORTIO
66{
69
70typedef struct _USBDEVICE_STARTIO
71{
74
76{
79
80typedef struct _USBDEVICE_ADDRESS
81{
86
88{
99
101{
105
108{
117
118typedef struct _USBDEVICE_UPDATE
119{
131
132/* The flags spill into a second ULONG; the hub and controller drivers depend on it */
134#ifdef _WIN64
136#else
138#endif
139
141{
147
149{
154
155typedef struct _USBDEVICE_DISABLE
156{
158 UCXENDPOINT DefaultEndpoint;
161
162/* Root port plus five hubs */
163#define MAX_USB_DEVICE_DEPTH 6
164
166{
172
173typedef struct _UCXUSBDEVICE_INFO
174{
177 UCXUSBDEVICE TtHub;
180
182{
185
187{
191
193{
196 union
197 {
199 };
201
202typedef
203_Function_class_(EVT_UCX_USBDEVICE_ENDPOINTS_CONFIGURE)
206VOID
207NTAPI
208EVT_UCX_USBDEVICE_ENDPOINTS_CONFIGURE(
209 _In_ UCXCONTROLLER UcxController,
210 _In_ WDFREQUEST Request);
211typedef EVT_UCX_USBDEVICE_ENDPOINTS_CONFIGURE *PFN_UCX_USBDEVICE_ENDPOINTS_CONFIGURE;
212
213typedef
214_Function_class_(EVT_UCX_USBDEVICE_ENABLE)
217VOID
218NTAPI
219EVT_UCX_USBDEVICE_ENABLE(
220 _In_ UCXCONTROLLER UcxController,
221 _In_ WDFREQUEST Request);
222typedef EVT_UCX_USBDEVICE_ENABLE *PFN_UCX_USBDEVICE_ENABLE;
223
224typedef
225_Function_class_(EVT_UCX_USBDEVICE_DISABLE)
228VOID
229NTAPI
230EVT_UCX_USBDEVICE_DISABLE(
231 _In_ UCXCONTROLLER UcxController,
232 _In_ WDFREQUEST Request);
233typedef EVT_UCX_USBDEVICE_DISABLE *PFN_UCX_USBDEVICE_DISABLE;
234
235typedef
236_Function_class_(EVT_UCX_USBDEVICE_RESET)
239VOID
240NTAPI
241EVT_UCX_USBDEVICE_RESET(
242 _In_ UCXCONTROLLER UcxController,
243 _In_ WDFREQUEST Request);
244typedef EVT_UCX_USBDEVICE_RESET *PFN_UCX_USBDEVICE_RESET;
245
246typedef
247_Function_class_(EVT_UCX_USBDEVICE_ADDRESS)
250VOID
251NTAPI
252EVT_UCX_USBDEVICE_ADDRESS(
253 _In_ UCXCONTROLLER UcxController,
254 _In_ WDFREQUEST Request);
255typedef EVT_UCX_USBDEVICE_ADDRESS *PFN_UCX_USBDEVICE_ADDRESS;
256
257typedef
258_Function_class_(EVT_UCX_USBDEVICE_UPDATE)
261VOID
262NTAPI
263EVT_UCX_USBDEVICE_UPDATE(
264 _In_ UCXCONTROLLER UcxController,
265 _In_ WDFREQUEST Request);
266typedef EVT_UCX_USBDEVICE_UPDATE *PFN_UCX_USBDEVICE_UPDATE;
267
268typedef
269_Function_class_(EVT_UCX_USBDEVICE_HUB_INFO)
272VOID
273NTAPI
274EVT_UCX_USBDEVICE_HUB_INFO(
275 _In_ UCXCONTROLLER UcxController,
276 _In_ WDFREQUEST Request);
277typedef EVT_UCX_USBDEVICE_HUB_INFO *PFN_UCX_USBDEVICE_HUB_INFO;
278
279typedef
280_Function_class_(EVT_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD)
284NTAPI
285EVT_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD(
286 _In_ UCXCONTROLLER UcxController,
287 _In_ UCXUSBDEVICE UcxUsbDevice,
290typedef EVT_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD *PFN_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD;
291
292typedef
293_Function_class_(EVT_UCX_USBDEVICE_ENDPOINT_ADD)
297NTAPI
298EVT_UCX_USBDEVICE_ENDPOINT_ADD(
299 _In_ UCXCONTROLLER UcxController,
300 _In_ UCXUSBDEVICE UcxUsbDevice,
305typedef EVT_UCX_USBDEVICE_ENDPOINT_ADD *PFN_UCX_USBDEVICE_ENDPOINT_ADD;
306
307/* Optional hooks */
308
309typedef
310_Function_class_(EVT_UCX_USBDEVICE_SUSPEND)
313VOID
314NTAPI
315EVT_UCX_USBDEVICE_SUSPEND(
316 _In_ UCXCONTROLLER UcxController,
317 _In_ UCXUSBDEVICE UcxUsbDevice);
318typedef EVT_UCX_USBDEVICE_SUSPEND *PFN_UCX_USBDEVICE_SUSPEND;
319
320typedef
321_Function_class_(EVT_UCX_USBDEVICE_RESUME)
324VOID
325NTAPI
326EVT_UCX_USBDEVICE_RESUME(
327 _In_ UCXCONTROLLER UcxController,
328 _In_ UCXUSBDEVICE UcxUsbDevice);
329typedef EVT_UCX_USBDEVICE_RESUME *PFN_UCX_USBDEVICE_RESUME;
330
331typedef
332_Function_class_(EVT_UCX_USBDEVICE_GET_CHARACTERISTIC)
336NTAPI
337EVT_UCX_USBDEVICE_GET_CHARACTERISTIC(
338 _In_ UCXCONTROLLER UcxController,
339 _In_ UCXUSBDEVICE UcxUsbDevice,
341typedef EVT_UCX_USBDEVICE_GET_CHARACTERISTIC *PFN_UCX_USBDEVICE_GET_CHARACTERISTIC;
342
344{
359
362VOID
363NTAPI
366 _In_ PFN_UCX_USBDEVICE_ENDPOINTS_CONFIGURE EvtUsbDeviceEndpointsConfigure,
367 _In_ PFN_UCX_USBDEVICE_ENABLE EvtUsbDeviceEnable,
368 _In_ PFN_UCX_USBDEVICE_DISABLE EvtUsbDeviceDisable,
369 _In_ PFN_UCX_USBDEVICE_RESET EvtUsbDeviceReset,
370 _In_ PFN_UCX_USBDEVICE_ADDRESS EvtUsbDeviceAddress,
371 _In_ PFN_UCX_USBDEVICE_UPDATE EvtUsbDeviceUpdate,
372 _In_ PFN_UCX_USBDEVICE_HUB_INFO EvtUsbDeviceHubInfo,
373 _In_ PFN_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD EvtUsbDeviceDefaultEndpointAdd,
374 _In_ PFN_UCX_USBDEVICE_ENDPOINT_ADD EvtUsbDeviceEndpointAdd)
375{
377 Callbacks->Size = sizeof(*Callbacks);
378
379 Callbacks->EvtUsbDeviceEnable = EvtUsbDeviceEnable;
380 Callbacks->EvtUsbDeviceDisable = EvtUsbDeviceDisable;
381 Callbacks->EvtUsbDeviceReset = EvtUsbDeviceReset;
382 Callbacks->EvtUsbDeviceAddress = EvtUsbDeviceAddress;
383 Callbacks->EvtUsbDeviceUpdate = EvtUsbDeviceUpdate;
384 Callbacks->EvtUsbDeviceHubInfo = EvtUsbDeviceHubInfo;
385 Callbacks->EvtUsbDeviceEndpointsConfigure = EvtUsbDeviceEndpointsConfigure;
386 Callbacks->EvtUsbDeviceDefaultEndpointAdd = EvtUsbDeviceDefaultEndpointAdd;
387 Callbacks->EvtUsbDeviceEndpointAdd = EvtUsbDeviceEndpointAdd;
388}
389
390/* PEVT_ spellings from older headers */
401
402/* Class entry points */
403
404typedef
408(NTAPI *PFN_UCXUSBDEVICECREATE)(
409 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
410 _In_ UCXCONTROLLER Controller,
413 _Out_ UCXUSBDEVICE *UsbDevice);
414
415typedef
418 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
420 _In_ PUCX_USBDEVICE_EVENT_CALLBACKS EventCallbacks);
421
422typedef
424VOID
425(NTAPI *PFN_UCXUSBDEVICEREMOTEWAKENOTIFICATION)(
426 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
427 _In_ UCXUSBDEVICE UsbDevice,
429
434NTAPI
435UcxUsbDeviceCreate(
436 _In_ UCXCONTROLLER Controller,
439 _Out_ UCXUSBDEVICE *UsbDevice)
440{
441 PFN_UCXUSBDEVICECREATE Create;
442
445}
446
448VOID
449NTAPI
453{
455
458 SetCallbacks(UcxDriverGlobals, UsbDeviceInit, EventCallbacks);
459}
460
463VOID
464NTAPI
465UcxUsbDeviceRemoteWakeNotification(
466 _In_ UCXUSBDEVICE UsbDevice,
468{
469 PFN_UCXUSBDEVICEREMOTEWAKENOTIFICATION Notify;
470
471 Notify = UCX_BOUND_FUNCTION(PFN_UCXUSBDEVICEREMOTEWAKENOTIFICATION,
474}
475
#define VOID
Definition: acefi.h:82
unsigned char BOOLEAN
Definition: actypes.h:127
LONG NTSTATUS
Definition: precomp.h:26
const struct winhelp_callbacks Callbacks
Definition: callback.c:161
_In_ ULONG Attributes
Definition: dispmprt.h:1077
_Check_return_ _In_ ULONG _Inout_ PDXGK_DEVICE_DESCRIPTOR DeviceDescriptor
Definition: dispmprt.h:1263
#define NTSTATUS
Definition: precomp.h:19
#define _IRQL_requires_same_
Definition: driverspecs.h:232
#define _IRQL_requires_max_(irql)
Definition: driverspecs.h:230
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
_Must_inspect_result_ _In_ UCXUSBDEVICE _In_ ULONG MaxPacketSize
Definition: hubucx.h:289
#define C_ASSERT(e)
Definition: intsafe.h:73
#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 _Function_class_(n)
Definition: no_sal2.h:398
unsigned short USHORT
Definition: pedump.c:61
UCXUSBDEVICE TtHub
Definition: ucxusbdevice.h:177
USB_DEVICE_PORT_PATH PortPath
Definition: ucxusbdevice.h:178
USB_DEVICE_SPEED DeviceSpeed
Definition: ucxusbdevice.h:176
UCX_USBDEVICE_CHARACTERISTIC_PATH_DELAY PathDelay
Definition: ucxusbdevice.h:198
UCX_USBDEVICE_CHARACTERISTIC_TYPE CharacteristicType
Definition: ucxusbdevice.h:195
PFN_UCX_USBDEVICE_ADDRESS EvtUsbDeviceAddress
Definition: ucxusbdevice.h:350
PFN_UCX_USBDEVICE_DISABLE EvtUsbDeviceDisable
Definition: ucxusbdevice.h:348
PFN_UCX_USBDEVICE_ENDPOINTS_CONFIGURE EvtUsbDeviceEndpointsConfigure
Definition: ucxusbdevice.h:346
PFN_UCX_USBDEVICE_ENDPOINT_ADD EvtUsbDeviceEndpointAdd
Definition: ucxusbdevice.h:354
PFN_UCX_USBDEVICE_ENABLE EvtUsbDeviceEnable
Definition: ucxusbdevice.h:347
PFN_UCX_USBDEVICE_UPDATE EvtUsbDeviceUpdate
Definition: ucxusbdevice.h:351
PFN_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD EvtUsbDeviceDefaultEndpointAdd
Definition: ucxusbdevice.h:353
PFN_UCX_USBDEVICE_SUSPEND EvtUsbDeviceSuspend
Definition: ucxusbdevice.h:355
PFN_UCX_USBDEVICE_RESUME EvtUsbDeviceResume
Definition: ucxusbdevice.h:356
PFN_UCX_USBDEVICE_HUB_INFO EvtUsbDeviceHubInfo
Definition: ucxusbdevice.h:352
PFN_UCX_USBDEVICE_GET_CHARACTERISTIC EvtUsbDeviceGetCharacteristic
Definition: ucxusbdevice.h:357
PFN_UCX_USBDEVICE_RESET EvtUsbDeviceReset
Definition: ucxusbdevice.h:349
UCXENDPOINT DefaultEndpoint
Definition: ucxusbdevice.h:158
UCX_USBDEVICE_RECOVERY_ACTION UsbDeviceRecoveryAction
Definition: ucxusbdevice.h:159
ULONG InsufficientHardwareResourcesForDefaultEndpoint
Definition: ucxusbdevice.h:39
UCXENDPOINT DefaultEndpoint
Definition: ucxusbdevice.h:47
USBDEVICE_ENABLE_FAILURE_FLAGS FailureFlags
Definition: ucxusbdevice.h:48
UCXUSBDEVICE UsbDevice
Definition: ucxusbdevice.h:29
_Field_size_(EndpointsToDisableCount) UCXENDPOINT *EndpointsToDisable
ULONG EndpointsToDisableCount
Definition: ucxusbdevice.h:55
UCXENDPOINT DefaultEndpoint
Definition: ucxusbdevice.h:54
ULONG UpdateAllowIoOnInvalidPipeHandles
Definition: ucxusbdevice.h:93
PUSB_DEVICE_DESCRIPTOR DeviceDescriptor
Definition: ucxusbdevice.h:122
USBDEVICE_UPDATE_FLAGS Flags
Definition: ucxusbdevice.h:121
USBDEVICE_UPDATE_20_HARDWARE_LPM_PARAMETERS Usb20HardwareLpmParameters
Definition: ucxusbdevice.h:127
USBDEVICE_UPDATE_FAILURE_FLAGS FailureFlags
Definition: ucxusbdevice.h:126
PUSB_BOS_DESCRIPTOR BosDescriptor
Definition: ucxusbdevice.h:123
USHORT RootPortResumeTime
Definition: ucxusbdevice.h:128
ULONG PortPath[MAX_USB_DEVICE_DEPTH]
Definition: ucxusbdevice.h:170
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
#define NTAPI
Definition: typedefs.h:36
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXCONTROLLER * Controller
_In_ PUCXUSBDEVICE_INFO _In_ PUCXUSBDEVICE_INIT UsbDeviceInit
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST Request
_Must_inspect_result_ _In_ UCXUSBDEVICE UsbDevice
Definition: ucxendpoint.h:313
@ UcxUsbDeviceRemoteWakeNotificationTableIndex
Definition: ucxfuncenum.h:22
@ UcxUsbDeviceCreateTableIndex
Definition: ucxfuncenum.h:20
@ UcxUsbDeviceInitSetEventCallbacksTableIndex
Definition: ucxfuncenum.h:21
#define UCX_BOUND_FUNCTION(PfnType, Slot)
Definition: ucxfuncenum.h:40
WDF_EXTERN_C_START struct _UCX_DRIVER_GLOBALS * PUCX_DRIVER_GLOBALS
PUCX_DRIVER_GLOBALS UcxDriverGlobals
Definition: ucxstub.c:32
struct _UCXENDPOINT_INIT * PUCXENDPOINT_INIT
Definition: ucxobjects.h:20
struct _UCXUSBDEVICE_INIT * PUCXUSBDEVICE_INIT
Definition: ucxobjects.h:19
struct _UCX_USBDEVICE_CHARACTERISTIC_PATH_DELAY * PUCX_USBDEVICE_CHARACTERISTIC_PATH_DELAY
PFN_UCX_USBDEVICE_HUB_INFO PEVT_UCX_USBDEVICE_HUB_INFO
Definition: ucxusbdevice.h:397
struct _UCX_USBDEVICE_CHARACTERISTIC UCX_USBDEVICE_CHARACTERISTIC
_In_ UCXUSBDEVICE _In_ ULONG Interface
Definition: ucxusbdevice.h:428
struct _USBDEVICE_RESET USBDEVICE_RESET
VOID(NTAPI * PFN_UCXUSBDEVICEINITSETEVENTCALLBACKS)(_In_ PUCX_DRIVER_GLOBALS DriverGlobals, _Inout_ PUCXUSBDEVICE_INIT UsbDeviceInit, _In_ PUCX_USBDEVICE_EVENT_CALLBACKS EventCallbacks)
Definition: ucxusbdevice.h:417
PFN_UCX_USBDEVICE_ENABLE PEVT_UCX_USBDEVICE_ENABLE
Definition: ucxusbdevice.h:392
enum _UCX_USBDEVICE_RECOVERY_ACTION UCX_USBDEVICE_RECOVERY_ACTION
_In_ UCXUSBDEVICE _In_ ULONG _In_opt_ PUSB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR SuperSpeedEndpointCompanionDescriptor
Definition: ucxusbdevice.h:303
_In_ UCXUSBDEVICE _In_reads_bytes_(UsbEndpointDescriptorBufferLength) PUSB_ENDPOINT_DESCRIPTOR UsbEndpointDescriptor
Definition: ucxusbdevice.h:301
_In_ UCXUSBDEVICE _In_ ULONG UsbEndpointDescriptorBufferLength
Definition: ucxusbdevice.h:302
struct _ADDRESS0_OWNERSHIP_ACQUIRE * PADDRESS0_OWNERSHIP_ACQUIRE
struct _UCXUSBDEVICE_INFO UCXUSBDEVICE_INFO
struct _USBDEVICE_ABORTIO * PUSBDEVICE_ABORTIO
EVT_UCX_USBDEVICE_HUB_INFO * PFN_UCX_USBDEVICE_HUB_INFO
Definition: ucxusbdevice.h:277
EVT_UCX_USBDEVICE_ADDRESS * PFN_UCX_USBDEVICE_ADDRESS
Definition: ucxusbdevice.h:255
PFN_UCX_USBDEVICE_ADDRESS PEVT_UCX_USBDEVICE_ADDRESS
Definition: ucxusbdevice.h:395
struct _USBDEVICE_PURGEIO USBDEVICE_PURGEIO
struct _USBDEVICE_ABORTIO USBDEVICE_ABORTIO
struct _USBDEVICE_STARTIO USBDEVICE_STARTIO
EVT_UCX_USBDEVICE_RESET * PFN_UCX_USBDEVICE_RESET
Definition: ucxusbdevice.h:244
Create
Definition: ucxusbdevice.h:443
struct _ADDRESS0_OWNERSHIP_ACQUIRE ADDRESS0_OWNERSHIP_ACQUIRE
struct _USBDEVICE_DISABLE * PUSBDEVICE_DISABLE
_Must_inspect_result_ _In_ UCXCONTROLLER Controller
Definition: ucxusbdevice.h:410
EVT_UCX_USBDEVICE_GET_CHARACTERISTIC * PFN_UCX_USBDEVICE_GET_CHARACTERISTIC
Definition: ucxusbdevice.h:341
EVT_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD * PFN_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD
Definition: ucxusbdevice.h:290
EVT_UCX_USBDEVICE_ENDPOINTS_CONFIGURE * PFN_UCX_USBDEVICE_ENDPOINTS_CONFIGURE
Definition: ucxusbdevice.h:211
struct _USBDEVICE_PURGEIO * PUSBDEVICE_PURGEIO
struct _USBDEVICE_HUB_INFO * PUSBDEVICE_HUB_INFO
PFN_UCX_USBDEVICE_ENDPOINTS_CONFIGURE PEVT_UCX_USBDEVICE_ENDPOINTS_CONFIGURE
Definition: ucxusbdevice.h:391
struct _USBDEVICE_RESET * PUSBDEVICE_RESET
PFN_UCX_USBDEVICE_RESET PEVT_UCX_USBDEVICE_RESET
Definition: ucxusbdevice.h:394
_In_ UCXUSBDEVICE _In_ ULONG _In_ PUCXENDPOINT_INIT UcxEndpointInit
Definition: ucxusbdevice.h:289
struct _UCX_USBDEVICE_EVENT_CALLBACKS UCX_USBDEVICE_EVENT_CALLBACKS
struct _USBDEVICE_ADDRESS * PUSBDEVICE_ADDRESS
struct _UCXUSBDEVICE_INFO * PUCXUSBDEVICE_INFO
_In_ UCXUSBDEVICE _Inout_ PUCX_USBDEVICE_CHARACTERISTIC UcxUsbDeviceCharacteristic
Definition: ucxusbdevice.h:340
_UCX_USBDEVICE_CHARACTERISTIC_TYPE
Definition: ucxusbdevice.h:182
@ UCX_USBDEVICE_CHARACTERISTIC_TYPE_PATH_DELAY
Definition: ucxusbdevice.h:183
#define MAX_USB_DEVICE_DEPTH
Definition: ucxusbdevice.h:163
struct _USBDEVICE_UPDATE_FLAGS USBDEVICE_UPDATE_FLAGS
_Must_inspect_result_ _In_ UCXCONTROLLER _Inout_ PUCXUSBDEVICE_INIT _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
Definition: ucxusbdevice.h:412
_Must_inspect_result_ _In_ UCXCONTROLLER _Inout_ PUCXUSBDEVICE_INIT _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXUSBDEVICE * UsbDevice
Definition: ucxusbdevice.h:413
_Must_inspect_result_ _IRQL_requires_(PASSIVE_LEVEL) NTSTATUS(NTAPI *PFN_UCXUSBDEVICECREATE)(_In_ PUCX_DRIVER_GLOBALS DriverGlobals
Definition: ucxusbdevice.h:406
enum _UCX_USBDEVICE_CHARACTERISTIC_TYPE UCX_USBDEVICE_CHARACTERISTIC_TYPE
struct _UCX_USBDEVICE_CHARACTERISTIC * PUCX_USBDEVICE_CHARACTERISTIC
EVT_UCX_USBDEVICE_RESUME * PFN_UCX_USBDEVICE_RESUME
Definition: ucxusbdevice.h:329
struct _USBDEVICE_MGMT_HEADER USBDEVICE_MGMT_HEADER
FORCEINLINE VOID NTAPI UcxUsbDeviceInitSetEventCallbacks(_Inout_ PUCXUSBDEVICE_INIT UsbDeviceInit, _In_ PUCX_USBDEVICE_EVENT_CALLBACKS EventCallbacks)
Definition: ucxusbdevice.h:450
PFN_UCX_USBDEVICE_DISABLE PEVT_UCX_USBDEVICE_DISABLE
Definition: ucxusbdevice.h:393
_Must_inspect_result_ _In_ UCXCONTROLLER _Inout_ PUCXUSBDEVICE_INIT * UsbDeviceInit
Definition: ucxusbdevice.h:411
_In_ UCXUSBDEVICE UcxUsbDevice
Definition: ucxusbdevice.h:287
PFN_UCX_USBDEVICE_GET_CHARACTERISTIC PEVT_UCX_USBDEVICE_GET_CHARACTERISTIC
Definition: ucxusbdevice.h:400
struct _USBDEVICE_UPDATE_FAILURE_FLAGS USBDEVICE_UPDATE_FAILURE_FLAGS
_UCX_USBDEVICE_RECOVERY_ACTION
Definition: ucxusbdevice.h:149
@ UcxUsbDeviceRecoverActionFunctionLevelDeviceReset
Definition: ucxusbdevice.h:151
@ UcxUsbDeviceRecoverActionNone
Definition: ucxusbdevice.h:150
@ UcxUsbDeviceRecoverActionPlatformLevelDeviceReset
Definition: ucxusbdevice.h:152
struct _USBDEVICE_MGMT_HEADER * PUSBDEVICE_MGMT_HEADER
struct _USBDEVICE_TREE_PURGEIO USBDEVICE_TREE_PURGEIO
struct _UCX_USBDEVICE_EVENT_CALLBACKS * PUCX_USBDEVICE_EVENT_CALLBACKS
struct _USBDEVICE_UPDATE * PUSBDEVICE_UPDATE
EVT_UCX_USBDEVICE_ENABLE * PFN_UCX_USBDEVICE_ENABLE
Definition: ucxusbdevice.h:222
PFN_UCX_USBDEVICE_ENDPOINT_ADD PEVT_UCX_USBDEVICE_ENDPOINT_ADD
Definition: ucxusbdevice.h:399
struct _USBDEVICE_UPDATE_20_HARDWARE_LPM_PARAMETERS USBDEVICE_UPDATE_20_HARDWARE_LPM_PARAMETERS
struct _USBDEVICE_ADDRESS USBDEVICE_ADDRESS
struct _USB_DEVICE_PORT_PATH * PUSB_DEVICE_PORT_PATH
Notify
Definition: ucxusbdevice.h:471
struct _USB_DEVICE_PORT_PATH USB_DEVICE_PORT_PATH
EVT_UCX_USBDEVICE_ENDPOINT_ADD * PFN_UCX_USBDEVICE_ENDPOINT_ADD
Definition: ucxusbdevice.h:305
struct _USBDEVICE_HUB_INFO USBDEVICE_HUB_INFO
struct _USBDEVICE_STARTIO * PUSBDEVICE_STARTIO
struct _USBDEVICE_ENABLE_FAILURE_FLAGS USBDEVICE_ENABLE_FAILURE_FLAGS
EVT_UCX_USBDEVICE_UPDATE * PFN_UCX_USBDEVICE_UPDATE
Definition: ucxusbdevice.h:266
FORCEINLINE VOID NTAPI UCX_USBDEVICE_EVENT_CALLBACKS_INIT(_Out_ PUCX_USBDEVICE_EVENT_CALLBACKS Callbacks, _In_ PFN_UCX_USBDEVICE_ENDPOINTS_CONFIGURE EvtUsbDeviceEndpointsConfigure, _In_ PFN_UCX_USBDEVICE_ENABLE EvtUsbDeviceEnable, _In_ PFN_UCX_USBDEVICE_DISABLE EvtUsbDeviceDisable, _In_ PFN_UCX_USBDEVICE_RESET EvtUsbDeviceReset, _In_ PFN_UCX_USBDEVICE_ADDRESS EvtUsbDeviceAddress, _In_ PFN_UCX_USBDEVICE_UPDATE EvtUsbDeviceUpdate, _In_ PFN_UCX_USBDEVICE_HUB_INFO EvtUsbDeviceHubInfo, _In_ PFN_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD EvtUsbDeviceDefaultEndpointAdd, _In_ PFN_UCX_USBDEVICE_ENDPOINT_ADD EvtUsbDeviceEndpointAdd)
Definition: ucxusbdevice.h:364
struct _USBDEVICE_ENABLE * PUSBDEVICE_ENABLE
EVT_UCX_USBDEVICE_DISABLE * PFN_UCX_USBDEVICE_DISABLE
Definition: ucxusbdevice.h:233
PFN_UCX_USBDEVICE_UPDATE PEVT_UCX_USBDEVICE_UPDATE
Definition: ucxusbdevice.h:396
struct _USBDEVICE_TREE_PURGEIO * PUSBDEVICE_TREE_PURGEIO
struct _USBDEVICE_ENABLE USBDEVICE_ENABLE
struct _USBDEVICE_DISABLE USBDEVICE_DISABLE
PFN_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD PEVT_UCX_USBDEVICE_DEFAULT_ENDPOINT_ADD
Definition: ucxusbdevice.h:398
struct _UCX_USBDEVICE_CHARACTERISTIC_PATH_DELAY UCX_USBDEVICE_CHARACTERISTIC_PATH_DELAY
struct _USBDEVICE_UPDATE USBDEVICE_UPDATE
EVT_UCX_USBDEVICE_SUSPEND * PFN_UCX_USBDEVICE_SUSPEND
Definition: ucxusbdevice.h:318
enum _USB_DEVICE_SPEED USB_DEVICE_SPEED
#define WDF_EXTERN_C_END
Definition: wdf.h:38
#define WDF_EXTERN_C_START
Definition: wdf.h:37
#define FORCEINLINE
Definition: wdftypes.h:67