PFLT_FILTER_UNLOAD_CALLBACK funzione di callback (fltkernel.h)

Un driver minifilter può registrare una routine di tipo PFLT_FILTER_UNLOAD_CALLBACK come routine FilterUnloadCallback del driver minifilter.

Sintassi

PFLT_FILTER_UNLOAD_CALLBACK PfltFilterUnloadCallback;

NTSTATUS PfltFilterUnloadCallback(
  FLT_FILTER_UNLOAD_FLAGS Flags
)
{...}

Parametri

Flags

Maschera di bit dei flag che descrivono la richiesta di scaricamento. Questo parametro può essere NULL o il seguente:

Contrassegno Significato
FLTFL_FILTER_UNLOAD_MANDATORY Gestione filtri imposta questo flag per indicare che l'operazione di scaricamento è obbligatoria.

Valore restituito

Questa routine di callback restituisce STATUS_SUCCESS o un valore NTSTATUS, ad esempio:

Codice restituito Descrizione
STATUS_FLT_DO_NOT_DETACH Se l'operazione di scaricamento non è obbligatoria, la restituzione di questo valore di stato impedisce il caricamento del driver minifilter. Si tratta di un codice di errore.

Commenti

Quando un driver minifilter si registra chiamando FltRegisterFilter, può registrare una routine FilterUnloadCallback . Per registrare questa routine di callback, il driver minifilter archivia l'indirizzo di una routine di tipo PFLT_FILTER_UNLOAD_CALLBACK nel campo FilterUnloadCallback della struttura FLT_REGISTRATION che il driver minifilter passa come parametro a FltRegisterFilter.

I driver minifilter non sono necessari per registrare una routine FilterUnloadCallback . È tuttavia consigliabile registrare una routine di scaricamento. Se un driver minifilter non registra una routine FilterUnloadCallback , non può essere scaricato.

Quando un driver minifilter registra una routine FilterUnloadCallback :

  • Gestione filtri chiama la routine FilterUnloadCallback per notificare al driver minifilter che il gestore filtri sta per scaricare il driver minifilter.

  • Se l'operazione di scaricamento non è obbligatoria e la routine FilterUnloadCallback restituisce un errore o un codice NTSTATUS di avviso, ad esempio STATUS_FLT_DO_NOT_DETACH, il driver minifilter non viene scaricato. In caso contrario, il driver minifilter viene scaricato.

  • Se il flag FLTFL_FILTER_UNLOAD_MANDATORY è impostato nel parametro Flags , l'operazione di scaricamento è obbligatoria e il driver minifilter non può impedire il caricamento.

Vedere Quando viene chiamata la routine FilterUnloadCallback per altre informazioni sulle possibili cause di scaricamento e sul processo di scaricamento del driver minifilter.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione fltkernel.h (include Fltkernel.h)
IRQL PASSIVE_LEVEL

Vedi anche

FLT_REGISTRATION

FltRegisterFilter