ReactOS 0.4.17-dev-1037-g720d112
ucxendpoint.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 endpoint object interface
5 * COPYRIGHT: Copyright 2026 Justin Miller <justinmiller100@gmail.com>
6 */
7
8#pragma once
9
10#include "ucxusbdevice.h"
11
13
15{
18
20{
26
28{
31 _Field_size_(EndpointsToEnableCount) UCXENDPOINT *EndpointsToEnable;
33 _Field_size_(EndpointsToDisableCount) UCXENDPOINT *EndpointsToDisable;
35 _Field_size_(EndpointsEnabledAndUnchangedCount) UCXENDPOINT *EndpointsEnabledAndUnchanged;
44
45typedef struct _ENDPOINT_RESET
46{
48 UCXENDPOINT Endpoint;
51
53{
55 UCXENDPOINT DefaultEndpoint;
58
60{
64
66{
69
71{
77
79{
82 union
83 {
85 };
87
88typedef
89_Function_class_(EVT_UCX_ENDPOINT_RESET)
92VOID
94EVT_UCX_ENDPOINT_RESET(
95 _In_ UCXCONTROLLER UcxController,
96 _In_ UCXENDPOINT UcxEndpoint,
97 _In_ WDFREQUEST Request);
98typedef EVT_UCX_ENDPOINT_RESET *PFN_UCX_ENDPOINT_RESET;
99
100typedef
101_Function_class_(EVT_UCX_ENDPOINT_PURGE)
104VOID
105NTAPI
106EVT_UCX_ENDPOINT_PURGE(
107 _In_ UCXCONTROLLER UcxController,
108 _In_ UCXENDPOINT UcxEndpoint);
109typedef EVT_UCX_ENDPOINT_PURGE *PFN_UCX_ENDPOINT_PURGE;
110
111typedef
112_Function_class_(EVT_UCX_ENDPOINT_START)
115VOID
116NTAPI
117EVT_UCX_ENDPOINT_START(
118 _In_ UCXCONTROLLER UcxController,
119 _In_ UCXENDPOINT UcxEndpoint);
120typedef EVT_UCX_ENDPOINT_START *PFN_UCX_ENDPOINT_START;
121
122typedef
123_Function_class_(EVT_UCX_ENDPOINT_ABORT)
126VOID
127NTAPI
128EVT_UCX_ENDPOINT_ABORT(
129 _In_ UCXCONTROLLER UcxController,
130 _In_ UCXENDPOINT UcxEndpoint);
131typedef EVT_UCX_ENDPOINT_ABORT *PFN_UCX_ENDPOINT_ABORT;
132
133typedef
134_Function_class_(EVT_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS)
137VOID
138NTAPI
139EVT_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS(
140 _In_ UCXENDPOINT UcxEndpoint);
141typedef EVT_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS *PFN_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS;
142
143typedef
144_Function_class_(EVT_UCX_DEFAULT_ENDPOINT_UPDATE)
147VOID
148NTAPI
149EVT_UCX_DEFAULT_ENDPOINT_UPDATE(
150 _In_ UCXCONTROLLER UcxController,
151 _In_ WDFREQUEST Request);
152typedef EVT_UCX_DEFAULT_ENDPOINT_UPDATE *PFN_UCX_DEFAULT_ENDPOINT_UPDATE;
153
154/* SuperSpeed bulk streams */
155
156typedef
157_Function_class_(EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD)
162NTAPI
163EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD(
164 _In_ UCXENDPOINT UcxEndpoint,
167typedef EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD *PFN_UCX_ENDPOINT_STATIC_STREAMS_ADD;
168
169typedef
170_Function_class_(EVT_UCX_ENDPOINT_STATIC_STREAMS_ENABLE)
173VOID
174NTAPI
175EVT_UCX_ENDPOINT_STATIC_STREAMS_ENABLE(
176 _In_ UCXENDPOINT UcxEndpoint,
178 _In_ WDFREQUEST Request);
179typedef EVT_UCX_ENDPOINT_STATIC_STREAMS_ENABLE *PFN_UCX_ENDPOINT_STATIC_STREAMS_ENABLE;
180
181typedef
182_Function_class_(EVT_UCX_ENDPOINT_STATIC_STREAMS_DISABLE)
185VOID
186NTAPI
187EVT_UCX_ENDPOINT_STATIC_STREAMS_DISABLE(
188 _In_ UCXENDPOINT UcxEndpoint,
189 _In_ UCXSSTREAMS UcxStaticStreams,
190 _In_ WDFREQUEST Request);
191typedef EVT_UCX_ENDPOINT_STATIC_STREAMS_DISABLE *PFN_UCX_ENDPOINT_STATIC_STREAMS_DISABLE;
192
193/* Optional hooks */
194
195typedef
196_Function_class_(EVT_UCX_ENDPOINT_GET_ISOCH_TRANSFER_PATH_DELAYS)
201NTAPI
202EVT_UCX_ENDPOINT_GET_ISOCH_TRANSFER_PATH_DELAYS(
203 _In_ UCXENDPOINT UcxEndpoint,
205typedef EVT_UCX_ENDPOINT_GET_ISOCH_TRANSFER_PATH_DELAYS *PFN_UCX_ENDPOINT_GET_ISOCH_TRANSFER_PATH_DELAYS;
206
207typedef
208_Function_class_(EVT_UCX_ENDPOINT_SET_CHARACTERISTIC)
211VOID
212NTAPI
213EVT_UCX_ENDPOINT_SET_CHARACTERISTIC(
214 _In_ UCXENDPOINT UcxEndpoint,
216typedef EVT_UCX_ENDPOINT_SET_CHARACTERISTIC *PFN_UCX_ENDPOINT_SET_CHARACTERISTIC;
217
219{
233
235VOID
236NTAPI
239 _In_ PFN_UCX_ENDPOINT_PURGE EvtEndpointPurge,
240 _In_ PFN_UCX_ENDPOINT_START EvtEndpointStart,
241 _In_ PFN_UCX_ENDPOINT_ABORT EvtEndpointAbort,
242 _In_ PFN_UCX_ENDPOINT_RESET EvtEndpointReset,
243 _In_ PFN_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS EvtEndpointOkToCancelTransfers,
244 _In_ PFN_UCX_ENDPOINT_STATIC_STREAMS_ADD EvtEndpointStaticStreamsAdd,
245 _In_ PFN_UCX_ENDPOINT_STATIC_STREAMS_ENABLE EvtEndpointStaticStreamsEnable,
246 _In_ PFN_UCX_ENDPOINT_STATIC_STREAMS_DISABLE EvtEndpointStaticStreamsDisable)
247{
249 Callbacks->Size = sizeof(*Callbacks);
250
251 Callbacks->EvtEndpointStart = EvtEndpointStart;
252 Callbacks->EvtEndpointPurge = EvtEndpointPurge;
253 Callbacks->EvtEndpointAbort = EvtEndpointAbort;
254 Callbacks->EvtEndpointReset = EvtEndpointReset;
255 Callbacks->EvtEndpointOkToCancelTransfers = EvtEndpointOkToCancelTransfers;
256
257 Callbacks->EvtEndpointStaticStreamsAdd = EvtEndpointStaticStreamsAdd;
258 Callbacks->EvtEndpointStaticStreamsEnable = EvtEndpointStaticStreamsEnable;
259 Callbacks->EvtEndpointStaticStreamsDisable = EvtEndpointStaticStreamsDisable;
260}
261
263{
272
274VOID
275NTAPI
278 _In_ PFN_UCX_ENDPOINT_PURGE EvtEndpointPurge,
279 _In_ PFN_UCX_ENDPOINT_START EvtEndpointStart,
280 _In_ PFN_UCX_ENDPOINT_ABORT EvtEndpointAbort,
281 _In_ PFN_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS EvtEndpointOkToCancelTransfers,
282 _In_ PFN_UCX_DEFAULT_ENDPOINT_UPDATE EvtDefaultEndpointUpdate)
283{
285 Callbacks->Size = sizeof(*Callbacks);
286
287 Callbacks->EvtEndpointStart = EvtEndpointStart;
288 Callbacks->EvtEndpointPurge = EvtEndpointPurge;
289 Callbacks->EvtEndpointAbort = EvtEndpointAbort;
290 Callbacks->EvtEndpointOkToCancelTransfers = EvtEndpointOkToCancelTransfers;
291 Callbacks->EvtDefaultEndpointUpdate = EvtDefaultEndpointUpdate;
292}
293
294/* PEVT_ spellings from older headers */
304
305/* Class entry points */
306
307typedef
311(NTAPI *PFN_UCXENDPOINTCREATE)(
312 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
313 _In_ UCXUSBDEVICE UsbDevice,
316 _Out_ UCXENDPOINT *Endpoint);
317
318typedef
321UCXSSTREAMS
322(NTAPI *PFN_UCXENDPOINTGETSTATICSTREAMSREFERENCED)(
323 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
324 _In_ UCXENDPOINT Endpoint,
326
327typedef
329VOID
330(NTAPI *PFN_UCXENDPOINTNEEDTOCANCELTRANSFERS)(
331 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
332 _In_ UCXENDPOINT Endpoint);
333
334typedef
337 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
339 _In_ PUCX_ENDPOINT_EVENT_CALLBACKS EventCallbacks);
340
341typedef
344 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
347
348typedef
351 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
352 _In_ UCXENDPOINT Endpoint,
353 _In_ WDFQUEUE WdfQueue);
354
355typedef
357VOID
358(NTAPI *PFN_UCXENDPOINTPURGECOMPLETE)(
359 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
360 _In_ UCXENDPOINT Endpoint);
361
362typedef
364VOID
365(NTAPI *PFN_UCXENDPOINTABORTCOMPLETE)(
366 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
367 _In_ UCXENDPOINT Endpoint);
368
369typedef
371VOID
372(NTAPI *PFN_UCXENDPOINTNOPINGRESPONSEERROR)(
373 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
374 _In_ UCXENDPOINT Endpoint);
375
380NTAPI
381UcxEndpointCreate(
382 _In_ UCXUSBDEVICE UsbDevice,
385 _Out_ UCXENDPOINT *Endpoint)
386{
387 PFN_UCXENDPOINTCREATE Create;
388
391}
392
397UCXSSTREAMS
398NTAPI
399UcxEndpointGetStaticStreamsReferenced(
400 _In_ UCXENDPOINT Endpoint,
401 _In_ PVOID Tag)
402{
403 PFN_UCXENDPOINTGETSTATICSTREAMSREFERENCED GetStreams;
404
405 GetStreams = UCX_BOUND_FUNCTION(PFN_UCXENDPOINTGETSTATICSTREAMSREFERENCED,
408}
409
412VOID
413NTAPI
414UcxEndpointNeedToCancelTransfers(
415 _In_ UCXENDPOINT Endpoint)
416{
417 PFN_UCXENDPOINTNEEDTOCANCELTRANSFERS NeedToCancel;
418
419 NeedToCancel = UCX_BOUND_FUNCTION(PFN_UCXENDPOINTNEEDTOCANCELTRANSFERS,
421 NeedToCancel(UcxDriverGlobals, Endpoint);
422}
423
425VOID
426NTAPI
429 _In_ PUCX_ENDPOINT_EVENT_CALLBACKS EventCallbacks)
430{
432
435 SetCallbacks(UcxDriverGlobals, EndpointInit, EventCallbacks);
436}
437
439VOID
440NTAPI
444{
446
449 SetCallbacks(UcxDriverGlobals, EndpointInit, EventCallbacks);
450}
451
453VOID
454NTAPI
456 _In_ UCXENDPOINT Endpoint,
457 _In_ WDFQUEUE WdfQueue)
458{
460
462 SetQueue(UcxDriverGlobals, Endpoint, WdfQueue);
463}
464
467VOID
468NTAPI
469UcxEndpointPurgeComplete(
470 _In_ UCXENDPOINT Endpoint)
471{
472 PFN_UCXENDPOINTPURGECOMPLETE PurgeComplete;
473
474 PurgeComplete = UCX_BOUND_FUNCTION(PFN_UCXENDPOINTPURGECOMPLETE,
477}
478
481VOID
482NTAPI
483UcxEndpointAbortComplete(
484 _In_ UCXENDPOINT Endpoint)
485{
486 PFN_UCXENDPOINTABORTCOMPLETE AbortComplete;
487
488 AbortComplete = UCX_BOUND_FUNCTION(PFN_UCXENDPOINTABORTCOMPLETE,
490 AbortComplete(UcxDriverGlobals, Endpoint);
491}
492
495VOID
496NTAPI
497UcxEndpointNoPingResponseError(
498 _In_ UCXENDPOINT Endpoint)
499{
500 PFN_UCXENDPOINTNOPINGRESPONSEERROR NoPingResponse;
501
502 NoPingResponse = UCX_BOUND_FUNCTION(PFN_UCXENDPOINTNOPINGRESPONSEERROR,
504 NoPingResponse(UcxDriverGlobals, Endpoint);
505}
506
#define VOID
Definition: acefi.h:82
LONG NTSTATUS
Definition: precomp.h:26
const struct winhelp_callbacks Callbacks
Definition: callback.c:161
_In_ ULONG Attributes
Definition: dispmprt.h:1077
#define NTSTATUS
Definition: precomp.h:19
#define _IRQL_requires_same_
Definition: driverspecs.h:232
#define PASSIVE_LEVEL
Definition: env_spec_w32.h:693
#define DISPATCH_LEVEL
Definition: env_spec_w32.h:696
_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 _Function_class_(n)
Definition: no_sal2.h:398
UCXENDPOINT DefaultEndpoint
Definition: ucxendpoint.h:55
_Field_size_(EndpointsEnabledAndUnchangedCount) UCXENDPOINT *EndpointsEnabledAndUnchanged
ULONG EndpointsToDisableCount
Definition: ucxendpoint.h:32
ENDPOINTS_CONFIGURE_FAILURE_FLAGS FailureFlags
Definition: ucxendpoint.h:36
ULONG EndpointsEnabledAndUnchangedCount
Definition: ucxendpoint.h:34
ULONG EndpointsToEnableCount
Definition: ucxendpoint.h:30
_Field_size_(EndpointsToDisableCount) UCXENDPOINT *EndpointsToDisable
_Field_size_(EndpointsToEnableCount) UCXENDPOINT *EndpointsToEnable
ENDPOINT_RESET_FLAGS Flags
Definition: ucxendpoint.h:49
UCXENDPOINT Endpoint
Definition: ucxendpoint.h:48
PFN_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS EvtEndpointOkToCancelTransfers
Definition: ucxendpoint.h:268
PFN_UCX_ENDPOINT_PURGE EvtEndpointPurge
Definition: ucxendpoint.h:265
PFN_UCX_ENDPOINT_START EvtEndpointStart
Definition: ucxendpoint.h:266
PFN_UCX_ENDPOINT_ABORT EvtEndpointAbort
Definition: ucxendpoint.h:267
PFN_UCX_DEFAULT_ENDPOINT_UPDATE EvtDefaultEndpointUpdate
Definition: ucxendpoint.h:269
UCX_ENDPOINT_CHARACTERISTIC_TYPE CharacteristicType
Definition: ucxendpoint.h:81
UCX_CONTROLLER_ENDPOINT_CHARACTERISTIC_PRIORITY Priority
Definition: ucxendpoint.h:84
PFN_UCX_ENDPOINT_SET_CHARACTERISTIC EvtEndpointSetCharacteristic
Definition: ucxendpoint.h:231
PFN_UCX_ENDPOINT_STATIC_STREAMS_ADD EvtEndpointStaticStreamsAdd
Definition: ucxendpoint.h:226
PFN_UCX_ENDPOINT_START EvtEndpointStart
Definition: ucxendpoint.h:222
PFN_UCX_ENDPOINT_STATIC_STREAMS_DISABLE EvtEndpointStaticStreamsDisable
Definition: ucxendpoint.h:228
PFN_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS EvtEndpointOkToCancelTransfers
Definition: ucxendpoint.h:225
PFN_UCX_ENDPOINT_ABORT EvtEndpointAbort
Definition: ucxendpoint.h:223
PFN_UCX_ENDPOINT_PURGE EvtEndpointPurge
Definition: ucxendpoint.h:221
PFN_UCX_ENDPOINT_RESET EvtEndpointReset
Definition: ucxendpoint.h:224
PFN_UCX_ENDPOINT_STATIC_STREAMS_ENABLE EvtEndpointStaticStreamsEnable
Definition: ucxendpoint.h:227
PFN_UCX_ENDPOINT_GET_ISOCH_TRANSFER_PATH_DELAYS EvtEndpointGetIsochTransferPathDelays
Definition: ucxendpoint.h:230
unsigned char UCHAR
Definition: typedefs.h:53
#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_ WDFREQUEST Request
EVT_UCX_ENDPOINT_START * PFN_UCX_ENDPOINT_START
Definition: ucxendpoint.h:120
_Inout_ PUCX_ENDPOINT_ISOCH_TRANSFER_PATH_DELAYS UcxEndpointTransferPathDelays
Definition: ucxendpoint.h:204
PFN_UCX_ENDPOINT_STATIC_STREAMS_ADD PEVT_UCX_ENDPOINT_STATIC_STREAMS_ADD
Definition: ucxendpoint.h:301
EVT_UCX_ENDPOINT_SET_CHARACTERISTIC * PFN_UCX_ENDPOINT_SET_CHARACTERISTIC
Definition: ucxendpoint.h:216
_In_ ULONG _In_ PUCXSSTREAMS_INIT UcxStaticStreamsInit
Definition: ucxendpoint.h:166
struct _UCX_ENDPOINT_ISOCH_TRANSFER_PATH_DELAYS * PUCX_ENDPOINT_ISOCH_TRANSFER_PATH_DELAYS
struct _UCX_ENDPOINT_EVENT_CALLBACKS UCX_ENDPOINT_EVENT_CALLBACKS
struct _UCX_ENDPOINT_EVENT_CALLBACKS * PUCX_ENDPOINT_EVENT_CALLBACKS
_Must_inspect_result_ _In_ UCXUSBDEVICE UsbDevice
Definition: ucxendpoint.h:313
_Must_inspect_result_ _In_ UCXENDPOINT _In_ PVOID Tag
Definition: ucxendpoint.h:325
_UCX_ENDPOINT_CHARACTERISTIC_TYPE
Definition: ucxendpoint.h:66
@ UCX_ENDPOINT_CHARACTERISTIC_TYPE_PRIORITY
Definition: ucxendpoint.h:67
_Must_inspect_result_ _IRQL_requires_(PASSIVE_LEVEL) NTSTATUS(NTAPI *PFN_UCXENDPOINTCREATE)(_In_ PUCX_DRIVER_GLOBALS DriverGlobals
Definition: ucxendpoint.h:309
PFN_UCX_ENDPOINT_RESET PEVT_UCX_ENDPOINT_RESET
Definition: ucxendpoint.h:295
FORCEINLINE VOID NTAPI UCX_ENDPOINT_EVENT_CALLBACKS_INIT(_Out_ PUCX_ENDPOINT_EVENT_CALLBACKS Callbacks, _In_ PFN_UCX_ENDPOINT_PURGE EvtEndpointPurge, _In_ PFN_UCX_ENDPOINT_START EvtEndpointStart, _In_ PFN_UCX_ENDPOINT_ABORT EvtEndpointAbort, _In_ PFN_UCX_ENDPOINT_RESET EvtEndpointReset, _In_ PFN_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS EvtEndpointOkToCancelTransfers, _In_ PFN_UCX_ENDPOINT_STATIC_STREAMS_ADD EvtEndpointStaticStreamsAdd, _In_ PFN_UCX_ENDPOINT_STATIC_STREAMS_ENABLE EvtEndpointStaticStreamsEnable, _In_ PFN_UCX_ENDPOINT_STATIC_STREAMS_DISABLE EvtEndpointStaticStreamsDisable)
Definition: ucxendpoint.h:237
EVT_UCX_ENDPOINT_RESET * PFN_UCX_ENDPOINT_RESET
Definition: ucxendpoint.h:98
_ENDPOINT_RESET_FLAGS
Definition: ucxendpoint.h:15
@ FlagEndpointResetPreserveTransferState
Definition: ucxendpoint.h:16
EVT_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS * PFN_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS
Definition: ucxendpoint.h:141
Create
Definition: ucxendpoint.h:389
EVT_UCX_ENDPOINT_GET_ISOCH_TRANSFER_PATH_DELAYS * PFN_UCX_ENDPOINT_GET_ISOCH_TRANSFER_PATH_DELAYS
Definition: ucxendpoint.h:205
FORCEINLINE VOID NTAPI UcxDefaultEndpointInitSetEventCallbacks(_Inout_ PUCXENDPOINT_INIT EndpointInit, _In_ PUCX_DEFAULT_ENDPOINT_EVENT_CALLBACKS EventCallbacks)
Definition: ucxendpoint.h:441
_In_ UCXSSTREAMS UcxStaticStreams
Definition: ucxendpoint.h:177
PFN_UCX_ENDPOINT_ABORT PEVT_UCX_ENDPOINT_ABORT
Definition: ucxendpoint.h:298
struct _ENDPOINTS_CONFIGURE_FAILURE_FLAGS ENDPOINTS_CONFIGURE_FAILURE_FLAGS
PFN_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS PEVT_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS
Definition: ucxendpoint.h:299
EVT_UCX_DEFAULT_ENDPOINT_UPDATE * PFN_UCX_DEFAULT_ENDPOINT_UPDATE
Definition: ucxendpoint.h:152
EVT_UCX_ENDPOINT_PURGE * PFN_UCX_ENDPOINT_PURGE
Definition: ucxendpoint.h:109
struct _ENDPOINT_RESET ENDPOINT_RESET
_UCX_ENDPOINT_CHARACTERISTIC_PRIORITY
Definition: ucxendpoint.h:71
@ UCX_ENDPOINT_CHARACTERISTIC_PRIORITY_BULK_VOICE
Definition: ucxendpoint.h:74
@ UCX_ENDPOINT_CHARACTERISTIC_PRIORITY_BULK_INTERACTIVE
Definition: ucxendpoint.h:75
@ UCX_ENDPOINT_CHARACTERISTIC_PRIORITY_BULK_VIDEO
Definition: ucxendpoint.h:73
@ UCX_ENDPOINT_CHARACTERISTIC_PRIORITY_NONE
Definition: ucxendpoint.h:72
EVT_UCX_ENDPOINT_STATIC_STREAMS_ENABLE * PFN_UCX_ENDPOINT_STATIC_STREAMS_ENABLE
Definition: ucxendpoint.h:179
FORCEINLINE VOID NTAPI UcxEndpointInitSetEventCallbacks(_Inout_ PUCXENDPOINT_INIT EndpointInit, _In_ PUCX_ENDPOINT_EVENT_CALLBACKS EventCallbacks)
Definition: ucxendpoint.h:427
PFN_UCX_ENDPOINT_START PEVT_UCX_ENDPOINT_START
Definition: ucxendpoint.h:297
_Must_inspect_result_ _In_ UCXUSBDEVICE _Inout_ PUCXENDPOINT_INIT _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXENDPOINT * Endpoint
Definition: ucxendpoint.h:316
struct _DEFAULT_ENDPOINT_UPDATE * PDEFAULT_ENDPOINT_UPDATE
EVT_UCX_ENDPOINT_ABORT * PFN_UCX_ENDPOINT_ABORT
Definition: ucxendpoint.h:131
struct _UCX_ENDPOINT_ISOCH_TRANSFER_PATH_DELAYS UCX_ENDPOINT_ISOCH_TRANSFER_PATH_DELAYS
FORCEINLINE VOID NTAPI UCX_DEFAULT_ENDPOINT_EVENT_CALLBACKS_INIT(_Out_ PUCX_DEFAULT_ENDPOINT_EVENT_CALLBACKS Callbacks, _In_ PFN_UCX_ENDPOINT_PURGE EvtEndpointPurge, _In_ PFN_UCX_ENDPOINT_START EvtEndpointStart, _In_ PFN_UCX_ENDPOINT_ABORT EvtEndpointAbort, _In_ PFN_UCX_ENDPOINT_OK_TO_CANCEL_TRANSFERS EvtEndpointOkToCancelTransfers, _In_ PFN_UCX_DEFAULT_ENDPOINT_UPDATE EvtDefaultEndpointUpdate)
Definition: ucxendpoint.h:276
struct _ENDPOINTS_CONFIGURE ENDPOINTS_CONFIGURE
_Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) UCXSSTREAMS(NTAPI *PFN_UCXENDPOINTGETSTATICSTREAMSREFERENCED)(_In_ PUCX_DRIVER_GLOBALS DriverGlobals
Definition: ucxendpoint.h:320
GetStreams
Definition: ucxendpoint.h:405
struct _UCX_DEFAULT_ENDPOINT_EVENT_CALLBACKS * PUCX_DEFAULT_ENDPOINT_EVENT_CALLBACKS
_In_ PUCX_ENDPOINT_CHARACTERISTIC UcxEndpointCharacteristic
Definition: ucxendpoint.h:215
struct _UCX_DEFAULT_ENDPOINT_EVENT_CALLBACKS UCX_DEFAULT_ENDPOINT_EVENT_CALLBACKS
VOID(NTAPI * PFN_UCXENDPOINTSETWDFIOQUEUE)(_In_ PUCX_DRIVER_GLOBALS DriverGlobals, _In_ UCXENDPOINT Endpoint, _In_ WDFQUEUE WdfQueue)
Definition: ucxendpoint.h:350
struct _DEFAULT_ENDPOINT_UPDATE DEFAULT_ENDPOINT_UPDATE
struct _ENDPOINT_RESET * PENDPOINT_RESET
PFN_UCX_DEFAULT_ENDPOINT_UPDATE PEVT_UCX_DEFAULT_ENDPOINT_UPDATE
Definition: ucxendpoint.h:300
_Must_inspect_result_ _In_ UCXUSBDEVICE _Inout_ PUCXENDPOINT_INIT _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
Definition: ucxendpoint.h:315
_In_ UCXENDPOINT UcxEndpoint
Definition: ucxendpoint.h:96
struct _ENDPOINTS_CONFIGURE * PENDPOINTS_CONFIGURE
EVT_UCX_ENDPOINT_STATIC_STREAMS_DISABLE * PFN_UCX_ENDPOINT_STATIC_STREAMS_DISABLE
Definition: ucxendpoint.h:191
FORCEINLINE VOID NTAPI UcxEndpointSetWdfIoQueue(_In_ UCXENDPOINT Endpoint, _In_ WDFQUEUE WdfQueue)
Definition: ucxendpoint.h:455
struct _UCX_ENDPOINT_CHARACTERISTIC * PUCX_ENDPOINT_CHARACTERISTIC
enum _UCX_ENDPOINT_CHARACTERISTIC_TYPE UCX_ENDPOINT_CHARACTERISTIC_TYPE
struct _UCX_ENDPOINT_CHARACTERISTIC UCX_ENDPOINT_CHARACTERISTIC
enum _UCX_ENDPOINT_CHARACTERISTIC_PRIORITY UCX_CONTROLLER_ENDPOINT_CHARACTERISTIC_PRIORITY
_Must_inspect_result_ _In_ UCXUSBDEVICE _Inout_ PUCXENDPOINT_INIT * EndpointInit
Definition: ucxendpoint.h:314
VOID(NTAPI * PFN_UCXENDPOINTINITSETEVENTCALLBACKS)(_In_ PUCX_DRIVER_GLOBALS DriverGlobals, _Inout_ PUCXENDPOINT_INIT EndpointInit, _In_ PUCX_ENDPOINT_EVENT_CALLBACKS EventCallbacks)
Definition: ucxendpoint.h:336
WDF_EXTERN_C_START enum _ENDPOINT_RESET_FLAGS ENDPOINT_RESET_FLAGS
PFN_UCX_ENDPOINT_STATIC_STREAMS_DISABLE PEVT_UCX_ENDPOINT_STATIC_STREAMS_DISABLE
Definition: ucxendpoint.h:303
PFN_UCX_ENDPOINT_PURGE PEVT_UCX_ENDPOINT_PURGE
Definition: ucxendpoint.h:296
EVT_UCX_ENDPOINT_STATIC_STREAMS_ADD * PFN_UCX_ENDPOINT_STATIC_STREAMS_ADD
Definition: ucxendpoint.h:167
PFN_UCX_ENDPOINT_STATIC_STREAMS_ENABLE PEVT_UCX_ENDPOINT_STATIC_STREAMS_ENABLE
Definition: ucxendpoint.h:302
VOID(NTAPI * PFN_UCXDEFAULTENDPOINTINITSETEVENTCALLBACKS)(_In_ PUCX_DRIVER_GLOBALS DriverGlobals, _Inout_ PUCXENDPOINT_INIT EndpointInit, _In_ PUCX_DEFAULT_ENDPOINT_EVENT_CALLBACKS EventCallbacks)
Definition: ucxendpoint.h:343
_In_ ULONG NumberOfStreams
Definition: ucxendpoint.h:165
@ UcxEndpointInitSetEventCallbacksTableIndex
Definition: ucxfuncenum.h:26
@ UcxEndpointPurgeCompleteTableIndex
Definition: ucxfuncenum.h:29
@ UcxEndpointGetStaticStreamsReferencedTableIndex
Definition: ucxfuncenum.h:24
@ UcxEndpointSetWdfIoQueueTableIndex
Definition: ucxfuncenum.h:28
@ UcxEndpointNeedToCancelTransfersTableIndex
Definition: ucxfuncenum.h:25
@ UcxEndpointNoPingResponseErrorTableIndex
Definition: ucxfuncenum.h:31
@ UcxDefaultEndpointInitSetEventCallbacksTableIndex
Definition: ucxfuncenum.h:27
@ UcxEndpointCreateTableIndex
Definition: ucxfuncenum.h:23
@ UcxEndpointAbortCompleteTableIndex
Definition: ucxfuncenum.h:30
#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 _UCXSSTREAMS_INIT * PUCXSSTREAMS_INIT
Definition: ucxobjects.h:21
#define WDF_EXTERN_C_END
Definition: wdf.h:38
#define WDF_EXTERN_C_START
Definition: wdf.h:37
_In_ WDFQUEUE _In_opt_ PFN_WDF_IO_QUEUE_STATE PurgeComplete
Definition: wdfio.h:1030
#define FORCEINLINE
Definition: wdftypes.h:67