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 UcxControllerCreate abgerufen.
[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 auf 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 entsprechenden NTSTATUS-Fehlercode zurück.
Hinweise
Der Clienttreiber für den Hostcontroller muss diese Methode nach dem WdfDeviceCreate-Aufruf aufrufen. Das übergeordnete Element des neuen Stammhubobjekts ist das Controllerobjekt.
Vor dem Aufrufen dieser Methode muss der Clienttreiber eine UCX_ROOTHUB_CONFIG-Struktur initialisieren, indem er UCX_ROOTHUB_CONFIG_INIT aufruft. Stellen Sie Funktionszeiger auf vom Treiber bereitgestellte Ereignisrückrufimplementierungen bereit, indem Sie entsprechende Member von UCX_ROOTHUB_CONFIG festlegen. 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 |
---|---|
Unterstützte Mindestversion (Client) | Windows 10 |
Kopfzeile | ucxroothub.h |
IRQL | PASSIVE_LEVEL |