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 de concentrador 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 del centro 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 uno adecuado código de error NTSTATUS.
Observaciones
El controlador cliente del controlador de host debe llamar a este método después de la llamada WdfDeviceCreate. El elemento primario del nuevo objeto de concentrador 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 implementaciones de devolución de llamada de eventos proporcionadas por el controlador estableciendo miembros adecuados de UCX_ROOTHUB_CONFIG. Cuando se producen eventos en el objeto de concentrador 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 | Valor |
---|---|
cliente mínimo admitido | Windows 10 |
encabezado de | ucxroothub.h |
irQL | PASSIVE_LEVEL |