UcxRootHubCreate, fonction (ucxroothub.h)
Crée un objet hub racine pour le contrôleur hôte spécifié.
Syntaxe
NTSTATUS UcxRootHubCreate(
[in] UCXCONTROLLER Controller,
[in] PUCX_ROOTHUB_CONFIG Config,
[in, optional] PWDF_OBJECT_ATTRIBUTES Attributes,
[out] UCXROOTHUB *RootHub
);
Paramètres
[in] Controller
Handle de l’objet contrôleur. Le pilote client a récupéré le handle dans un appel précédent à UcxControllerCreate.
[in] Config
Pointeur vers une structure UCX_ROOTHUB_CONFIG qui décrit différentes opérations de configuration pour la création de l’objet hub racine.
[in, optional] Attributes
Pointeur vers une structure de WDF_OBJECT_ATTRIBUTES allouée par l’appelant qui spécifie les attributs de l’objet hub racine.
[out] RootHub
Pointeur vers une variable qui reçoit un handle vers le nouvel objet hub racine.
Valeur retournée
La méthode retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner un code d’erreur NTSTATUS approprié.
Remarques
Le pilote client pour le contrôleur hôte doit appeler cette méthode après l’appel WdfDeviceCreate . Le parent du nouvel objet hub racine est l’objet contrôleur.
Avant d’appeler cette méthode, le pilote client doit initialiser une structure UCX_ROOTHUB_CONFIG en appelant UCX_ROOTHUB_CONFIG_INIT. Fournissez des pointeurs de fonction aux implémentations de rappel d’événements fournies par le pilote en définissant les membres appropriés de UCX_ROOTHUB_CONFIG. Lorsque des événements se produisent dans l’objet hub racine, UCX appelle ces fonctions de rappel.
Exemples
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;
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10 |
En-tête | ucxroothub.h |
IRQL | PASSIVE_LEVEL |