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

Go to the source code of this file.

Classes

union  _CONTROLLER_USB_20_HARDWARE_LPM_FLAGS
 
struct  _ROOTHUB_INFO
 
struct  _ROOTHUB_20PORT_INFO
 
struct  _ROOTHUB_20PORTS_INFO
 
struct  _ROOTHUB_30PORT_INFO
 
struct  _ROOTHUB_30PORT_INFO_EX
 
struct  _ROOTHUB_30PORTS_INFO
 
union  _PARENT_HUB_FLAGS
 
struct  _HUB_INFO_FROM_PARENT
 
struct  _UCX_ROOTHUB_CONFIG
 

Macros

#define MAX_SPEEDS_COUNT   (32 + 16)
 

Typedefs

typedef WDF_EXTERN_C_START enum _CONTROLLER_TYPE CONTROLLER_TYPE
 
typedef enum _TRISTATE TRISTATE
 
typedef union _CONTROLLER_USB_20_HARDWARE_LPM_FLAGS CONTROLLER_USB_20_HARDWARE_LPM_FLAGS
 
typedef union _CONTROLLER_USB_20_HARDWARE_LPM_FLAGS * PCONTROLLER_USB_20_HARDWARE_LPM_FLAGS
 
typedef struct _ROOTHUB_INFO ROOTHUB_INFO
 
typedef struct _ROOTHUB_INFO * PROOTHUB_INFO
 
typedef struct _ROOTHUB_20PORT_INFO ROOTHUB_20PORT_INFO
 
typedef struct _ROOTHUB_20PORT_INFO * PROOTHUB_20PORT_INFO
 
typedef struct _ROOTHUB_20PORTS_INFO ROOTHUB_20PORTS_INFO
 
typedef struct _ROOTHUB_20PORTS_INFO * PROOTHUB_20PORTS_INFO
 
typedef struct _ROOTHUB_30PORT_INFO ROOTHUB_30PORT_INFO
 
typedef struct _ROOTHUB_30PORT_INFO * PROOTHUB_30PORT_INFO
 
typedef struct _ROOTHUB_30PORT_INFO_EX ROOTHUB_30PORT_INFO_EX
 
typedef struct _ROOTHUB_30PORT_INFO_EX * PROOTHUB_30PORT_INFO_EX
 
typedef struct _ROOTHUB_30PORTS_INFO ROOTHUB_30PORTS_INFO
 
typedef struct _ROOTHUB_30PORTS_INFO * PROOTHUB_30PORTS_INFO
 
typedef union _PARENT_HUB_FLAGS PARENT_HUB_FLAGS
 
typedef union _PARENT_HUB_FLAGS * PPARENT_HUB_FLAGS
 
typedef struct _HUB_INFO_FROM_PARENT HUB_INFO_FROM_PARENT
 
typedef struct _HUB_INFO_FROM_PARENT * PHUB_INFO_FROM_PARENT
 
typedef _In_ WDFREQUEST Request
 
typedef EVT_UCX_ROOTHUB_INTERRUPT_TX * PFN_UCX_ROOTHUB_INTERRUPT_TX
 
typedef EVT_UCX_ROOTHUB_CONTROL_URB * PFN_UCX_ROOTHUB_CONTROL_URB
 
typedef EVT_UCX_ROOTHUB_GET_INFO * PFN_UCX_ROOTHUB_GET_INFO
 
typedef EVT_UCX_ROOTHUB_GET_20PORT_INFO * PFN_UCX_ROOTHUB_GET_20PORT_INFO
 
typedef EVT_UCX_ROOTHUB_GET_30PORT_INFO * PFN_UCX_ROOTHUB_GET_30PORT_INFO
 
typedef struct _UCX_ROOTHUB_CONFIG UCX_ROOTHUB_CONFIG
 
typedef struct _UCX_ROOTHUB_CONFIG * PUCX_ROOTHUB_CONFIG
 
typedef PFN_UCX_ROOTHUB_INTERRUPT_TX PEVT_UCX_ROOTHUB_INTERRUPT_TX
 
typedef PFN_UCX_ROOTHUB_CONTROL_URB PEVT_UCX_ROOTHUB_CONTROL_URB
 
typedef PFN_UCX_ROOTHUB_GET_INFO PEVT_UCX_ROOTHUB_GET_INFO
 
typedef PFN_UCX_ROOTHUB_GET_20PORT_INFO PEVT_UCX_ROOTHUB_GET_20PORT_INFO
 
