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 |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour