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 |