Funzione FwpmBfeStateSubscribeChanges0 (fwpmk.h)

La funzione FwpmBfeStateSubscribeChanges0 registra una funzione di callback chiamata ogni volta che viene apportata una modifica allo stato del motore di filtro.

Avvertimento

Non chiamare FwpmBfeStateUnsubscribeChanges0 dalla funzione di callback passata nel parametro callback. In questo modo può verificarsi un deadlock.

Sintassi

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

Parametri

[in, out] deviceObject

Puntatore a un oggetto dispositivo creato in precedenza dal driver callout. Per altre informazioni su come un driver callout crea un oggetto dispositivo, vedere Creating a Device Object.

[in] callback

Puntatore a una funzione di callout di modifica dello stato del servizio fornita dal driver. Il motore di filtro chiama questa funzione ogni volta che si verifica una modifica dello stato del motore di filtro.

Una funzione di callback di modifica dello stato del servizio viene dichiarata come segue.

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

Contesto

Puntatore passato nel parametro Context quando il driver di callout ha chiamato la funzione FwpmBfeStateSubscribeChanges0.

newState

Nuovo stato del motore di filtro. Questo parametro contiene uno dei valori seguenti:

FWPM_SERVICE_STOPPED

Il motore di filtro non è in esecuzione.

FWPM_SERVICE_START_PENDING

Viene avviato il motore di filtro.

FWPM_SERVICE_STOP_PENDING

Il motore di filtro viene arrestato.

FWPM_SERVICE_RUNNING

Il motore di filtro è in esecuzione.

[in, optional] context

Puntatore a un contesto fornito dal driver di callout passato alla funzione di callback specificata nel parametro callback .

[out] changeHandle

Puntatore a una variabile che riceve un handle associato alla registrazione della funzione di callback. Un driver callout passa questo handle alla funzione FwpmBfeStateUnsubscribeChanges0 per annullare la registrazione della funzione di callback.

Valore restituito

La funzione FwpmBfeStateSubscribeChanges0 restituisce uno dei codici NTSTATUS seguenti:

Codice restituito Descrizione
STATUS_SUCCESS La funzione di callback è stata registrata correttamente.
Altri codici NTSTATUS Si è verificato un errore.

Osservazioni

Un driver callout chiama la funzione fwpmBfeStateSubscribeChanges0 per registrare una funzione di callback chiamata ogni volta che viene apportata una modifica allo stato del motore di filtro.

Ad esempio, un driver callout non può aprire una sessione al motore di filtro chiamando la funzione fwpmEngineOpen0 a meno che il motore di filtro non sia attualmente in esecuzione. Un driver callout può usare la notifica di FWPM_SERVICE_RUNNING per aprire una sessione al motore di filtro in modo che possa effettuare chiamate alle altre funzioni di gestione di Windows Filtering Platform. Analogamente, un driver callout può usare la notifica di FWPM_SERVICE_STOP_PENDING per eseguire qualsiasi pulizia prima che il motore di filtro venga arrestato.

Un driver callout deve chiamare FwpmBfeStateSubscribeChanges0 prima di chiamare la funzione fwpmBfeStateGet0 per recuperare lo stato corrente del motore di filtro. Al termine della chiamata a FwpmBfeStateSubscribeChanges0, il driver callout può chiamare FwpmBfeStateGet0 in qualsiasi momento.

Un driver callout deve annullare la registrazione della funzione di callback chiamando la funzione di callback FwpmBfeStateUnsubscribeChanges0 prima che il driver del callout possa essere scaricato.

FwpmBfeStateSubscribeChanges0 è una versione specifica di FwpmBfeStateSubscribeChanges. Per altre informazioni, vedere nomi Version-Independent WFP e selezione di versioni specifiche di Windows.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile a partire da Windows Vista.
piattaforma di destinazione Universale
intestazione fwpmk.h (include Fwpmk.h)
libreria Fwpkclnt.lib
IRQL PASSIVE_LEVEL

Vedere anche