typedef PFN_UCX_ROOTHUB_GET_30PORT_INFO PEVT_UCX_ROOTHUB_GET_30PORT_INFO
 
typedef _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) NTSTATUS(NTAPI *PFN_UCXROOTHUBCREATE) (_In_ PUCX_DRIVER_GLOBALS DriverGlobals
 
typedef _Must_inspect_result_ _In_ UCXCONTROLLER Controller
 
typedef _Must_inspect_result_ _In_ UCXCONTROLLER _In_ PUCX_ROOTHUB_CONFIG Config
 
typedef _Must_inspect_result_ _In_ UCXCONTROLLER _In_ PUCX_ROOTHUB_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
 
typedef _Must_inspect_result_ _In_ UCXCONTROLLER _In_ PUCX_ROOTHUB_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ UCXROOTHUB * RootHub
 
typedef _In_ UCXROOTHUB UcxRootHub
 

Enumerations

enum  _CONTROLLER_TYPE {
  DiskController , CdRomController , ControllerTypeMax , ControllerTypeXhci = 0 ,
  ControllerTypeSoftXhci = 1
}
 
enum  _TRISTATE { TriStateUnknown = 'u' , TriStateFalse = 'f' , TriStateTrue = 't' }
 

Functions

 C_ASSERT (sizeof(PARENT_HUB_FLAGS)==sizeof(ULONG))
 
typedef _Function_class_ (EVT_UCX_ROOTHUB_INTERRUPT_TX) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID NTAPI EVT_UCX_ROOTHUB_INTERRUPT_TX(_In_ UCXROOTHUB UcxRootHub
 
typedef _Function_class_ (EVT_UCX_ROOTHUB_CONTROL_URB) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID NTAPI EVT_UCX_ROOTHUB_CONTROL_URB(_In_ UCXROOTHUB UcxRootHub
 
typedef _Function_class_ (EVT_UCX_ROOTHUB_GET_INFO) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID NTAPI EVT_UCX_ROOTHUB_GET_INFO(_In_ UCXROOTHUB UcxRootHub
 
typedef _Function_class_ (EVT_UCX_ROOTHUB_GET_20PORT_INFO) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID NTAPI EVT_UCX_ROOTHUB_GET_20PORT_INFO(_In_ UCXROOTHUB UcxRootHub
 
typedef _Function_class_ (EVT_UCX_ROOTHUB_GET_30PORT_INFO) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) VOID NTAPI EVT_UCX_ROOTHUB_GET_30PORT_INFO(_In_ UCXROOTHUB UcxRootHub
 
FORCEINLINE VOID NTAPI UcxpRootHubConfigInitCommon (_Out_ PUCX_ROOTHUB_CONFIG Config, _In_ PFN_UCX_ROOTHUB_INTERRUPT_TX EvtRootHubInterruptTx, _In_ PFN_UCX_ROOTHUB_GET_INFO EvtRootHubGetInfo, _In_ PFN_UCX_ROOTHUB_GET_20PORT_INFO EvtRootHubGet20PortInfo, _In_ PFN_UCX_ROOTHUB_GET_30PORT_INFO EvtRootHubGet30PortInfo)
 
FORCEINLINE VOID NTAPI UCX_ROOTHUB_CONFIG_INIT_WITH_CONTROL_URB_HANDLER (_Out_ PUCX_ROOTHUB_CONFIG Config, _In_ PFN_UCX_ROOTHUB_CONTROL_URB EvtRootHubControlUrb, _In_ PFN_UCX_ROOTHUB_INTERRUPT_TX EvtRootHubInterruptTx, _In_ PFN_UCX_ROOTHUB_GET_INFO EvtRootHubGetInfo, _In_ PFN_UCX_ROOTHUB_GET_20PORT_INFO EvtRootHubGet20PortInfo, _In_ PFN_UCX_ROOTHUB_GET_30PORT_INFO EvtRootHubGet30PortInfo)
 
FORCEINLINE VOID NTAPI UCX_ROOTHUB_CONFIG_INIT (_Out_ PUCX_ROOTHUB_CONFIG Config, _In_ PFN_UCX_ROOTHUB_CONTROL_URB EvtRootHubClearHubFeature, _In_ PFN_UCX_ROOTHUB_CONTROL_URB EvtRootHubClearPortFeature, _In_ PFN_UCX_ROOTHUB_CONTROL_URB EvtRootHubGetHubStatus, _In_ PFN_UCX_ROOTHUB_CONTROL_URB EvtRootHubGetPortStatus, _In_ PFN_UCX_ROOTHUB_CONTROL_URB EvtRootHubSetHubFeature, _In_ PFN_UCX_ROOTHUB_CONTROL_URB EvtRootHubSetPortFeature, _In_ PFN_UCX_ROOTHUB_CONTROL_URB EvtRootHubGetPortErrorCount, _In_ PFN_UCX_ROOTHUB_INTERRUPT_TX EvtRootHubInterruptTx, _In_ PFN_UCX_ROOTHUB_GET_INFO EvtRootHubGetInfo, _In_ PFN_UCX_ROOTHUB_GET_20PORT_INFO EvtRootHubGet20PortInfo, _In_ PFN_UCX_ROOTHUB_GET_30PORT_INFO EvtRootHubGet30PortInfo)
 
return Create (UcxDriverGlobals, Controller, Config, Attributes, RootHub)
 

Variables

 Create = UCX_BOUND_FUNCTION(PFN_UCXROOTHUBCREATE, UcxRootHubCreateTableIndex)
 

Macro Definition Documentation

◆ MAX_SPEEDS_COUNT

#define MAX_SPEEDS_COUNT   (32 + 16)

Definition at line 76 of file ucxroothub.h.

Typedef Documentation

◆ _IRQL_requires_max_

typedef _Must_inspect_result_ _IRQL_requires_max_(DISPATCH_LEVEL) NTSTATUS(NTAPI *PFN_UCXROOTHUBCREATE)(_In_ PUCX_DRIVER_GLOBALS DriverGlobals

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

Definition at line 292 of file ucxroothub.h.

◆ Attributes

◆ Config

◆ Controller

typedef _Must_inspect_result_ _In_ UCXCONTROLLER Controller

Definition at line 296 of file ucxroothub.h.

◆ CONTROLLER_TYPE

◆ CONTROLLER_USB_20_HARDWARE_LPM_FLAGS

◆ HUB_INFO_FROM_PARENT

◆ PARENT_HUB_FLAGS

◆ PCONTROLLER_USB_20_HARDWARE_LPM_FLAGS

◆ PEVT_UCX_ROOTHUB_CONTROL_URB

◆ PEVT_UCX_ROOTHUB_GET_20PORT_INFO

◆ PEVT_UCX_ROOTHUB_GET_30PORT_INFO

◆ PEVT_UCX_ROOTHUB_GET_INFO

◆ PEVT_UCX_ROOTHUB_INTERRUPT_TX

◆ PFN_UCX_ROOTHUB_CONTROL_URB

typedef EVT_UCX_ROOTHUB_CONTROL_URB* PFN_UCX_ROOTHUB_CONTROL_URB

Definition at line 151 of file ucxroothub.h.

◆ PFN_UCX_ROOTHUB_GET_20PORT_INFO

typedef EVT_UCX_ROOTHUB_GET_20PORT_INFO* PFN_UCX_ROOTHUB_GET_20PORT_INFO

Definition at line 173 of file ucxroothub.h.

◆ PFN_UCX_ROOTHUB_GET_30PORT_INFO

typedef EVT_UCX_ROOTHUB_GET_30PORT_INFO* PFN_UCX_ROOTHUB_GET_30PORT_INFO

Definition at line 184 of file ucxroothub.h.

◆ PFN_UCX_ROOTHUB_GET_INFO

typedef EVT_UCX_ROOTHUB_GET_INFO* PFN_UCX_ROOTHUB_GET_INFO

Definition at line 162 of file ucxroothub.h.

◆ PFN_UCX_ROOTHUB_INTERRUPT_TX

typedef EVT_UCX_ROOTHUB_INTERRUPT_TX* PFN_UCX_ROOTHUB_INTERRUPT_TX

Definition at line 140 of file ucxroothub.h.

◆ PHUB_INFO_FROM_PARENT

◆ PPARENT_HUB_FLAGS

◆ PROOTHUB_20PORT_INFO

◆ PROOTHUB_20PORTS_INFO

◆ PROOTHUB_30PORT_INFO

◆ PROOTHUB_30PORT_INFO_EX

◆ PROOTHUB_30PORTS_INFO

◆ PROOTHUB_INFO

◆ PUCX_ROOTHUB_CONFIG

◆ Request

typedef _In_ WDFREQUEST Request

Definition at line 139 of file ucxroothub.h.

◆ RootHub

Initial value:
{
PFN_UCXROOTHUBCREATE Create
Create
Definition: ucxroothub.h:321

Definition at line 299 of file ucxroothub.h.

◆ ROOTHUB_20PORT_INFO

◆ ROOTHUB_20PORTS_INFO

◆ ROOTHUB_30PORT_INFO

◆ ROOTHUB_30PORT_INFO_EX

◆ ROOTHUB_30PORTS_INFO

◆ ROOTHUB_INFO

◆ TRISTATE

◆ UCX_ROOTHUB_CONFIG

◆ UcxRootHub

typedef _In_ UCXROOTHUB UcxRootHub

Definition at line 306 of file ucxroothub.h.

Enumeration Type Documentation

◆ _CONTROLLER_TYPE

Enumerator
DiskController 
CdRomController 
ControllerTypeMax 
ControllerTypeXhci 
ControllerTypeSoftXhci 

Definition at line 14 of file ucxroothub.h.

15{
WDF_EXTERN_C_START enum _CONTROLLER_TYPE CONTROLLER_TYPE
@ ControllerTypeXhci
Definition: ucxroothub.h:16
@ ControllerTypeSoftXhci
Definition: ucxroothub.h:17

◆ _TRISTATE

Enumerator
TriStateUnknown 
TriStateFalse 
TriStateTrue 

Definition at line 20 of file ucxroothub.h.

21{
22 TriStateUnknown = 'u',
23 TriStateFalse = 'f',
24 TriStateTrue = 't'
25} TRISTATE;
@ TriStateUnknown
Definition: ucxroothub.h:22
@ TriStateFalse
Definition: ucxroothub.h:23
@ TriStateTrue
Definition: ucxroothub.h:24
enum _TRISTATE TRISTATE

Function Documentation

◆ _Function_class_() [1/5]

typedef _Function_class_ ( EVT_UCX_ROOTHUB_CONTROL_URB  )

◆ _Function_class_() [2/5]

typedef _Function_class_ ( EVT_UCX_ROOTHUB_GET_20PORT_INFO  )

◆ _Function_class_() [3/5]

typedef _Function_class_ ( EVT_UCX_ROOTHUB_GET_30PORT_INFO  )

◆ _Function_class_() [4/5]

typedef _Function_class_ ( EVT_UCX_ROOTHUB_GET_INFO  )

◆ _Function_class_() [5/5]

typedef _Function_class_ ( EVT_UCX_ROOTHUB_INTERRUPT_TX  )

◆ C_ASSERT()

C_ASSERT ( sizeof(PARENT_HUB_FLAGS)  = =sizeof(ULONG))

◆ Create()

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

◆ UCX_ROOTHUB_CONFIG_INIT()

FORCEINLINE VOID NTAPI UCX_ROOTHUB_CONFIG_INIT ( _Out_ PUCX_ROOTHUB_CONFIG  Config,
_In_ PFN_UCX_ROOTHUB_CONTROL_URB  EvtRootHubClearHubFeature,
_In_ PFN_UCX_ROOTHUB_CONTROL_URB  EvtRootHubClearPortFeature,
_In_ PFN_UCX_ROOTHUB_CONTROL_URB  EvtRootHubGetHubStatus,
_In_ PFN_UCX_ROOTHUB_CONTROL_URB  EvtRootHubGetPortStatus,
_In_ PFN_UCX_ROOTHUB_CONTROL_URB  EvtRootHubSetHubFeature,
_In_ PFN_UCX_ROOTHUB_CONTROL_URB  EvtRootHubSetPortFeature,
_In_ PFN_UCX_ROOTHUB_CONTROL_URB  EvtRootHubGetPortErrorCount,
_In_ PFN_UCX_ROOTHUB_INTERRUPT_TX  EvtRootHubInterruptTx,
_In_ PFN_UCX_ROOTHUB_GET_INFO  EvtRootHubGetInfo,
_In_ PFN_UCX_ROOTHUB_GET_20PORT_INFO  EvtRootHubGet20PortInfo,
_In_ PFN_UCX_ROOTHUB_GET_30PORT_INFO  EvtRootHubGet30PortInfo 
)

Definition at line 252 of file ucxroothub.h.

265{
267 EvtRootHubInterruptTx,
268 EvtRootHubGetInfo,
269 EvtRootHubGet20PortInfo,
270 EvtRootHubGet30PortInfo);
271
272 Config->EvtRootHubClearHubFeature = EvtRootHubClearHubFeature;
273 Config->EvtRootHubClearPortFeature = EvtRootHubClearPortFeature;
274 Config->EvtRootHubGetHubStatus = EvtRootHubGetHubStatus;
275 Config->EvtRootHubGetPortStatus = EvtRootHubGetPortStatus;
276 Config->EvtRootHubSetHubFeature = EvtRootHubSetHubFeature;
277 Config->EvtRootHubSetPortFeature = EvtRootHubSetPortFeature;
278 Config->EvtRootHubGetPortErrorCount = EvtRootHubGetPortErrorCount;
279}
_Must_inspect_result_ _In_ WDFDEVICE _In_ PUCX_CONTROLLER_CONFIG Config
FORCEINLINE VOID NTAPI UcxpRootHubConfigInitCommon(_Out_ PUCX_ROOTHUB_CONFIG Config, _In_ PFN_UCX_ROOTHUB_INTERRUPT_TX EvtRootHubInterruptTx, _In_ PFN_UCX_ROOTHUB_GET_INFO EvtRootHubGetInfo, _In_ PFN_UCX_ROOTHUB_GET_20PORT_INFO EvtRootHubGet20PortInfo, _In_ PFN_UCX_ROOTHUB_GET_30PORT_INFO EvtRootHubGet30PortInfo)
Definition: ucxroothub.h:210

Referenced by _IRQL_requires_().

◆ UCX_ROOTHUB_CONFIG_INIT_WITH_CONTROL_URB_HANDLER()

FORCEINLINE VOID NTAPI UCX_ROOTHUB_CONFIG_INIT_WITH_CONTROL_URB_HANDLER ( _Out_ PUCX_ROOTHUB_CONFIG  Config,
_In_ PFN_UCX_ROOTHUB_CONTROL_URB  EvtRootHubControlUrb,
_In_ PFN_UCX_ROOTHUB_INTERRUPT_TX  EvtRootHubInterruptTx,
_In_ PFN_UCX_ROOTHUB_GET_INFO  EvtRootHubGetInfo,
_In_ PFN_UCX_ROOTHUB_GET_20PORT_INFO  EvtRootHubGet20PortInfo,
_In_ PFN_UCX_ROOTHUB_GET_30PORT_INFO  EvtRootHubGet30PortInfo 
)

Definition at line 232 of file ucxroothub.h.

239{
241 EvtRootHubInterruptTx,
242 EvtRootHubGetInfo,
243 EvtRootHubGet20PortInfo,
244 EvtRootHubGet30PortInfo);
245
246 Config->EvtRootHubControlUrb = EvtRootHubControlUrb;
247}

◆ UcxpRootHubConfigInitCommon()

FORCEINLINE VOID NTAPI UcxpRootHubConfigInitCommon ( _Out_ PUCX_ROOTHUB_CONFIG  Config,
_In_ PFN_UCX_ROOTHUB_INTERRUPT_TX  EvtRootHubInterruptTx,
_In_ PFN_UCX_ROOTHUB_GET_INFO  EvtRootHubGetInfo,
_In_ PFN_UCX_ROOTHUB_GET_20PORT_INFO  EvtRootHubGet20PortInfo,
_In_ PFN_UCX_ROOTHUB_GET_30PORT_INFO  EvtRootHubGet30PortInfo 
)

Definition at line 210 of file ucxroothub.h.

216{
217 RtlZeroMemory(Config, sizeof(*Config));
218 Config->Size = sizeof(*Config);
219 Config->NumberOfPresentedControlUrbCallbacks = 1;
220
221 Config->EvtRootHubInterruptTx = EvtRootHubInterruptTx;
222 Config->EvtRootHubGetInfo = EvtRootHubGetInfo;
223 Config->EvtRootHubGet20PortInfo = EvtRootHubGet20PortInfo;
224 Config->EvtRootHubGet30PortInfo = EvtRootHubGet30PortInfo;
225
226 WDF_OBJECT_ATTRIBUTES_INIT(&Config->WdfRequestAttributes);
227}
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
FORCEINLINE VOID WDF_OBJECT_ATTRIBUTES_INIT(_Out_ PWDF_OBJECT_ATTRIBUTES Attributes)
Definition: wdfobject.h:147

Referenced by UCX_ROOTHUB_CONFIG_INIT(), and UCX_ROOTHUB_CONFIG_INIT_WITH_CONTROL_URB_HANDLER().

Variable Documentation

◆ Create

Create = UCX_BOUND_FUNCTION(PFN_UCXROOTHUBCREATE, UcxRootHubCreateTableIndex)

Definition at line 321 of file ucxroothub.h.