ReactOS 0.4.17-dev-1037-g720d112
ucxcontroller.h File Reference
#include "ucxusbdevice.h"
Include dependency graph for ucxcontroller.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _UCX_CONTROLLER_PCI_INFORMATION
 
struct  _UCX_CONTROLLER_ACPI_INFORMATION
 
union  _UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS_CHANGE_FLAGS
 
struct  _UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS
 
struct  _UCX_CONTROLLER_CONFIG
 
struct  _UCX_CONTROLLER_RESET_COMPLETE_INFO
 

Macros

#define MAX_VENDOR_ID_STRING_LENGTH   5
 
#define MAX_DEVICE_ID_STRING_LENGTH   5
 
#define MAX_REVISION_ID_STRING_LENGTH   5
 
#define MAX_GENERIC_USB_CONTROLLER_NAME_SIZE   40
 

Typedefs

typedef WDF_EXTERN_C_START enum _UCX_CONTROLLER_PARENT_BUS_TYPE UCX_CONTROLLER_PARENT_BUS_TYPE
 
typedef enum _UCX_CONTROLLER_STATE UCX_CONTROLLER_STATE
 
typedef struct _UCX_CONTROLLER_PCI_INFORMATION UCX_CONTROLLER_PCI_INFORMATION
 
typedef struct _UCX_CONTROLLER_PCI_INFORMATION * PUCX_CONTROLLER_PCI_INFORMATION
 
typedef struct _UCX_CONTROLLER_ACPI_INFORMATION UCX_CONTROLLER_ACPI_INFORMATION
 
typedef struct _UCX_CONTROLLER_ACPI_INFORMATION * PUCX_CONTROLLER_ACPI_INFORMATION
 
typedef union _UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS_CHANGE_FLAGS UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS_CHANGE_FLAGS
 
typedef struct _UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS
 
typedef struct _UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS * PUCX_CONTROLLER_TRANSPORT_CHARACTERISTICS
 
typedef _In_ PGUID CapabilityType
 
typedef _In_ PGUID _In_ ULONG OutputBufferLength
 
typedef _In_ PGUID _In_ ULONG _Out_writes_bytes_opt_(OutputBufferLength) PVOID OutputBuffer
 
typedef _In_ PGUID _In_ ULONG _Out_ PULONG ResultLength
 
typedef EVT_UCX_CONTROLLER_QUERY_USB_CAPABILITY * PFN_UCX_CONTROLLER_QUERY_USB_CAPABILITY
 
typedef _Out_ PULONG FrameNumber
 
typedef EVT_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER * PFN_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER
 
typedef _In_ PUCXUSBDEVICE_INFO UcxUsbDeviceInfo
 
typedef _In_ PUCXUSBDEVICE_INFO _In_ PUCXUSBDEVICE_INIT UsbDeviceInit
 
typedef EVT_UCX_CONTROLLER_USBDEVICE_ADD * PFN_UCX_CONTROLLER_USBDEVICE_ADD
 
typedef EVT_UCX_CONTROLLER_RESET * PFN_UCX_CONTROLLER_RESET
 
typedef _Out_ PUCX_CONTROLLER_TRANSPORT_CHARACTERISTICS UcxControllerTransportCharacteristics
 
typedef EVT_UCX_CONTROLLER_GET_TRANSPORT_CHARACTERISTICS * PFN_UCX_CONTROLLER_GET_TRANSPORT_CHARACTERISTICS
 
typedef _In_ UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS_CHANGE_FLAGS ChangeNotificationFlags
 
typedef EVT_UCX_CONTROLLER_SET_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION * PFN_UCX_CONTROLLER_SET_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION
 
typedef _In_ WDFREQUEST WdfRequest
 
typedef _In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
 
typedef EVT_UCX_CONTROLLER_START_TRACKING_FOR_TIME_SYNC * PFN_UCX_CONTROLLER_START_TRACKING_FOR_TIME_SYNC
 
typedef EVT_UCX_CONTROLLER_STOP_TRACKING_FOR_TIME_SYNC * PFN_UCX_CONTROLLER_STOP_TRACKING_FOR_TIME_SYNC
 
typedef EVT_UCX_CONTROLLER_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC * PFN_UCX_CONTROLLER_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC
 
