FILTER_SET_MODULE_OPTIONS Rückruffunktion (ndis.h)

Die FilterSetModuleOptions-Funktion ändert den Satz optionaler Dienste, die einem angegebenen Filtermodul zugeordnet sind.

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

Syntax

FILTER_SET_MODULE_OPTIONS FilterSetModuleOptions;

NDIS_STATUS FilterSetModuleOptions(
  [in] NDIS_HANDLE FilterModuleContext
)
{...}

Parameter

[in] FilterModuleContext

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

Rückgabewert

FilterSetModuleOptions gibt einen der folgenden status Werte zurück:

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
FilterSetModuleOptions hat die optionalen Dienste und Ressourcen des Filtermoduls erfolgreich registriert.
NDIS_STATUS_RESOURCES
FilterSetModuleOptions konnte nicht die Ressourcen zuordnen, die für das Filtermodul erforderlich sind.
NDIS_STATUS_ XXX oder NTSTATUS_ XXX
Fehler beim Versuch des Filtertreibers, Optionen zu registrieren. Normalerweise wird ein solcher Fehler status von einer NdisXxx-Funktion oder einer Kernelmodusunterstützungsroutine weitergegeben.

Hinweise

Wenn FilterSetModuleOptions definiert ist, ruft NDIS FilterSetModuleOptions auf, bevor die FilterRestart-Funktion aufgerufen wird, um das Filtermodul zu starten.

Ein Filtertreiber gibt die Standardwerte für die änderbaren Filtermoduloptionen in der NDIS_FILTER_DRIVER_CHARACTERISTICS-Struktur an, die an die NdisFRegisterFilterDriver-Funktion während der Treiberinitialisierung.

Um optionen für ein bestimmtes Filtermodul zur Laufzeit zu ändern, muss der Filtertreiber auch einen Einstiegspunkt für FilterSetModuleOptions im NDIS_FILTER_DRIVER_CHARACTERISTICS Struktur.

Um die Optionen anzugeben, die geändert werden sollen, definiert FilterSetModuleOptions eine Merkmalsstruktur und ruft die NdisSetOptionalHandlers-Funktion auf. Filtertreiber dürfen NdisSetOptionalHandlers nicht aus einem anderen Thread aufrufen.

Mögliche Eigenschaftenstrukturen, die in FilterSetModuleOptions angegeben werden können, sind:

NDIS_FILTER_PARTIAL_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_CLIENT_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS NDIS_PROVIDER_CHIMNEY_OFFLOAD_GENERIC_CHARACTERISTICS NDIS_PROVIDER_CHIMNEY_OFFLOAD_TCP_CHARACTERISTICS

Informationen zu den letzten vier Strukturen finden Sie in der NDIS 6.0 TCP-Schornsteinabladungsdokumentation.

Die Optionen, die in jeder Merkmalsstruktur angegeben werden, können für jedes Filtermodul unterschiedlich sein.

Wenn NDIS die FilterDetach-Funktion aufruft, sollte der Filtertreiber alle Vorgänge rückgängigmachen, die in FilterSetModuleOptions ausgeführt wurden.

NDIS ruft FilterSetModuleOptions unter IRQL = PASSIVE_LEVEL auf.

Beispiele

Um eine FilterSetModuleOptions-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 FilterSetModuleOptions-Funktion mit dem Namen "MySetModuleOptions" zu definieren, verwenden Sie den FILTER_SET_MODULE_OPTIONS Typ, wie in diesem Codebeispiel gezeigt:

FILTER_SET_MODULE_OPTIONS MySetModuleOptions;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
NDIS_STATUS
 MySetModuleOptions(
    NDIS_HANDLE  FilterModuleContext
    )
  {...}

Der FILTER_SET_MODULE_OPTIONS 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_SET_MODULE_OPTIONS 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 PASSIVE_LEVEL

Weitere Informationen

FilterRestart

NDIS_FILTER_DRIVER_CHARACTERISTICS NDIS_FILTER_PARTIAL_CHARACTERISTICS

NdisFRegisterFilterDriver

NdisSetOptionalHandlers