Freigeben über


IofGetDriverProxyWrapperFromEndpoint-Funktion (wdm.h)

Die IofGetDriverProxyWrapperFromEndpoint-Funktion ruft den Zeiger auf den Wrapper für eine Endpunktfunktion mithilfe des Endpunktfunktionzeigers ab.

Syntax

NTSTATUS IofGetDriverProxyWrapperFromEndpoint(
  PDRIVER_PROXY_EXTENSION                 DriverProxyExtension,
  PDRIVER_PROXY_ENDPOINT_FUNCTION         Endpoint,
  PDRIVER_PROXY_WRAPPED_ENDPOINT_FUNCTION *Wrapper
);

Die Parameter

DriverProxyExtension

[in] Ein Zeiger auf die DriverProxy-Erweiterung, für die die Endpunkte registriert sind. Diese Erweiterung wurde in einem vorherigen Aufruf von IoCreateDriverProxyExtension erstellt.

Endpoint

[in] Ein Zeiger auf die Endpunktfunktion, für die der Wrapper gefunden werden soll. Dies muss ein Funktionszeiger sein, der zuvor bei IoRegisterDriverProxyEndpoints registriert wurde.

Wrapper

[out] Ein Zeiger auf eine Variable, die einen Zeiger auf die umbrochene Endpunktfunktion empfängt. Wenn der Endpunkt gefunden wird, verweist dies auf die Wrapperfunktion, die anstelle des ursprünglichen Endpunkts aufgerufen werden soll.

Rückgabewert

IofGetDriverProxyWrapperFromEndpoint gibt einen der folgenden NTSTATUS-Werte zurück:

Rückgabecode Description
STATUS_SUCCESS Die Wrapperfunktion wurde erfolgreich gefunden und zurückgegeben.
STATUS_NOT_FOUND Die angegebene Endpunktfunktion wurde in den registrierten Endpunkten nicht gefunden.

Bemerkungen

Diese Funktion ist die Standardmethode zum Abrufen von Endpunktwrappern in Driver Hot-Swap V2. Der an diese Funktion übergebene Endpunktzeiger muss genau mit einem Zeiger übereinstimmen, der während des automatischen Endpunktenumerationsprozesses identifiziert wurde.

Um Compilerwarnungen beim Aufrufen dieser Funktion zu vermeiden, müssen Sie möglicherweise die Parameter "Endpoint " und "Wrapper " umwandeln. Zur Vereinfachung wird ein Makro IoGetDriverProxyWrapperFromEndpoint bereitgestellt, das die Typ umwandlung automatisch behandelt. Es wird empfohlen, das Makro zu verwenden, anstatt diese Funktion direkt aufzurufen.

Die Funktion kann auf jeder IRQL-Ebene aufgerufen werden und führt einen schnellen Nachschlagevorgang aus.

Sobald ein Wrapper abgerufen wurde, sollten Treiber die Wrapperfunktion anstelle der ursprünglichen Endpunktfunktion aufrufen, um hot-swappable Funktionen zu aktivieren.

Anforderungen

Anforderung Wert
Zielplattform Universal
Header wdm.h
Library NtosKrnl.lib
IRQL Beliebige Ebene

Siehe auch

IoCreateDriverProxyExtension

DRIVER_PROXY_ENDPOINT_FUNCTION