typedef struct _UCX_CONTROLLER_CONFIG UCX_CONTROLLER_CONFIG
 
typedef struct _UCX_CONTROLLER_CONFIG * PUCX_CONTROLLER_CONFIG
 
typedef struct _UCX_CONTROLLER_RESET_COMPLETE_INFO UCX_CONTROLLER_RESET_COMPLETE_INFO
 
typedef struct _UCX_CONTROLLER_RESET_COMPLETE_INFO * PUCX_CONTROLLER_RESET_COMPLETE_INFO
 
typedef PFN_UCX_CONTROLLER_QUERY_USB_CAPABILITY PEVT_UCX_CONTROLLER_QUERY_USB_CAPABILITY
 
typedef PFN_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER PEVT_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER
 
typedef PFN_UCX_CONTROLLER_USBDEVICE_ADD PEVT_UCX_CONTROLLER_USBDEVICE_ADD
 
typedef PFN_UCX_CONTROLLER_RESET PEVT_UCX_CONTROLLER_RESET
 
typedef _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) BOOLEAN(NTAPI *PFN_UCXIODEVICECONTROL) (_In_ PUCX_DRIVER_GLOBALS DriverGlobals == 0
 Frees previously reserved amount of memory in system virtual address space.
 
typedef _Must_inspect_result_ _In_ WDFDEVICE Device
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST Request
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST _In_ size_t _In_ size_t _In_ ULONG IoControlCode
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG Config
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
 
typedef _Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXCONTROLLER * Controller
 
typedef _In_ UCXCONTROLLER _In_ PUCX_CONTROLLER_RESET_COMPLETE_INFO UcxControllerResetCompleteInfo
 
typedef _In_ UCXCONTROLLER _In_ PUNICODE_STRING ManufacturerNameString
 
typedef _In_ UCXCONTROLLER _In_ PUNICODE_STRING _In_ PUNICODE_STRING ModelNameString
 
typedef _In_ UCXCONTROLLER _In_ PUNICODE_STRING _In_ PUNICODE_STRING _In_ PUNICODE_STRING ModelNumberString
 

Enumerations

enum  _UCX_CONTROLLER_PARENT_BUS_TYPE { UcxControllerParentBusTypeCustom = 0 , UcxControllerParentBusTypePci = 1 , UcxControllerParentBusTypeAcpi = 2 , UcxControllerParentBusTypeMaUsb = 3 }
 
enum  _UCX_CONTROLLER_STATE { UcxControllerStateLost = 0 , UcxControllerStatePreserved = 1 }
 

Functions

 DEFINE_GUID (GUID_USB_CAPABILITY_CLEAR_TT_BUFFER_ON_ASYNC_TRANSFER_CANCEL, 0x09b76d52, 0x0a6d, 0x4e4f, 0xa9, 0x11, 0xd0, 0x36, 0xd1, 0x92, 0x94, 0x97)
 
typedef _Function_class_ (EVT_UCX_CONTROLLER_QUERY_USB_CAPABILITY) _IRQL_requires_same_ _Must_inspect_result_ NTSTATUS NTAPI EVT_UCX_CONTROLLER_QUERY_USB_CAPABILITY(_In_ UCXCONTROLLER UcxController
 
typedef _Function_class_ (EVT_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER) _IRQL_requires_same_ _Must_inspect_result_ NTSTATUS NTAPI EVT_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER(_In_ UCXCONTROLLER UcxController
 
typedef _Function_class_ (EVT_UCX_CONTROLLER_USBDEVICE_ADD) _IRQL_requires_same_ _IRQL_requires_(PASSIVE_LEVEL) _Must_inspect_result_ NTSTATUS NTAPI EVT_UCX_CONTROLLER_USBDEVICE_ADD(_In_ UCXCONTROLLER UcxController
 
typedef _Function_class_ (EVT_UCX_CONTROLLER_RESET) _IRQL_requires_same_ _IRQL_requires_(PASSIVE_LEVEL) VOID NTAPI EVT_UCX_CONTROLLER_RESET(_In_ UCXCONTROLLER UcxController)
 
typedef _Function_class_ (EVT_UCX_CONTROLLER_GET_TRANSPORT_CHARACTERISTICS) _IRQL_requires_same_ _Must_inspect_result_ NTSTATUS NTAPI EVT_UCX_CONTROLLER_GET_TRANSPORT_CHARACTERISTICS(_In_ UCXCONTROLLER UcxController
 
typedef _Function_class_ (EVT_UCX_CONTROLLER_SET_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID NTAPI EVT_UCX_CONTROLLER_SET_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION(_In_ UCXCONTROLLER UcxController
 
typedef _Function_class_ (EVT_UCX_CONTROLLER_START_TRACKING_FOR_TIME_SYNC) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) VOID NTAPI EVT_UCX_CONTROLLER_START_TRACKING_FOR_TIME_SYNC(_In_ UCXCONTROLLER UcxController
 
typedef _Function_class_ (EVT_UCX_CONTROLLER_STOP_TRACKING_FOR_TIME_SYNC) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) VOID NTAPI EVT_UCX_CONTROLLER_STOP_TRACKING_FOR_TIME_SYNC(_In_ UCXCONTROLLER UcxController
 
typedef _Function_class_ (EVT_UCX_CONTROLLER_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID NTAPI EVT_UCX_CONTROLLER_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC(_In_ UCXCONTROLLER UcxController
 
FORCEINLINE VOID NTAPI UcxpCopyAnsiString (_Out_writes_z_(DestinationSize) PCHAR Destination, _In_ SIZE_T DestinationSize, _In_z_ PCSTR Source)
 
FORCEINLINE VOID NTAPI UCX_CONTROLLER_CONFIG_INIT (_Out_ PUCX_CONTROLLER_CONFIG Config, _In_ LPCSTR DeviceDescription)
 
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)
 
FORCEINLINE VOID NTAPI UCX_CONTROLLER_RESET_COMPLETE_INFO_INIT (_Out_ PUCX_CONTROLLER_RESET_COMPLETE_INFO UcxControllerResetCompleteInfo, _In_ UCX_CONTROLLER_STATE UcxControllerState, _In_ BOOLEAN UcxCoordinated)
 
return DeviceControl (UcxDriverGlobals, Device, Request, OutputBufferLength, InputBufferLength, IoControlCode)
 
return Create (UcxDriverGlobals, Device, Config, Attributes, Controller)
 
 ResetComplete (UcxDriverGlobals, Controller, UcxControllerResetCompleteInfo)
 
return SetIdStrings (UcxDriverGlobals, Controller, ManufacturerNameString, ModelNameString, ModelNumberString)
 
 Notify (UcxDriverGlobals, Controller, UcxControllerTransportCharacteristics)
 

Variables

 DeviceControl = UCX_BOUND_FUNCTION(PFN_UCXIODEVICECONTROL, UcxIoDeviceControlTableIndex)
 
 Create = UCX_BOUND_FUNCTION(PFN_UCXCONTROLLERCREATE, UcxControllerCreateTableIndex)
 
 ResetComplete
 
 SetIdStrings
 
 Notify
 

Macro Definition Documentation

◆ MAX_DEVICE_ID_STRING_LENGTH

#define MAX_DEVICE_ID_STRING_LENGTH   5

Definition at line 34 of file ucxcontroller.h.

◆ MAX_GENERIC_USB_CONTROLLER_NAME_SIZE

#define MAX_GENERIC_USB_CONTROLLER_NAME_SIZE   40

Definition at line 36 of file ucxcontroller.h.

◆ MAX_REVISION_ID_STRING_LENGTH

#define MAX_REVISION_ID_STRING_LENGTH   5

Definition at line 35 of file ucxcontroller.h.

◆ MAX_VENDOR_ID_STRING_LENGTH

#define MAX_VENDOR_ID_STRING_LENGTH   5

Definition at line 33 of file ucxcontroller.h.

Typedef Documentation

◆ _IRQL_requires_max_

_IRQL_requires_max_ == 0

Frees previously reserved amount of memory in system virtual address space.

Computes the quota size of a security descriptor.

Assigns a security descriptor for a new object.

An extended function that assigns a security descriptor for a new object.

Frees a security descriptor.

An extended function that sets new information data to a security descriptor.

Modifies some information data about a security descriptor.

Offers an IOCTL to UCX, returning TRUE once UCX owns the request.

Parameters
[in]BaseAddressA pointer to the 1st memory block of the reserved buffer.
[in]PoolTagPool Tag identifying the buffer. Usually consists from 4 characters in reversed order.
Returns
Nothing.
See also
MmAllocateMappingAddress
Remarks
Must be called at IRQL <= APC_LEVEL
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
See SeSetSecurityDescriptorInfoEx.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]AutoInheritFlagsFlags bitmask inheritation, influencing how the security descriptor can be inherited and if it can be in the first place.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
Returns STATUS_SUCCESS if the operations have been completed without problems and that new info has been set to the security descriptor. STATUS_NO_SECURITY_ON_OBJECT is returned if the object does not have a security descriptor. STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the new security descriptor with new info set has failed.
Parameters
[in]SecurityDescriptorA security descriptor to be freed from memory.
Returns
Returns STATUS_SUCCESS.
Parameters
[in]_ParentDescriptorA security descriptor of the parent object that is being created.
[in]_ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]ObjectTypeThe type of the new object.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]AutoInheritFlagsAutomatic inheritance flags that influence how access control entries within ACLs from security descriptors are inherited.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the security descriptor has been assigned to the new object. STATUS_NO_TOKEN is returned if the caller hasn't supplied a valid argument to a security subject context. STATUS_INVALID_OWNER is returned if the caller hasn't supplied a parent descriptor that belongs to the main user (owner). STATUS_INVALID_PRIMARY_GROUP is returned by the same reason as with the previous NTSTATUS code. The two NTSTATUS codes are returned if the calling thread stated that the owner and/or group is defaulted to the parent descriptor (SEF_DEFAULT_OWNER_FROM_PARENT and/or SEF_DEFAULT_GROUP_FROM_PARENT respectively). STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the descriptor buffer has failed. A failure NTSTATUS is returned otherwise.
Parameters
[in]ParentDescriptorA security descriptor of the parent object that is being created.
[in]ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
See SeAssignSecurityEx.
Parameters
[in]SecurityDescriptorA security descriptor.
[out]QuotaInfoSizeThe returned quota size of the given security descriptor to the caller. The function may return 0 to this parameter if the descriptor doesn't have a group or a discretionary access control list (DACL) even.
Returns
Returns STATUS_SUCCESS if the quota size of a security descriptor has been computed successfully. STATUS_UNKNOWN_REVISION is returned if the security descriptor has an invalid revision.

Priority 1 to 3, forwarded to the HCD's EvtEndpointSetCharacteristic.

Returns the streams object with a reference held under Tag, or NULL.

Signals a port status change, completing the pending interrupt transfer.

Definition at line 330 of file ucxcontroller.h.

◆ _Out_writes_bytes_opt_

◆ Attributes

◆ CapabilityType

◆ ChangeNotificationFlags

◆ Config

Initial value:
{
return ((PFN_WDFUSBTARGETPIPECONFIGCONTINUOUSREADER) WdfFunctions[WdfUsbTargetPipeConfigContinuousReaderTableIndex])(WdfDriverGlobals, Pipe, Config)
Globals WdfDriverGlobals
Definition: classlib.cpp:132
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG Config
#define WdfFunctions
Definition: wdf.h:66
@ WdfUsbTargetPipeConfigContinuousReaderTableIndex
Definition: wdffuncenum.h:375
_In_ WDFUSBPIPE Pipe
Definition: wdfusb.h:1741

Definition at line 347 of file ucxcontroller.h.

◆ Controller

Initial value:
{
PFN_UCXCONTROLLERCREATE Create
Create

Definition at line 349 of file ucxcontroller.h.

◆ Device

typedef _Must_inspect_result_ _In_ WDFDEVICE Device

Definition at line 334 of file ucxcontroller.h.

◆ FrameNumber

Definition at line 94 of file ucxcontroller.h.

◆ InputBufferLength

◆ IoControlCode

Initial value:
{
PFN_UCXIODEVICECONTROL DeviceControl
DeviceControl

Definition at line 338 of file ucxcontroller.h.

◆ ManufacturerNameString

◆ ModelNameString

◆ ModelNumberString

Initial value:
{
PFN_UCXCONTROLLERSETIDSTRINGS SetIdStrings
SetIdStrings

Definition at line 381 of file ucxcontroller.h.

◆ OutputBufferLength

◆ PEVT_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER

◆ PEVT_UCX_CONTROLLER_QUERY_USB_CAPABILITY

◆ PEVT_UCX_CONTROLLER_RESET

◆ PEVT_UCX_CONTROLLER_USBDEVICE_ADD

◆ PFN_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER

typedef EVT_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER* PFN_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER

Definition at line 95 of file ucxcontroller.h.

◆ PFN_UCX_CONTROLLER_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC

typedef EVT_UCX_CONTROLLER_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC* PFN_UCX_CONTROLLER_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC

Definition at line 181 of file ucxcontroller.h.

◆ PFN_UCX_CONTROLLER_GET_TRANSPORT_CHARACTERISTICS

typedef EVT_UCX_CONTROLLER_GET_TRANSPORT_CHARACTERISTICS* PFN_UCX_CONTROLLER_GET_TRANSPORT_CHARACTERISTICS

Definition at line 129 of file ucxcontroller.h.

◆ PFN_UCX_CONTROLLER_QUERY_USB_CAPABILITY

typedef EVT_UCX_CONTROLLER_QUERY_USB_CAPABILITY* PFN_UCX_CONTROLLER_QUERY_USB_CAPABILITY

Definition at line 84 of file ucxcontroller.h.

◆ PFN_UCX_CONTROLLER_RESET

typedef EVT_UCX_CONTROLLER_RESET* PFN_UCX_CONTROLLER_RESET

Definition at line 118 of file ucxcontroller.h.

◆ PFN_UCX_CONTROLLER_SET_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION

typedef EVT_UCX_CONTROLLER_SET_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION* PFN_UCX_CONTROLLER_SET_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION

Definition at line 141 of file ucxcontroller.h.

◆ PFN_UCX_CONTROLLER_START_TRACKING_FOR_TIME_SYNC

typedef EVT_UCX_CONTROLLER_START_TRACKING_FOR_TIME_SYNC* PFN_UCX_CONTROLLER_START_TRACKING_FOR_TIME_SYNC

Definition at line 154 of file ucxcontroller.h.

◆ PFN_UCX_CONTROLLER_STOP_TRACKING_FOR_TIME_SYNC

typedef EVT_UCX_CONTROLLER_STOP_TRACKING_FOR_TIME_SYNC* PFN_UCX_CONTROLLER_STOP_TRACKING_FOR_TIME_SYNC

Definition at line 167 of file ucxcontroller.h.

◆ PFN_UCX_CONTROLLER_USBDEVICE_ADD

typedef EVT_UCX_CONTROLLER_USBDEVICE_ADD* PFN_UCX_CONTROLLER_USBDEVICE_ADD

Definition at line 108 of file ucxcontroller.h.

◆ PUCX_CONTROLLER_ACPI_INFORMATION

◆ PUCX_CONTROLLER_CONFIG

◆ PUCX_CONTROLLER_PCI_INFORMATION

◆ PUCX_CONTROLLER_RESET_COMPLETE_INFO

◆ PUCX_CONTROLLER_TRANSPORT_CHARACTERISTICS

◆ Request

_Must_inspect_result_ _In_ WDFUSBPIPE _In_ WDFREQUEST Request
Initial value:
{
_Must_inspect_result_ _In_ WDFDEVICE Device
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFREQUEST Request
@ WdfDeviceEnqueueRequestTableIndex
Definition: wdffuncenum.h:116

Definition at line 335 of file ucxcontroller.h.

◆ ResultLength

Initial value:
{
_In_ PGUID _In_ ULONG _Out_ PULONG ResultLength
Definition: ucxcontroller.h:83
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID PropertyBuffer
Definition: wdfdevice.h:4443
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY DeviceProperty
Definition: wdfdevice.h:3775
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
Definition: wdfdevice.h:3777
@ WdfDeviceQueryPropertyTableIndex
Definition: wdffuncenum.h:106

Definition at line 83 of file ucxcontroller.h.

◆ UCX_CONTROLLER_ACPI_INFORMATION

◆ UCX_CONTROLLER_CONFIG

◆ UCX_CONTROLLER_PARENT_BUS_TYPE

◆ UCX_CONTROLLER_PCI_INFORMATION

◆ UCX_CONTROLLER_RESET_COMPLETE_INFO

◆ UCX_CONTROLLER_STATE

◆ UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS

◆ UCX_CONTROLLER_TRANSPORT_CHARACTERISTICS_CHANGE_FLAGS

◆ UcxControllerResetCompleteInfo

Initial value:
{
PFN_UCXCONTROLLERRESETCOMPLETE ResetComplete
ResetComplete

Definition at line 364 of file ucxcontroller.h.

◆ UcxControllerTransportCharacteristics

Initial value:
{
PFN_UCXCONTROLLERNOTIFYTRANSPORTCHARACTERISTICSCHANGE Notify
Notify

Definition at line 128 of file ucxcontroller.h.

◆ UcxUsbDeviceInfo

Definition at line 106 of file ucxcontroller.h.

◆ UsbDeviceInit

◆ WdfRequest

typedef _In_ WDFREQUEST WdfRequest

Definition at line 151 of file ucxcontroller.h.

Enumeration Type Documentation

◆ _UCX_CONTROLLER_PARENT_BUS_TYPE

Enumerator
UcxControllerParentBusTypeCustom 
UcxControllerParentBusTypePci 
UcxControllerParentBusTypeAcpi 
UcxControllerParentBusTypeMaUsb 

Definition at line 14 of file ucxcontroller.h.

15{
@ UcxControllerParentBusTypeMaUsb
Definition: ucxcontroller.h:19
@ UcxControllerParentBusTypeCustom
Definition: ucxcontroller.h:16
@ UcxControllerParentBusTypePci
Definition: ucxcontroller.h:17
@ UcxControllerParentBusTypeAcpi
Definition: ucxcontroller.h:18
WDF_EXTERN_C_START enum _UCX_CONTROLLER_PARENT_BUS_TYPE UCX_CONTROLLER_PARENT_BUS_TYPE

◆ _UCX_CONTROLLER_STATE

Enumerator
UcxControllerStateLost 
UcxControllerStatePreserved 

Definition at line 22 of file ucxcontroller.h.

23{
@ UcxControllerStatePreserved
Definition: ucxcontroller.h:25
@ UcxControllerStateLost
Definition: ucxcontroller.h:24
enum _UCX_CONTROLLER_STATE UCX_CONTROLLER_STATE

Function Documentation

◆ _Function_class_() [1/9]

typedef _Function_class_ ( EVT_UCX_CONTROLLER_GET_CURRENT_FRAMENUMBER  )

◆ _Function_class_() [2/9]

typedef _Function_class_ ( EVT_UCX_CONTROLLER_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC  )

◆ _Function_class_() [3/9]

typedef _Function_class_ ( EVT_UCX_CONTROLLER_GET_TRANSPORT_CHARACTERISTICS  )

◆ _Function_class_() [4/9]

typedef _Function_class_ ( EVT_UCX_CONTROLLER_QUERY_USB_CAPABILITY  )

◆ _Function_class_() [5/9]

typedef _Function_class_ ( EVT_UCX_CONTROLLER_RESET  )

◆ _Function_class_() [6/9]

typedef _Function_class_ ( EVT_UCX_CONTROLLER_SET_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION  )

◆ _Function_class_() [7/9]

typedef _Function_class_ ( EVT_UCX_CONTROLLER_START_TRACKING_FOR_TIME_SYNC  )

◆ _Function_class_() [8/9]

typedef _Function_class_ ( EVT_UCX_CONTROLLER_STOP_TRACKING_FOR_TIME_SYNC  )

◆ _Function_class_() [9/9]

typedef _Function_class_ ( EVT_UCX_CONTROLLER_USBDEVICE_ADD  )

◆ Create()

return Create ( UcxDriverGlobals  ,
Device  ,
Config  ,
Attributes  ,
Controller   
)

◆ DEFINE_GUID()

DEFINE_GUID ( GUID_USB_CAPABILITY_CLEAR_TT_BUFFER_ON_ASYNC_TRANSFER_CANCEL  ,
0x09b76d52  ,
0x0a6d  ,
0x4e4f  ,
0xa9  ,
0x11  ,
0xd0  ,
0x36  ,
0xd1  ,
0x92  ,
0x94  ,
0x97   
)

◆ DeviceControl()

◆ Notify()

◆ ResetComplete()

◆ SetIdStrings()

◆ UCX_CONTROLLER_CONFIG_INIT()

FORCEINLINE VOID NTAPI UCX_CONTROLLER_CONFIG_INIT ( _Out_ PUCX_CONTROLLER_CONFIG  Config,
_In_ LPCSTR  DeviceDescription 
)

Prepares a config with no parent bus information; MAXLONG marks the PCI IDs unset.

Definition at line 239 of file ucxcontroller.h.

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}
#define MAXULONG
Definition: typedefs.h:251
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
char * PCHAR
Definition: typedefs.h:51
FORCEINLINE VOID NTAPI UcxpCopyAnsiString(_Out_writes_z_(DestinationSize) PCHAR Destination, _In_ SIZE_T DestinationSize, _In_z_ PCSTR Source)
#define MAXLONG
Definition: umtypes.h:116
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
Definition: wdfpdo.h:432

Referenced by _IRQL_requires_().

◆ UCX_CONTROLLER_CONFIG_SET_ACPI_INFO()

Definition at line 284 of file ucxcontroller.h.

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}
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

◆ UCX_CONTROLLER_CONFIG_SET_PCI_INFO()

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 
)

Definition at line 260 of file ucxcontroller.h.

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}
_In_ PCHAR _In_ ULONG DeviceNumber
Definition: classpnp.h:1230
_In_ ULONG BusNumber
Definition: pciidex.h:65

◆ UCX_CONTROLLER_RESET_COMPLETE_INFO_INIT()

FORCEINLINE VOID NTAPI UCX_CONTROLLER_RESET_COMPLETE_INFO_INIT ( _Out_ PUCX_CONTROLLER_RESET_COMPLETE_INFO  UcxControllerResetCompleteInfo,
_In_ UCX_CONTROLLER_STATE  UcxControllerState,
_In_ BOOLEAN  UcxCoordinated 
)

Definition at line 309 of file ucxcontroller.h.

313{
315 UcxControllerResetCompleteInfo->Size = sizeof(*UcxControllerResetCompleteInfo);
316 UcxControllerResetCompleteInfo->UcxControllerState = UcxControllerState;
317 UcxControllerResetCompleteInfo->UcxCoordinated = UcxCoordinated;
318}
_In_ UCXCONTROLLER _In_ PUCX_CONTROLLER_RESET_COMPLETE_INFO UcxControllerResetCompleteInfo

Referenced by XhciEvtControllerReset().

◆ UcxpCopyAnsiString()

FORCEINLINE VOID NTAPI UcxpCopyAnsiString ( _Out_writes_z_(DestinationSize) PCHAR  Destination,
_In_ SIZE_T  DestinationSize,
_In_z_ PCSTR  Source 
)

Definition at line 216 of file ucxcontroller.h.

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}
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
Definition: ndis.h:3169
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
Definition: rtlfuncs.h:3051
#define ANSI_NULL
ULONG_PTR SIZE_T
Definition: typedefs.h:80
_In_ WDFCOLLECTION _In_ ULONG Index

Referenced by UCX_CONTROLLER_CONFIG_INIT(), and UCX_CONTROLLER_CONFIG_SET_ACPI_INFO().

Variable Documentation

◆ Create

Create = UCX_BOUND_FUNCTION(PFN_UCXCONTROLLERCREATE, UcxControllerCreateTableIndex)

Definition at line 428 of file ucxcontroller.h.

◆ DeviceControl

DeviceControl = UCX_BOUND_FUNCTION(PFN_UCXIODEVICECONTROL, UcxIoDeviceControlTableIndex)

Definition at line 406 of file ucxcontroller.h.

◆ Notify

◆ ResetComplete

ResetComplete
Initial value:
= UCX_BOUND_FUNCTION(PFN_UCXCONTROLLERRESETCOMPLETE,
@ UcxControllerResetCompleteTableIndex
Definition: ucxfuncenum.h:16

Definition at line 456 of file ucxcontroller.h.

◆ SetIdStrings

SetIdStrings
Initial value:
= UCX_BOUND_FUNCTION(PFN_UCXCONTROLLERSETIDSTRINGS,
@ UcxControllerSetIdStringsTableIndex
Definition: ucxfuncenum.h:35

Definition at line 486 of file ucxcontroller.h.