FILTER_OID_REQUEST_COMPLETE Rückruffunktion (ndis.h)

NDIS ruft die FilterOidRequestComplete-Funktion auf, um eine Filtertreiberanforderung abzuschließen, die Informationen in einem zugrunde liegenden Treiber abgefragt oder festgelegt hat.

Hinweis Sie müssen die Funktion mit dem FILTER_OID_REQUEST_COMPLETE-Typ deklarieren. Weitere Informationen finden Sie im folgenden Abschnitt Beispiele.
 

Syntax

FILTER_OID_REQUEST_COMPLETE FilterOidRequestComplete;

void FilterOidRequestComplete(
  [in] NDIS_HANDLE FilterModuleContext,
  [in] PNDIS_OID_REQUEST OidRequest,
  [in] NDIS_STATUS Status
)
{...}

Parameter

[in] FilterModuleContext

Ein Handle für den Kontextbereich für das Filtermodul. Der Filtertreiber hat diesen Kontextbereich in der FilterAttach-Funktion erstellt und initialisiert.

[in] OidRequest

Ein Zeiger auf die NDIS_OID_REQUEST Struktur, die der Filtertreiber zuvor an die NdisFOidRequest-Funktion übergeben hat.

[in] Status

Die endgültige status der Anforderung, die von einem zugrunde liegenden Treiber oder von NDIS festgelegt wurde. Dieser Parameter bestimmt, was FilterOidRequestComplete mit den Informationen in OidRequest macht. Eine Liste der möglichen status Werte finden Sie in den Rückgabewerten von NdisFOidRequest.

Rückgabewert

Keine

Bemerkungen

FilterOidRequestComplete ist eine optionale Funktion. Wenn ein Filtertreiber keine OID-Anforderungen verwendet, kann er den Einstiegspunkt für diese Funktion auf NULL festlegen, wenn er die NdisFRegisterFilterDriver-Funktion aufruft. Wenn ein Filtertreiber eine FilterOidRequest-Funktion definiert, muss er die FilterOidRequestComplete-Funktion bereitstellen.

Wenn die NdisFOidRequest-Funktion NDIS_STATUS_PENDING zurückgibt, muss NDIS die FilterOidRequestComplete-Funktion aufrufen, um die OID-Anforderung abzuschließen.

Wenn ein Filtertreiber eine Anforderung weitergeleitet hat, die er in der FilterOidRequest-Funktion empfangen hat, sollte FilterOidRequestComplete die Vervollständigung status den Treiberstapel übergeben, indem die NdisFOidRequestComplete-Funktion aufgerufen wird. Der Filtertreiber muss NdisFreeCloneOidRequest aufrufen, um die NDIS_OID_REQUEST-Struktur freizusetzen, bevor NdisFOidRequestComplete aufgerufen wird.

Ein Filtertreiber sollte die von ihr stammenden Anforderungen nachverfolgen und sicherstellen, dass er nicht NdisFOidRequestComplete aufruft , wenn NDIS FilterOidRequestComplete für solche Anforderungen aufruft.

NDIS ruft FilterOidRequestComplete unter IRQL <= DISPATCH_LEVEL auf.

Beispiele

Um eine FilterOidRequestComplete-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der zu definierenden Funktion identifiziert. Windows stellt eine Reihe von Funktionstypen für Treiber bereit. Das Deklarieren einer Funktion mithilfe der Funktionstypen hilft der Codeanalyse für Treiber, der statischen Treiberüberprüfung (Static Driver Verifier , SDV) und anderen Überprüfungstools, Fehler zu finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine FilterOidRequestComplete-Funktion mit dem Namen "MyOidRequestComplete" zu definieren, verwenden Sie den FILTER_OID_REQUEST_COMPLETE-Typ , wie in diesem Codebeispiel gezeigt:

FILTER_OID_REQUEST_COMPLETE MyOidRequestComplete;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
NDIS_STATUS
 MyOidRequestComplete(
    NDIS_HANDLE  FilterModuleContext,
    PNDIS_OID_REQUEST  OidRequest,
    NDIS_STATUS  Status
    )
  {...}

Der FILTER_OID_REQUEST_COMPLETE Funktionstyp ist in der Headerdatei Ndis.h definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, fügen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzu. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den FILTER_OID_REQUEST_COMPLETE Funktionstyp in der Headerdatei angewendet werden. Weitere Informationen zu den Anforderungen für Funktionsdeklarationen finden Sie unter Deklarieren von Funktionen mithilfe von Funktionsrollentypen für NDIS-Treiber.

Informationen zu Use_decl_annotations finden Sie unter Verhalten von Funktionen mit Anmerkungen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Windows
Kopfzeile ndis.h (einschließlich Ndis.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

FilterAttach

FilterOidRequest

NDIS_OID_REQUEST

NdisFOidRequest

NdisFOidRequestComplete

NdisFreeCloneOidRequest