Freigeben über


FILTER_PAUSE Rückruffunktion (ndis.h)

NDIS ruft die FilterPause Funktion eines Filtertreibers auf, um einen Pausenvorgang für das angegebene Filtermodul zu initiieren.

Hinweis Sie müssen die Funktion mithilfe des FILTER_PAUSE-Typs deklarieren. Weitere Informationen finden Sie im folgenden Abschnitt "Beispiele".
 

Syntax

FILTER_PAUSE FilterPause;

NDIS_STATUS FilterPause(
  [in] NDIS_HANDLE FilterModuleContext,
  [in] PNDIS_FILTER_PAUSE_PARAMETERS PauseParameters
)
{...}

Parameter

[in] FilterModuleContext

Ein Handle zum Kontextbereich für das Filtermodul, das vom Filtertreiber angehalten werden soll. Der Filtertreiber hat diesen Kontextbereich in der FilterAttach-Funktion erstellt und initialisiert.

[in] PauseParameters

Ein Zeiger auf einen NDIS_FILTER_PAUSE_PARAMETERS Struktur, die die Pausenparameter für das Filtermodul definiert.

Rückgabewert

NDIS-Treiber können keine Pausenanforderung versagen. Der Filtertreiber sollte die NdisWriteEventLogEntry Funktion zusammen mit Parametern aufrufen, die den Grund für fehler angeben, die auftreten.

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
FilterPause das angegebene Filtermodul erfolgreich angehalten.
NDIS_STATUS_PENDING
Der Filtertreiber schließt die Anforderung asynchron mit einem Aufruf der NdisFPauseComplete--Funktion ab.

Bemerkungen

FilterPause ist eine erforderliche Funktion. NDIS kann FilterPause- aufrufen, wenn sich das Filtermodul im Zustand Running befindet. Das Filtermodul wechselt zu Beginn der Ausführung in der FilterPause Funktion in den Zustand Anhalten Zustands.

Ein Filtertreiber führt die folgenden Vorgänge aus, wenn NDIS FilterPause-aufruft:

Nachdem der Filtertreiber NDIS_STATUS_SUCCESS von FilterPause- zurückgibt oder die NdisFPauseComplete-Funktion aufruft, ist der Pausenvorgang abgeschlossen. Das Filtermodul befindet sich im Zustand Angehalten.

Im Anhalten oder Angehaltenen Zuständen sollte ein Filtertreiber weiterhin OID-Anforderungen oder Statusanzeigen verarbeiten. Der Treiber sollte Aufrufe an seine FilterSendNetBufferLists Funktion. Der Fahrer kann Anrufe an seine FilterReceiveNetBufferLists Funktion. Der Treiber kann jedoch keine Puffer übergeben, die er erstellt hat. Der Fahrer darf keine Hinweise erhalten oder Anfragen senden.

Im Angehaltenen Zustand darf das Filtermodul keine Sendeanforderungen oder Empfangsanzeigen generieren.

NDIS ruft die FilterRestart--Funktion auf, um eine Neustartanforderung für ein Filtermodul zu initiieren, das sich im Zustand Angehaltenen befindet.

NDIS ruft FilterPause- bei IRQL = PASSIVE_LEVEL auf.

beispiele für

Um eine FilterPause--Funktion zu definieren, müssen Sie zuerst eine Funktionsdeklaration bereitstellen, die den Typ der Funktion identifiziert, die Sie definieren. Windows stellt eine Reihe von Funktionstypen für Treiber bereit. Durch das Deklarieren einer Funktion mithilfe der Funktionstypen können Codeanalyse für Treiber, statische Treiberüberprüfung (SDV) und andere Überprüfungstools Fehler finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine FilterPause-Funktion zu definieren, die den Namen "MyPause" hat, verwenden Sie den FILTER_PAUSE Typ, wie in diesem Codebeispiel gezeigt:

FILTER_PAUSE MyPause;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
NDIS_STATUS
 MyPause(
    NDIS_HANDLE  FilterModuleContext,
    PNDIS_FILTER_PAUSE_PARAMETERS  FilterPauseParameters
    )
  {...}

Der FILTER_PAUSE Funktionstyp wird in der Ndis.h-Headerdatei definiert. Um Fehler genauer zu identifizieren, wenn Sie die Codeanalysetools ausführen, müssen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzufügen. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen, die auf den Funktionstyp FILTER_PAUSE in der Headerdatei angewendet werden, verwendet 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_annotationsfinden Sie unter Annotating Function Behavior.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Unterstützt in NDIS 6.0 und höher.
Zielplattform- Fenster
Header- ndis.h (include Ndis.h)
IRQL- PASSIVE_LEVEL

Siehe auch

FilterAttach-

FilterReceiveNetBufferLists

FilterRestart-

FilterReturnNetBufferLists

FilterSendNetBufferLists

FilterSendNetBufferListsComplete-

NDIS_FILTER_PAUSE_PARAMETERS

NDIS_OBJECT_HEADER

NdisFPauseComplete

NdisFReturnNetBufferLists

NdisFSendNetBufferListsComplete

NdisWriteEventLogEntry