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 |