Freigeben über


IoGetDriverProxyWrapperFromEndpoint-Makro (wdm.h)

Das IoGetDriverProxyWrapperFromEndpoint-Makro ruft den Zeiger auf den Wrapper für eine Endpunktfunktion mithilfe des Endpunktfunktionszeigers ab. Dieses Makro bietet einen praktischen Wrapper um IofGetDriverProxyWrapperFromEndpoint mit automatischer Typumwandlung.

Dieses Makro ist die Standardmethode zum Abrufen von Endpunktwrappern in Driver Hot-Swap V2. Es behandelt die Typwandlung automatisch und bietet eine übersichtlichere Schnittstelle im Vergleich zum direkten Aufrufen der zugrunde liegenden Funktion.

Syntax

void IoGetDriverProxyWrapperFromEndpoint(
  DriverProxyExtension,
  Endpoint,
  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 eine DRIVER_PROXY_ENDPOINT_FUNCTION Endpunktfunktion, für die der Wrapper gefunden werden soll. Dies muss ein Funktionszeiger sein, der während des automatischen Endpunktenumerationsprozesses in Driver Hot-Swap V2 identifiziert wurde.

Wrapper

[out] Ein Zeiger auf eine Variable, die einen Zeiger auf eine DRIVER_PROXY_ENDPOINT_FUNCTION Wrapperfunktion empfängt. Wenn der Endpunkt gefunden wird, wird Wrapper so festgelegt, dass er auf die Wrapperfunktion verweist, die anstelle des ursprünglichen Endpunkts aufgerufen werden soll. Wenn der Endpunkt nicht gefunden wird, wird Wrapper auf NULL festgelegt.

Rückgabewert

Nichts

Bemerkungen

Dieses Makro wurde für Driver Hot-Swap V2 entwickelt, das die automatische compilerbasierte Endpunktenumeration anstelle der manuellen Endpunktregistrierung verwendet. Der an dieses Makro übergebene Endpunktzeiger muss genau mit einem Zeiger übereinstimmen, der während des automatischen Endpunktenumerationsprozesses identifiziert wurde.

Das Makro behandelt die Typzuwandlung automatisch und erleichtert die Verwendung der zugrunde liegenden IofGetDriverProxyWrapperFromEndpoint-Funktion . Dadurch werden potenzielle Compilerwarnungen im Zusammenhang mit Zeigertypkonvertierungen entfernt.

Das Makro kann auf jeder IRQL-Ebene verwendet 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. Dadurch kann die Funktionsimplementierung zur Laufzeit ersetzt werden, ohne den Treiber entladen zu müssen.

In Driver Hot-Swap V2 werden Endpunkte während des Buildprozesses automatisch über Die Compiler- und Linkeranalyse des .shsept Abschnitts ermittelt und registriert, sodass keine manuelle Endpunktregistrierung erforderlich ist.

Anforderungen

Anforderung Wert
Zielplattform Universal
Header wdm.h
IRQL Beliebige Ebene

Siehe auch

IofGetDriverProxyWrapperFromEndpoint

IoCreateDriverProxyExtension

DRIVER_PROXY_ENDPOINT_FUNCTION