Freigeben über


FILTER_DIRECT_OID_REQUEST_COMPLETE Rückruffunktion (ndis.h)

NDIS ruft die FilterDirectOidRequestComplete-Funktion auf, um eine direkte OID-Anforderung des Filtertreibers abzuschließen, die Informationen in einem zugrunde liegenden Treiber abgefragt oder festgelegt hat.

Hinweis Sie müssen die Funktion mit dem typ FILTER_DIRECT_OID_REQUEST_COMPLETE deklarieren. Weitere Informationen finden Sie im folgenden Abschnitt Beispiele.
 

Syntax

FILTER_DIRECT_OID_REQUEST_COMPLETE FilterDirectOidRequestComplete;

void FilterDirectOidRequestComplete(
  [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 NdisFDirectOidRequest-Funktion .

[in] Status

Die letzte status der Anforderung, die ein zugrunde liegender Treiber oder NDIS festgelegt hat. Dieser Parameter bestimmt, was FilterDirectOidRequestComplete mit den Informationen unter OidRequest macht. Eine Liste der möglichen status Werte finden Sie in den Rückgabewerten von NdisFDirectOidRequest.

Rückgabewert

Keine

Bemerkungen

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

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

Wenn ein Filtertreiber eine Anforderung weitergeleitet hat, die er in der FilterDirectOidRequest-Funktion empfangen hat,
FilterDirectOidRequestComplete sollte die Vervollständigung status den Treiberstapel durch Aufrufen der
NdisFDirectOidRequestComplete-Funktion . In diesem Fall muss der Filtertreiber NdisFreeCloneOidRequest aufrufen, um die NDIS_OID_REQUEST-Struktur freizusetzen, bevor er aufruft.
NdisFDirectOidRequestComplete.

Ein Filtertreiber sollte die Von ihnen stammenden Anforderungen nachverfolgen und sicherstellen, dass er nicht NdisFDirectOidRequestComplete aufruft , wenn NDIS FilterDirectOidRequestComplete für solche Anforderungen aufruft.

NDIS ruft FilterDirectOidRequestComplete unter IRQL <= DISPATCH_LEVEL auf.

Beispiele

Um eine FilterDirectOidRequestComplete-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der zu definierenden Funktion identifiziert. Windows bietet eine Reihe von Funktionstypen für Treiber. 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 Voraussetzung für das Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine FilterDirectOidRequestComplete-Funktion mit dem Namen "MyDirectOidRequestComplete" zu definieren, verwenden Sie den typ FILTER_DIRECT_OID_REQUEST_COMPLETE , wie in diesem Codebeispiel gezeigt:

FILTER_DIRECT_OID_REQUEST_COMPLETE MyDirectOidRequestComplete;

Implementieren Sie dann Ihre Funktion wie folgt:

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

Der FILTER_DIRECT_OID_REQUEST_COMPLETE Funktionstyp ist in der Ndis.h-Headerdatei definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, müssen Sie der Funktionsdefinition die anmerkung Use_decl_annotations hinzufügen. Die Use_decl_annotations-Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den FILTER_DIRECT_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.1 und höher.
Zielplattform Windows
Kopfzeile ndis.h (include Ndis.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

FilterAttach

FilterDirectOidRequest

NDIS_OID_REQUEST

NdisFDirectOidRequest

NdisFDirectOidRequestComplete

NdisFRegisterFilterDriver

NdisFreeCloneOidRequest