共用方式為


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連接器都會以根中樞上一或多個不同速度的埠表示。

用戶端驅動程式會在 要求中傳回完成狀態。 驅動程式可以異步完成 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
標頭 ucxroothub.h (包含 Ucxclass.h)
IRQL DISPATCH_LEVEL

另請參閱

_ROOTHUB_INFO