UcxRootHubCreate 函数 (ucxroothub.h)
为指定的主机控制器创建根中心对象。
语法
NTSTATUS UcxRootHubCreate(
[in] UCXCONTROLLER Controller,
[in] PUCX_ROOTHUB_CONFIG Config,
[in, optional] PWDF_OBJECT_ATTRIBUTES Attributes,
[out] UCXROOTHUB *RootHub
);
参数
[in] Controller
控制器对象的句柄。 客户端驱动程序在上一次调用 UcxControllerCreate 时检索了句柄。
[in] Config
指向 UCX_ROOTHUB_CONFIG 结构的指针,该结构描述用于创建根中心对象的各种配置操作。
[in, optional] Attributes
指向调用方分配 的WDF_OBJECT_ATTRIBUTES 结构的指针,该结构指定根中心对象的属性。
[out] RootHub
指向接收新根中心对象的句柄的变量的指针。
返回值
如果操作成功,方法将返回STATUS_SUCCESS。 否则,此方法可能会返回一个相应的 NTSTATUS 错误代码。
注解
主机控制器的客户端驱动程序必须在 WdfDeviceCreate 调用后调用此方法。 新根中心对象的父对象是控制器对象。
在调用此方法之前,客户端驱动程序必须通过调用 UCX_ROOTHUB_CONFIG_INIT 初始化 UCX_ROOTHUB_CONFIG 结构。 通过调用设置UCX_ROOTHUB_CONFIG的适当成员,提供指向驱动程序提供的事件回调 实现的函数指针。 当根中心对象中发生事件时,UCX 会调用这些回调函数。
示例
UCX_ROOTHUB_CONFIG ucxRootHubConfig;
UCXROOTHUB ucxRootHub;
PUCX_ROOTHUB_CONTEXT ucxRootHubContext;
// Create the root hub
//
UCX_ROOTHUB_CONFIG_INIT(&ucxRootHubConfig,
RootHub_EvtRootHubClearHubFeature,
RootHub_EvtRootHubClearPortFeature,
RootHub_EvtRootHubGetHubStatus,
RootHub_EvtRootHubGetPortStatus,
RootHub_EvtRootHubSetHubFeature,
RootHub_EvtRootHubSetPortFeature,
RootHub_EvtRootHubGetPortErrorCount,
RootHub_EvtRootHubInterruptTx,
RootHub_EvtRootHubGetInfo,
RootHub_EvtRootHubGet20PortInfo,
RootHub_EvtRootHubGet30PortInfo);
WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&objectAttributes, UCX_ROOTHUB_CONTEXT);
status = UcxRootHubCreate(ucxController,
&ucxRootHubConfig,
&objectAttributes,
&ucxRootHub);
if (!NT_SUCCESS(status)) {
DbgTrace(TL_ERROR, Controller, "UcxRootHubCreate Failed %!STATUS!", status);
goto Controller_WdfEvtDeviceAddEnd;
}
DbgTrace(TL_INFO, Controller, "UCX Root Hub created.");
ucxControllerContext->UcxRootHub = ucxRootHub;
ucxRootHubContext = GetUcxRootHubContext(ucxRootHub);
ucxRootHubContext->UcxController = ucxController;
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 |
标头 | ucxroothub.h |
IRQL | PASSIVE_LEVEL |