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 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 de retour
La méthode retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner une appropriée code d’erreur NTSTATUS.
Remarques
Le pilote client du 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 de 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;
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 10 |
d’en-tête | ucxroothub.h |
IRQL | PASSIVE_LEVEL |