Función UcxRootHubCreate (ucxroothub.h)
Crea un objeto de concentrador raíz para el controlador de host especificado.
Sintaxis
NTSTATUS UcxRootHubCreate(
[in] UCXCONTROLLER Controller,
[in] PUCX_ROOTHUB_CONFIG Config,
[in, optional] PWDF_OBJECT_ATTRIBUTES Attributes,
[out] UCXROOTHUB *RootHub
);
Parámetros
[in] Controller
Identificador del objeto de controlador. El controlador cliente recuperó el identificador en una llamada anterior a UcxControllerCreate.
[in] Config
Puntero a una estructura de UCX_ROOTHUB_CONFIG que describe varias operaciones de configuración para crear el objeto del centro raíz.
[in, optional] Attributes
Puntero a una estructura de WDF_OBJECT_ATTRIBUTES asignada por el autor de la llamada que especifica atributos para el objeto concentrador raíz.
[out] RootHub
Puntero a una variable que recibe un identificador para el nuevo objeto de concentrador raíz.
Valor devuelto
El método devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, este método podría devolver un código de error NTSTATUS adecuado.
Comentarios
El controlador de cliente para el controlador de host debe llamar a este método después de la llamada WdfDeviceCreate . El elemento primario del nuevo objeto central raíz es el objeto de controlador.
Antes de llamar a este método, el controlador cliente debe inicializar una estructura de UCX_ROOTHUB_CONFIG llamando a UCX_ROOTHUB_CONFIG_INIT. Proporcione punteros de función a las implementaciones de devolución de llamada de eventos proporcionadas por el controlador estableciendo los miembros adecuados de UCX_ROOTHUB_CONFIG. Cuando se producen eventos en el objeto del centro raíz, UCX invoca esas funciones de devolución de llamada.
Ejemplos
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;
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 10 |
Encabezado | ucxroothub.h |
IRQL | PASSIVE_LEVEL |