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 |
Header | ucxroothub.h |
IRQL | PASSIVE_LEVEL |