UcxRootHubCreate-Funktion (ucxroothub.h)
Erstellt ein Stammhubobjekt für den angegebenen Hostcontroller.
Syntax
NTSTATUS UcxRootHubCreate(
[in] UCXCONTROLLER Controller,
[in] PUCX_ROOTHUB_CONFIG Config,
[in, optional] PWDF_OBJECT_ATTRIBUTES Attributes,
[out] UCXROOTHUB *RootHub
);
Parameter
[in] Controller
Ein Handle für das Controllerobjekt. Der Clienttreiber hat das Handle in einem vorherigen Aufruf von UcxControllerCreateabgerufen.
[in] Config
Ein Zeiger auf eine UCX_ROOTHUB_CONFIG-Struktur, die verschiedene Konfigurationsvorgänge zum Erstellen des Stammhubobjekts beschreibt.
[in, optional] Attributes
Ein Zeiger auf eine vom Aufrufer zugewiesene WDF_OBJECT_ATTRIBUTES Struktur, die Attribute für das Stammhubobjekt angibt.
[out] RootHub
Ein Zeiger auf eine Variable, die ein Handle für das neue Stammhubobjekt empfängt.
Rückgabewert
Die Methode gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Methode möglicherweise einen geeigneten NTSTATUS Fehlercode zurück.
Bemerkungen
Der Clienttreiber für den Hostcontroller muss diese Methode nach dem WdfDeviceCreate Aufruf aufrufen. Das übergeordnete Objekt des neuen Stammhubobjekts ist das Controllerobjekt.
Vor dem Aufrufen dieser Methode muss der Clienttreiber eine UCX_ROOTHUB_CONFIG Struktur initialisieren, indem UCX_ROOTHUB_CONFIG_INITaufgerufen wird. Stellen Sie Funktionszeiger auf vom Treiber bereitgestellte Ereignisrückrufimplementierungen bereit, indem Sie die entsprechenden Member von UCX_ROOTHUB_CONFIGfestlegen. Wenn Ereignisse im Stammhubobjekt auftreten, ruft UCX diese Rückruffunktionen auf.
Beispiele
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;
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 10 |
Header- | ucxroothub.h |
IRQL- | PASSIVE_LEVEL |