Funzione FltRegisterFilter (fltkernel.h)

FltRegisterFilter registra un driver minifilter.

Sintassi

NTSTATUS FLTAPI FltRegisterFilter(
  [in]  PDRIVER_OBJECT         Driver,
  [in]  const FLT_REGISTRATION *Registration,
  [out] PFLT_FILTER            *RetFilter
);

Parametri

[in] Driver

Puntatore all'oggetto driver per il driver minifilter. Deve trattarsi dello stesso puntatore a oggetti driver passato come input alla routine DriverEntry del driver minifilter.

[in] Registration

Puntatore a una struttura di registrazione del driver minifilter allocata dal chiamante (FLT_REGISTRATION).

[out] RetFilter

Puntatore a una variabile allocata dal chiamante che riceve un puntatore di filtro opaco per il chiamante.

Valore restituito

FltRegisterFilter restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio uno dei seguenti:

Codice restituito Descrizione
STATUS_INSUFFICIENT_RESOURCES
FltRegisterFilter ha rilevato un errore di allocazione del pool. Si tratta di un codice di errore.
STATUS_INVALID_PARAMETER
I tipi validi sono:
  • Il membro Version della struttura Registration non è stato impostato su FLT_REGISTRATION_VERSION.
  • Una delle routine name-provider non NULL nella struttura Registration è stata impostata su un valore non valido. I membri GenerateFileNameCallback, NormalizeNameComponentCallback e NormalizeNameComponentExCallback di FLT_REGISTRATION puntano alle routine name-provider.
STATUS_INVALID_PARAMETER è un codice di errore.
STATUS_FLT_NOT_INITIALIZED
Gestione filtri non è stato inizializzato quando il filtro ha tentato di registrare. Assicurarsi che Gestione filtri sia caricato come driver. Si tratta di un codice di errore.
STATUS_OBJECT_NAME_NOT_FOUND
La chiave del servizio di filtro non viene trovata nel Registro di sistema.

-oppure-

L'istanza del filtro non è registrata.

Commenti

Ogni driver minifilter deve chiamare FltRegisterFilter dalla routine DriverEntry per aggiungersi all'elenco globale di driver minifilter registrati e fornire a Gestione filtri un elenco di funzioni di callback e altre informazioni sul driver minifilter.

FltRegisterFilter restituisce un puntatore di filtro opaco per il driver minifilter in *RetFilter. Questo valore del puntatore identifica in modo univoco il driver minifilter e rimane costante finché il driver minifilter viene caricato. Il driver minifilter deve salvare questo puntatore, perché è un parametro obbligatorio per FltStartFiltering e FltUnregisterFilter.

Dopo aver chiamato FltRegisterFilter, un driver minifilter chiama in genere FltStartFiltering per iniziare a filtrare le operazioni di I/O.

Un driver minifilter può solo chiamare FltRegisterFilter per registrarsi, non un altro driver minifilter.

Per annullare la registrazione, un driver minifilter chiama FltUnregisterFilter..

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione fltkernel.h (include Fltkernel.h)
Libreria FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Vedi anche

FLT_REGISTRATION

FltStartFiltering

FltUnregisterFilter