Função UcxRootHubCreate (ucxroothub.h)
Cria um objeto de hub raiz para o controlador de host especificado.
Sintaxe
NTSTATUS UcxRootHubCreate(
[in] UCXCONTROLLER Controller,
[in] PUCX_ROOTHUB_CONFIG Config,
[in, optional] PWDF_OBJECT_ATTRIBUTES Attributes,
[out] UCXROOTHUB *RootHub
);
Parâmetros
[in] Controller
Um identificador para o objeto do controlador. O driver cliente recuperou o identificador em uma chamada anterior para UcxControllerCreate.
[in] Config
Um ponteiro para uma estrutura UCX_ROOTHUB_CONFIG que descreve várias operações de configuração para criar o objeto de hub raiz.
[in, optional] Attributes
Um ponteiro para uma estrutura de WDF_OBJECT_ATTRIBUTES alocada pelo chamador que especifica atributos para o objeto de hub raiz.
[out] RootHub
Um ponteiro para uma variável que recebe um identificador para o novo objeto de hub raiz.
Retornar valor
O método retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, esse método poderá retornar um código de erro NTSTATUS apropriado.
Comentários
O driver do cliente para o controlador host deve chamar esse método após a chamada WdfDeviceCreate . O pai do novo objeto de hub raiz é o objeto do controlador.
Antes de chamar esse método, o driver do cliente deve inicializar uma estrutura de UCX_ROOTHUB_CONFIG chamando UCX_ROOTHUB_CONFIG_INIT. Forneça ponteiros de função para implementações de retorno de chamada de evento fornecidas pelo driver definindo os membros apropriados do UCX_ROOTHUB_CONFIG. Quando ocorrem eventos no objeto do hub raiz, o UCX invoca essas funções de retorno de chamada.
Exemplos
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 com suporte | Windows 10 |
Cabeçalho | ucxroothub.h |
IRQL | PASSIVE_LEVEL |