EVT_UCX_ROOTHUB_GET_INFO コールバック関数 (ucxroothub.h)
ルート ハブに関する情報の要求を受信したときに UCX が呼び出すクライアント ドライバーの実装。
構文
EVT_UCX_ROOTHUB_GET_INFO EvtUcxRoothubGetInfo;
void EvtUcxRoothubGetInfo(
[in] UCXROOTHUB UcxRootHub,
[in] WDFREQUEST Request
)
{...}
パラメーター
[in] UcxRootHub
ルート ハブを表す UCX オブジェクトへのハンドル。
[in] Request
ROOTHUB_INFO型の構造体。
戻り値
なし
解説
UCX クライアント ドライバーは、 UcxRootHubCreate メソッドを呼び出すことによって、USB ホスト コントローラー拡張機能 (UCX) にこのコールバック関数を登録します。
_ROOTHUB_INFO構造体には、ルート ハブでサポートされている USB 2.0 ポートと USB 3.0 ポートの数が含まれています。
UCX が EVT_UCX_ROOTHUB_GET_INFO 関数を呼び出した後、ルート ハブによって公開されるポートの数は同じままであることが保証されます。 これらは仮想ポートであり、物理ポートではないことに注意してください。 各物理 USB コネクタは、ルート ハブ上の速度が異なる 1 つ以上のポートで表されます。
クライアント ドライバーは 、要求で完了状態を返します。 ドライバーは、WDFREQUEST を非同期的に完了できます。
例
VOID
RootHub_EvtRootHubGetInfo(
UCXROOTHUB UcxRootHub,
WDFREQUEST Request
)
/*++
For sample demonstration purposes, this function returns statically
defined information for the root hub.
--*/
{
PUCX_ROOTHUB_CONTEXT ucxRootHubContext;
WDF_REQUEST_PARAMETERS wdfRequestParams;
PROOTHUB_INFO rootHubInfo;
NTSTATUS status;
ucxRootHubContext = GetUcxRootHubContext(UcxRootHub);
WDF_REQUEST_PARAMETERS_INIT(&wdfRequestParams);
WdfRequestGetParameters(Request, &wdfRequestParams);
rootHubInfo = (PROOTHUB_INFO)wdfRequestParams.Parameters.Others.Arg1;
if (rootHubInfo->Size < sizeof(ROOTHUB_INFO)) {
DbgTrace(TL_ERROR, RootHub, "Invalid ROOTHUB_INFO Size %d", rootHubInfo->Size);
status = STATUS_INVALID_PARAMETER;
goto RootHub_EvtRootHubGetInfo;
}
rootHubInfo->ControllerType = ControllerTypeSoftXhci;
rootHubInfo->NumberOf20Ports = ucxRootHubContext->NumberOf20Ports;
rootHubInfo->NumberOf30Ports = ucxRootHubContext->NumberOf30Ports;
rootHubInfo->MaxU1ExitLatency = ucxRootHubContext->U1DeviceExitLatency;
rootHubInfo->MaxU2ExitLatency = ucxRootHubContext->U2DeviceExitLatency;
DbgTrace(TL_INFO, RootHub, "RootHub_UcxEvtGetInfo NumberOf20Ports %d NumberOf30Ports %d", rootHubInfo->NumberOf20Ports, rootHubInfo->NumberOf30Ports);
status = STATUS_SUCCESS;
RootHub_EvtRootHubGetInfo:
WdfRequestComplete(Request, status);
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | ucxroothub.h (Ucxclass.h を含む) |
IRQL | DISPATCH_LEVEL |