共用方式為


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

另請參閱

UCX_ROOTHUB_CONFIG