Freigeben über


FwpmBfeStateSubscribeChanges0-Funktion (fwpmk.h)

Die Funktion FwpmBfeStateSubscribeChanges0 registriert eine Rückruffunktion, die aufgerufen wird, wenn sich der Status der Filter-Engine ändert.

HinweisFwpmBfeStateSubscribeChanges0 ist eine bestimmte Version von FwpmBfeStateSubscribeChanges. Weitere Informationen finden Sie unter WFP Version-Independent Namen und Zielgruppenspezifische Windows-Versionen .
 

Warnung

Rufen Sie FwpmBfeStateUnsubscribeChanges0 nicht über die Rückruffunktion auf, die Sie im Rückrufparameter übergeben haben. Dies kann zu einem Deadlock führen.

Syntax

NTSTATUS FwpmBfeStateSubscribeChanges0(
  [in, out]      void                                *deviceObject,
  [in]           FWPM_SERVICE_STATE_CHANGE_CALLBACK0 callback,
  [in, optional] void                                *context,
  [out]          HANDLE                              *changeHandle
);

Parameter

[in, out] deviceObject

Ein Zeiger auf ein Geräteobjekt, das zuvor vom Legendentreiber erstellt wurde. Weitere Informationen dazu, wie ein Legendentreiber ein Geräteobjekt erstellt, finden Sie unter Erstellen eines Geräteobjekts.

[in] callback

Ein Zeiger auf eine vom Treiber bereitgestellte Rückruffunktion zum Ändern des Dienstzustands. Die Filter-Engine ruft diese Funktion auf, wenn sich der Status der Filter-Engine ändert.

Eine Rückruffunktion des Dienstzustands wird wie folgt deklariert.

VOID NTAPI
callback(
    IN OUT void  *context,
    IN FWPM_SERVICE_STATE  newState
    );

Kontext

Der Zeiger, der im Context-Parameter übergeben wurde, als der Legendentreiber die Funktion FwpmBfeStateSubscribeChanges0 aufgerufen hat.

newState

Der neue Zustand der Filter-Engine. Dieser Parameter enthält einen der folgenden Werte:

FWPM_SERVICE_STOPPED

Die Filter-Engine wird nicht ausgeführt.

FWPM_SERVICE_START_PENDING

Die Filter-Engine wird gestartet.

FWPM_SERVICE_STOP_PENDING

Die Filter-Engine wird beendet.

FWPM_SERVICE_RUNNING

Die Filter-Engine wird ausgeführt.

[in, optional] context

Ein Zeiger auf einen vom Legendentreiber bereitgestellten Kontext, der an die im Rückrufparameter angegebene Rückruffunktion übergeben wird.

[out] changeHandle

Ein Zeiger auf eine Variable, die ein Handle empfängt, das der Registrierung der Rückruffunktion zugeordnet ist. Ein Legendentreiber übergibt dieses Handle an die Funktion FwpmBfeStateUnsubscribeChanges0 , um die Registrierung der Rückruffunktion aufzuheben.

Rückgabewert

Die FwpmBfeStateSubscribeChanges0-Funktion gibt einen der folgenden NTSTATUS-Codes zurück:

Rückgabecode Beschreibung
STATUS_SUCCESS
Die Rückruffunktion wurde erfolgreich registriert.
Andere status Codes
Ein Fehler ist aufgetreten.

Hinweise

Ein Legendentreiber ruft die FwpmBfeStateSubscribeChanges0-Funktion auf, um eine Rückruffunktion zu registrieren, die aufgerufen wird, wenn sich der Zustand des Filtermoduls ändert.

Beispielsweise kann ein Legendentreiber keine Sitzung für das Filtermodul öffnen, indem er die Funktion FwpmEngineOpen0 aufruft , es sei denn, die Filter-Engine wird derzeit ausgeführt. Ein Legendentreiber kann die FWPM_SERVICE_RUNNING Benachrichtigung verwenden, um eine Sitzung für die Filter-Engine zu öffnen, sodass er Aufrufe an die anderen Verwaltungsfunktionen der Windows-Filterplattform tätigen kann. Auf ähnliche Weise kann ein Legendentreiber die FWPM_SERVICE_STOP_PENDING Benachrichtigung verwenden, um eine Bereinigung durchzuführen, bevor das Filtermodul beendet wird.

Ein Legendentreiber muss FwpmBfeStateSubscribeChanges0 aufrufen, bevor die Funktion FwpmBfeStateGet0 aufgerufen wird, um den aktuellen Zustand der Filter-Engine abzurufen. Nachdem der Aufruf von FwpmBfeStateSubscribeChanges0 zurückgegeben wurde, kann der Legendentreiber fwpmBfeStateGet0 jederzeit aufrufen.

Ein Legendentreiber muss die Registrierung der Rückruffunktion aufheben, indem er die fwpmBfeStateUnsubscribeChanges0-Funktion , bevor der Legendentreiber entladen werden kann.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows Vista.
Zielplattform Universell
Header fwpmk.h (einschließlich Fwpmk.h)
Bibliothek Fwpkclnt.lib
IRQL PASSIVE_LEVEL

Weitere Informationen

FwpmBfeStateGet0

FwpmBfeStateUnsubscribeChanges0

FwpmEngineOpen0