ReactOS 0.4.17-dev-1037-g720d112
ucxcontroller.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 controller object interface
5 * COPYRIGHT: Copyright 2026 Justin Miller <justinmiller100@gmail.com>
6 */
7
8#pragma once
9
10#include "ucxusbdevice.h"
11
13
15{
21
23{
27
28/* A controller answering yes wants Clear TT Buffer sent when an async
29 * transfer to a low or full speed device behind a TT is canceled */
30DEFINE_GUID(GUID_USB_CAPABILITY_CLEAR_TT_BUFFER_ON_ASYNC_TRANSFER_CANCEL,
31 0x09b76d52, 0x0a6d, 0x4e4f, 0xa9, 0x11, 0xd0, 0x36, 0xd1, 0x92, 0x94, 0x97);
32
33#define MAX_VENDOR_ID_STRING_LENGTH 5
34#define MAX_DEVICE_ID_STRING_LENGTH 5
35#define MAX_REVISION_ID_STRING_LENGTH 5
36#define MAX_GENERIC_USB_CONTROLLER_NAME_SIZE 40
37
39{
47
49{
54
56{
58 struct
59 {
64
66{
71
72typedef
73_Function_class_(EVT_UCX_CONTROLLER_QUERY_USB_CAPABILITY)
78EVT_UCX_CONTROLLER_QUERY_USB_CAPABILITY(
79 _In_ UCXCONTROLLER UcxController,
84typedef EVT_UCX_CONTROLLER_QUERY_USB_CAPABILITY *PFN_UCX_CONTROLLER_QUERY_USB_CAPABILITY;
85
86typedef
87_Function_class_(EVT_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER)
92EVT_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER(
93 _In_ UCXCONTROLLER UcxController,
95typedef EVT_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER *PFN_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER;
96
97typedef
98_Function_class_(EVT_UCX_CONTROLLER_USBDEVICE_ADD)
103NTAPI
104EVT_UCX_CONTROLLER_USBDEVICE_ADD(
105 _In_ UCXCONTROLLER UcxController,
108typedef EVT_UCX_CONTROLLER_USBDEVICE_ADD *PFN_UCX_CONTROLLER_USBDEVICE_ADD;
109
110typedef
111_Function_class_(EVT_UCX_CONTROLLER_RESET)
114VOID
115NTAPI
116EVT_UCX_CONTROLLER_RESET(
117 _In_ UCXCONTROLLER UcxController);
118typedef EVT_UCX_CONTROLLER_RESET *PFN_UCX_CONTROLLER_RESET;
119
120typedef
121_Function_class_(EVT_UCX_CONTROLLER_GET_TRANSPORT_CHARACTERISTICS)
125NTAPI
126EVT_UCX_CONTROLLER_GET_TRANSPORT_CHARACTERISTICS(
127 _In_ UCXCONTROLLER UcxController,
129typedef EVT_UCX_CONTROLLER_GET_TRANSPORT_CHARACTERISTICS *PFN_UCX_CONTROLLER_GET_TRANSPORT_CHARACTERISTICS;
130
131typedef
132_Function_class_(EVT_UCX_CONTROLLER_SET_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION)
135VOID
136NTAPI
137EVT_UCX_CONTROLLER_SET_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION(
138 _In_ UCXCONTROLLER UcxController,
140typedef EVT_UCX_CONTROLLER_SET_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION
142
143typedef
144_Function_class_(EVT_UCX_CONTROLLER_START_TRACKING_FOR_TIME_SYNC)
147VOID
148NTAPI
149EVT_UCX_CONTROLLER_START_TRACKING_FOR_TIME_SYNC(
150 _In_ UCXCONTROLLER UcxController,
151 _In_ WDFREQUEST WdfRequest,
154typedef EVT_UCX_CONTROLLER_START_TRACKING_FOR_TIME_SYNC *PFN_UCX_CONTROLLER_START_TRACKING_FOR_TIME_SYNC;
155
156typedef
157_Function_class_(EVT_UCX_CONTROLLER_STOP_TRACKING_FOR_TIME_SYNC)
160VOID
161NTAPI
162EVT_UCX_CONTROLLER_STOP_TRACKING_FOR_TIME_SYNC(
163 _In_ UCXCONTROLLER UcxController,
164 _In_ WDFREQUEST WdfRequest,
166 _In_ size_t InputBufferLength);
167typedef EVT_UCX_CONTROLLER_STOP_TRACKING_FOR_TIME_SYNC *PFN_UCX_CONTROLLER_STOP_TRACKING_FOR_TIME_SYNC;
168
169typedef
170_Function_class_(EVT_UCX_CONTROLLER_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC)
173VOID
174NTAPI
175EVT_UCX_CONTROLLER_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC(
176 _In_ UCXCONTROLLER UcxController,
177 _In_ WDFREQUEST WdfRequest,
179 _In_ size_t InputBufferLength);
180typedef EVT_UCX_CONTROLLER_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC
182
184{
198
199 /* Reported as is through GUID_USB_WMI_NODE_INFO */
201
212
214VOID
215NTAPI
217 _Out_writes_z_(DestinationSize) PCHAR Destination,
218 _In_ SIZE_T DestinationSize,
220{
221 SIZE_T Index = 0;
222
223 if (DestinationSize == 0)
224 return;
225
226 while (Index + 1 < DestinationSize && Source[Index] != ANSI_NULL)
227 {
229 Index++;
230 }
231
233}
234
237VOID
238NTAPI
242{
243 RtlZeroMemory(Config, sizeof(*Config));
244 Config->Size = sizeof(*Config);
245
246 Config->NumberOfPresentedDeviceMgmtEvtCallbacks = MAXULONG;
247
249 Config->PciDeviceInfo.VendorId = MAXLONG;
250 Config->PciDeviceInfo.DeviceId = MAXLONG;
251
252 UcxpCopyAnsiString((PCHAR)Config->DeviceDescription,
253 sizeof(Config->DeviceDescription),
255}
256
258VOID
259NTAPI
262 _In_ ULONG VendorId,
263 _In_ ULONG DeviceId,
264 _In_ USHORT RevisionId,
267 _In_ ULONG FunctionNumber)
268{
269 PUCX_CONTROLLER_PCI_INFORMATION Pci = &Config->PciDeviceInfo;
270
271 Pci->VendorId = VendorId;
272 Pci->DeviceId = DeviceId;
273 Pci->RevisionId = RevisionId;
274 Pci->BusNumber = BusNumber;
276 Pci->FunctionNumber = FunctionNumber;
277
278 Config->ParentBusType = UcxControllerParentBusTypePci;
279}
280
282VOID
283NTAPI
289{
290 PUCX_CONTROLLER_ACPI_INFORMATION Acpi = &Config->AcpiDeviceInfo;
291
292 UcxpCopyAnsiString(Acpi->VendorId, sizeof(Acpi->VendorId), VendorId);
293 UcxpCopyAnsiString(Acpi->DeviceId, sizeof(Acpi->DeviceId), DeviceId);
294 UcxpCopyAnsiString(Acpi->RevisionId, sizeof(Acpi->RevisionId), RevisionId);
295
296 Config->ParentBusType = UcxControllerParentBusTypeAcpi;
297}
298
300{
305
307VOID
308NTAPI
311 _In_ UCX_CONTROLLER_STATE UcxControllerState,
312 _In_ BOOLEAN UcxCoordinated)
313{
315 UcxControllerResetCompleteInfo->Size = sizeof(*UcxControllerResetCompleteInfo);
316 UcxControllerResetCompleteInfo->UcxControllerState = UcxControllerState;
317 UcxControllerResetCompleteInfo->UcxCoordinated = UcxCoordinated;
318}
319
320/* PEVT_ spellings from older headers */
325
326/* Class entry points */
327
328typedef
332(NTAPI *PFN_UCXIODEVICECONTROL)(
333 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
334 _In_ WDFDEVICE Device,
335 _In_ WDFREQUEST Request,
337 _In_ size_t InputBufferLength,
339
340typedef
344(NTAPI *PFN_UCXCONTROLLERCREATE)(
345 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
346 _In_ WDFDEVICE Device,
349 _Out_ UCXCONTROLLER *Controller);
350
351typedef
353VOID
354(NTAPI *PFN_UCXCONTROLLERNEEDSRESET)(
355 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
356 _In_ UCXCONTROLLER Controller);
357
358typedef
360VOID
361(NTAPI *PFN_UCXCONTROLLERRESETCOMPLETE)(
362 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
363 _In_ UCXCONTROLLER Controller,
365
366typedef
368VOID
369(NTAPI *PFN_UCXCONTROLLERSETFAILED)(
370 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
371 _In_ UCXCONTROLLER Controller);
372
373typedef
376(NTAPI *PFN_UCXCONTROLLERSETIDSTRINGS)(
377 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
378 _In_ UCXCONTROLLER Controller,
382
383typedef
385VOID
386(NTAPI *PFN_UCXCONTROLLERNOTIFYTRANSPORTCHARACTERISTICSCHANGE)(
387 _In_ PUCX_DRIVER_GLOBALS DriverGlobals,
388 _In_ UCXCONTROLLER Controller,
390
396NTAPI
397UcxIoDeviceControl(
398 _In_ WDFDEVICE Device,
399 _In_ WDFREQUEST Request,
401 _In_ size_t InputBufferLength,
403{
404 PFN_UCXIODEVICECONTROL DeviceControl;
405
408 Device,
409 Request,
413}
414
419NTAPI
420UcxControllerCreate(
421 _In_ WDFDEVICE Device,
424 _Out_ UCXCONTROLLER *Controller)
425{
426 PFN_UCXCONTROLLERCREATE Create;
427
430}
431
434VOID
435NTAPI
436UcxControllerNeedsReset(
437 _In_ UCXCONTROLLER Controller)
438{
439 PFN_UCXCONTROLLERNEEDSRESET NeedsReset;
440
441 NeedsReset = UCX_BOUND_FUNCTION(PFN_UCXCONTROLLERNEEDSRESET,
443 NeedsReset(UcxDriverGlobals, Controller);
444}
445
448VOID
449NTAPI
450UcxControllerResetComplete(
451 _In_ UCXCONTROLLER Controller,
453{
454 PFN_UCXCONTROLLERRESETCOMPLETE ResetComplete;
455
456 ResetComplete = UCX_BOUND_FUNCTION(PFN_UCXCONTROLLERRESETCOMPLETE,
459}
460
463VOID
464NTAPI
465UcxControllerSetFailed(
466 _In_ UCXCONTROLLER Controller)
467{
468 PFN_UCXCONTROLLERSETFAILED SetFailed;
469
470 SetFailed = UCX_BOUND_FUNCTION(PFN_UCXCONTROLLERSETFAILED, UcxControllerSetFailedTableIndex);
471 SetFailed(UcxDriverGlobals, Controller);
472}
473
477NTAPI
478UcxControllerSetIdStrings(
479 _In_ UCXCONTROLLER Controller,
483{
484 PFN_UCXCONTROLLERSETIDSTRINGS SetIdStrings;
485
486 SetIdStrings = UCX_BOUND_FUNCTION(PFN_UCXCONTROLLERSETIDSTRINGS,
493}
494
497VOID
498NTAPI
499UcxControllerNotifyTransportCharacteristicsChange(
500 _In_ UCXCONTROLLER Controller,
502{
503 PFN_UCXCONTROLLERNOTIFYTRANSPORTCHARACTERISTICSCHANGE Notify;
504
505 Notify = UCX_BOUND_FUNCTION(PFN_UCXCONTROLLERNOTIFYTRANSPORTCHARACTERISTICSCHANGE,
508}
509
#define VOID
Definition: acefi.h:82
unsigned char BOOLEAN
Definition: actypes.h:127
LONG NTSTATUS
Definition: precomp.h:26
_In_ PCHAR _In_ ULONG DeviceNumber
Definition: classpnp.h:1230
_In_ ULONG Attributes
Definition: dispmprt.h:1077
#define NTSTATUS
Definition: precomp.h:19
#define _IRQL_requires_same_
Definition: driverspecs.h:232
#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
_Must_inspect_result_ _In_ PUCXHUB_DEVICE_CREATE_INFO _Out_ UCXUSBDEVICE * Device
Definition: hubucx.h:258
unsigned __int64 ULONG64
Definition: imports.h:198
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
Definition: ndis.h:3169
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
Definition: rtlfuncs.h:3051
#define _In_reads_(s)
Definition: no_sal2.h:168
#define _Out_writes_z_(s)
Definition: no_sal2.h:180
#define _Inout_
Definition: no_sal2.h:162
#define _In_z_
Definition: no_sal2.h:164
#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
#define ANSI_NULL
_In_ ULONG BusNumber
Definition: pciidex.h:65
#define BOOLEAN
Definition: pedump.c:73
unsigned short USHORT
Definition: pedump.c:61
char CHAR
Definition: pedump.c:57
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
CHAR DeviceId[MAX_DEVICE_ID_STRING_LENGTH]
Definition: ucxcontroller.h:51
CHAR RevisionId[MAX_REVISION_ID_STRING_LENGTH]
Definition: ucxcontroller.h:52
CHAR VendorId[MAX_VENDOR_ID_STRING_LENGTH]
Definition: ucxcontroller.h:50
PFN_UCX_CONTROLLER_SET_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION EvtControllerSetTransportCharacteristicsChangeNotification
PFN_UCX_CONTROLLER_USBDEVICE_ADD EvtControllerUsbDeviceAdd
UCX_CONTROLLER_ACPI_INFORMATION AcpiDeviceInfo
UCX_CONTROLLER_PCI_INFORMATION PciDeviceInfo
UNICODE_STRING ModelNumberString
ULONG NumberOfPresentedDeviceMgmtEvtCallbacks
PFN_UCX_CONTROLLER_QUERY_USB_CAPABILITY EvtControllerQueryUsbCapability
PFN_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER EvtControllerGetCurrentFrameNumber
UCX_CONTROLLER_PARENT_BUS_TYPE ParentBusType
PFN_UCX_CONTROLLER_RESET EvtControllerReset
PFN_UCX_CONTROLLER_GET_TRANSPORT_CHARACTERISTICS EvtControllerGetTransportCharacteristics
UNICODE_STRING ModelNameString
UNICODE_STRING ManufacturerNameString
UCX_CONTROLLER_STATE UcxControllerState
#define MAXULONG
Definition: typedefs.h:251
const char * LPCSTR
Definition: typedefs.h:52
uint32_t * PULONG
Definition: typedefs.h:59
char * PSTR
Definition: typedefs.h:51
unsigned char UCHAR
Definition: typedefs.h:53
#define NTAPI
Definition: typedefs.h:36
ULONG_PTR SIZE_T
Definition: typedefs.h:80
const char * PCSTR
Definition: typedefs.h:52
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
uint32_t ULONG
Definition: typedefs.h:59
char * PCHAR
Definition: typedefs.h:51
#define MAX_DEVICE_ID_STRING_LENGTH
Definition: ucxcontroller.h:34
struct _UCX_CONTROLLER_ACPI_INFORMATION UCX_CONTROLLER_ACPI_INFORMATION
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
_Out_ PULONG FrameNumber
Definition: ucxcontroller.h:94
_In_ WDFREQUEST WdfRequest
struct _UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS * PUCX_CONTROLLER_TRANSPORT_CHARACTERISTICS
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXCONTROLLER * Controller
struct _UCX_CONTROLLER_CONFIG UCX_CONTROLLER_CONFIG
PFN_UCX_CONTROLLER_RESET PEVT_UCX_CONTROLLER_RESET
_In_ UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS_CHANGE_FLAGS ChangeNotificationFlags
#define MAX_REVISION_ID_STRING_LENGTH
Definition: ucxcontroller.h:35
_In_ PGUID _In_ ULONG _Out_ PULONG ResultLength
Definition: ucxcontroller.h:83
_In_ UCXCONTROLLER _In_ PUCX_CONTROLLER_RESET_COMPLETE_INFO UcxControllerResetCompleteInfo
PFN_UCX_CONTROLLER_QUERY_USB_CAPABILITY PEVT_UCX_CONTROLLER_QUERY_USB_CAPABILITY
#define MAX_VENDOR_ID_STRING_LENGTH
Definition: ucxcontroller.h:33
_Must_inspect_result_ _In_ WDFDEVICE Device
_Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) BOOLEAN(NTAPI *PFN_UCXIODEVICECONTROL)(_In_ PUCX_DRIVER_GLOBALS DriverGlobals
Frees previously reserved amount of memory in system virtual address space.
_UCX_CONTROLLER_PARENT_BUS_TYPE
Definition: ucxcontroller.h:15
@ UcxControllerParentBusTypeMaUsb
Definition: ucxcontroller.h:19
@ UcxControllerParentBusTypeCustom
Definition: ucxcontroller.h:16
@ UcxControllerParentBusTypePci
Definition: ucxcontroller.h:17
@ UcxControllerParentBusTypeAcpi
Definition: ucxcontroller.h:18
PFN_UCX_CONTROLLER_USBDEVICE_ADD PEVT_UCX_CONTROLLER_USBDEVICE_ADD
EVT_UCX_CONTROLLER_USBDEVICE_ADD * PFN_UCX_CONTROLLER_USBDEVICE_ADD
EVT_UCX_CONTROLLER_QUERY_USB_CAPABILITY * PFN_UCX_CONTROLLER_QUERY_USB_CAPABILITY
Definition: ucxcontroller.h:84
FORCEINLINE VOID NTAPI UCX_CONTROLLER_CONFIG_INIT(_Out_ PUCX_CONTROLLER_CONFIG Config, _In_ LPCSTR DeviceDescription)
PFN_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER PEVT_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER
_UCX_CONTROLLER_STATE
Definition: ucxcontroller.h:23
@ UcxControllerStatePreserved
Definition: ucxcontroller.h:25
@ UcxControllerStateLost
Definition: ucxcontroller.h:24
_In_ PGUID _In_ ULONG _Out_writes_bytes_opt_(OutputBufferLength) PVOID OutputBuffer
Definition: ucxcontroller.h:82
_In_ UCXCONTROLLER _In_ PUNICODE_STRING ManufacturerNameString
_In_ UCXCONTROLLER _In_ PUNICODE_STRING _In_ PUNICODE_STRING _In_ PUNICODE_STRING ModelNumberString
struct _UCX_CONTROLLER_PCI_INFORMATION UCX_CONTROLLER_PCI_INFORMATION
Create
EVT_UCX_CONTROLLER_GET_TRANSPORT_CHARACTERISTICS * PFN_UCX_CONTROLLER_GET_TRANSPORT_CHARACTERISTICS
_In_ PGUID CapabilityType
Definition: ucxcontroller.h:80
#define MAX_GENERIC_USB_CONTROLLER_NAME_SIZE
Definition: ucxcontroller.h:36
struct _UCX_CONTROLLER_RESET_COMPLETE_INFO UCX_CONTROLLER_RESET_COMPLETE_INFO
struct _UCX_CONTROLLER_PCI_INFORMATION * PUCX_CONTROLLER_PCI_INFORMATION
struct _UCX_CONTROLLER_ACPI_INFORMATION * PUCX_CONTROLLER_ACPI_INFORMATION
EVT_UCX_CONTROLLER_SET_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION * PFN_UCX_CONTROLLER_SET_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION
EVT_UCX_CONTROLLER_RESET * PFN_UCX_CONTROLLER_RESET
EVT_UCX_CONTROLLER_START_TRACKING_FOR_TIME_SYNC * PFN_UCX_CONTROLLER_START_TRACKING_FOR_TIME_SYNC
union _UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS_CHANGE_FLAGS UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS_CHANGE_FLAGS
enum _UCX_CONTROLLER_STATE UCX_CONTROLLER_STATE
_In_ UCXCONTROLLER _In_ PUNICODE_STRING _In_ PUNICODE_STRING ModelNameString
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG Config
FORCEINLINE VOID NTAPI UCX_CONTROLLER_RESET_COMPLETE_INFO_INIT(_Out_ PUCX_CONTROLLER_RESET_COMPLETE_INFO UcxControllerResetCompleteInfo, _In_ UCX_CONTROLLER_STATE UcxControllerState, _In_ BOOLEAN UcxCoordinated)
EVT_UCX_CONTROLLER_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC * PFN_UCX_CONTROLLER_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC
EVT_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER * PFN_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER
Definition: ucxcontroller.h:95
_In_ PUCXUSBDEVICE_INFO UcxUsbDeviceInfo
struct _UCX_CONTROLLER_CONFIG * PUCX_CONTROLLER_CONFIG
struct _UCX_CONTROLLER_RESET_COMPLETE_INFO * PUCX_CONTROLLER_RESET_COMPLETE_INFO
FORCEINLINE VOID NTAPI UcxpCopyAnsiString(_Out_writes_z_(DestinationSize) PCHAR Destination, _In_ SIZE_T DestinationSize, _In_z_ PCSTR Source)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
FORCEINLINE VOID NTAPI UCX_CONTROLLER_CONFIG_SET_PCI_INFO(_Inout_ PUCX_CONTROLLER_CONFIG Config, _In_ ULONG VendorId, _In_ ULONG DeviceId, _In_ USHORT RevisionId, _In_ ULONG BusNumber, _In_ ULONG DeviceNumber, _In_ ULONG FunctionNumber)
FORCEINLINE VOID NTAPI UCX_CONTROLLER_CONFIG_SET_ACPI_INFO(_Inout_ PUCX_CONTROLLER_CONFIG Config, _In_reads_(MAX_VENDOR_ID_STRING_LENGTH) PSTR VendorId, _In_reads_(MAX_DEVICE_ID_STRING_LENGTH) PSTR DeviceId, _In_reads_(MAX_REVISION_ID_STRING_LENGTH) PSTR RevisionId)
struct _UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS
_In_ PUCXUSBDEVICE_INFO _In_ PUCXUSBDEVICE_INIT UsbDeviceInit
Notify
DeviceControl
EVT_UCX_CONTROLLER_STOP_TRACKING_FOR_TIME_SYNC * PFN_UCX_CONTROLLER_STOP_TRACKING_FOR_TIME_SYNC
_In_ PGUID _In_ ULONG OutputBufferLength
Definition: ucxcontroller.h:81
SetIdStrings
_Out_ PUCX_CONTROLLER_TRANSPORT_CHARACTERISTICS UcxControllerTransportCharacteristics
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
WDF_EXTERN_C_START enum _UCX_CONTROLLER_PARENT_BUS_TYPE UCX_CONTROLLER_PARENT_BUS_TYPE
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST Request
ResetComplete
@ UcxIoDeviceControlTableIndex
Definition: ucxfuncenum.h:13
@ UcxControllerSetIdStringsTableIndex
Definition: ucxfuncenum.h:35
@ UcxControllerCreateTableIndex
Definition: ucxfuncenum.h:14
@ UcxControllerResetCompleteTableIndex
Definition: ucxfuncenum.h:16
@ UcxControllerSetFailedTableIndex
Definition: ucxfuncenum.h:17
@ UcxControllerNeedsResetTableIndex
Definition: ucxfuncenum.h:15
@ UcxControllerNotifyTransportCharacteristicsChangeTableIndex
Definition: ucxfuncenum.h:36
#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 _UCXUSBDEVICE_INIT * PUCXUSBDEVICE_INIT
Definition: ucxobjects.h:19
#define MAXLONG
Definition: umtypes.h:116
struct _UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS_CHANGE_FLAGS::@4577 UCX_ANONYMOUS_FLAGS
#define WDF_EXTERN_C_END
Definition: wdf.h:38
#define WDF_EXTERN_C_START
Definition: wdf.h:37
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
Definition: wdfiotarget.h:863
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
Definition: wdfpdo.h:432
#define FORCEINLINE
Definition: wdftypes.h:67