FILTER_STATUS Rückruffunktion (ndis.h)

Die FilterStatus-Funktion gibt status Änderungen an, die von NDIS oder einem zugrunde liegenden Treiber gemeldet werden.

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

Syntax

FILTER_STATUS FilterStatus;

void FilterStatus(
  [in] NDIS_HANDLE FilterModuleContext,
  [in] PNDIS_STATUS_INDICATION StatusIndication
)
{...}

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] StatusIndication

Ein Zeiger auf eine NDIS_STATUS_INDICATION-Struktur, die die status Informationen enthält.

Rückgabewert

Keine

Bemerkungen

FilterStatus ist eine optionale Funktion. Wenn ein Filtertreiber keine status Hinweise verwendet, kann er den Einstiegspunkt für diese Funktion auf NULL festlegen, wenn er die NdisFRegisterFilterDriver-Funktion .

Verwenden Sie zum Ermitteln von Link status anstelle von OID-Abfragen die status Hinweise der zugrunde liegenden Treiber. Diese status Hinweise verbessern die Systemleistung und vermeiden mögliche Racebedingungen.

Ein Filtertreiber ruft in der Regel die NdisFIndicateStatus-Funktion am Ende seiner FilterStatus-Funktion auf, um die status Anzeige an überstehende Treiber zu übergeben.

Ein Filtertreiber kann bestimmte status Anzeigen herausfiltern oder die angegebene status ändern. Um eine status Anzeige herauszufiltern, ruft der Treiber einfach nicht NdisFIndicateStatus auf.

NDIS ruft FilterStatus bei IRQL <= DISPATCH_LEVEL auf.

Beispiele

Um eine FilterStatus-Funktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der von Ihnen definierten 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 FilterStatus-Funktion mit dem Namen "MyStatus" zu definieren, verwenden Sie den typ FILTER_STATUS , wie in diesem Codebeispiel gezeigt:

FILTER_STATUS MyStatus;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
VOID
 MyStatus(
    NDIS_HANDLE  FilterModuleContext,
    PNDIS_STATUS_INDICATION  StatusIndication
    )
  {...}

Der FILTER_STATUS Funktionstyp ist in der Headerdatei Ndis.h 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_STATUS 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 (include Ndis.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

FilterAttach

NDIS_STATUS_INDICATION

NdisFIndicateStatus

NdisFRegisterFilterDriver