FLT_REGISTRATION struttura (fltkernel.h)

La struttura FLT_REGISTRATION viene passata come parametro a FltRegisterFilter.

Sintassi

typedef struct _FLT_REGISTRATION {
  USHORT                                      Size;
  USHORT                                      Version;
  FLT_REGISTRATION_FLAGS                      Flags;
  const FLT_CONTEXT_REGISTRATION              *ContextRegistration;
  const FLT_OPERATION_REGISTRATION            *OperationRegistration;
  PFLT_FILTER_UNLOAD_CALLBACK                 FilterUnloadCallback;
  PFLT_INSTANCE_SETUP_CALLBACK                InstanceSetupCallback;
  PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK       InstanceQueryTeardownCallback;
  PFLT_INSTANCE_TEARDOWN_CALLBACK             InstanceTeardownStartCallback;
  PFLT_INSTANCE_TEARDOWN_CALLBACK             InstanceTeardownCompleteCallback;
  PFLT_GENERATE_FILE_NAME                     GenerateFileNameCallback;
  PFLT_NORMALIZE_NAME_COMPONENT               NormalizeNameComponentCallback;
  PFLT_NORMALIZE_CONTEXT_CLEANUP              NormalizeContextCleanupCallback;
  PFLT_TRANSACTION_NOTIFICATION_CALLBACK      TransactionNotificationCallback;
  PFLT_NORMALIZE_NAME_COMPONENT_EX            NormalizeNameComponentExCallback;
  PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK SectionNotificationCallback;
} FLT_REGISTRATION, *PFLT_REGISTRATION;

Members

Size

Dimensioni, in byte, della struttura FLT_REGISTRATION. I driver minifilter devono impostare questo membro su sizeof(FLT_REGISTRATION).

Version

Livello di revisione della struttura FLT_REGISTRATION. I driver minifilter devono impostare questo membro su FLT_REGISTRATION_VERSION.

Flags

Maschera di contrassegni di registrazione minifilter. Questo membro può essere NULL o una combinazione dei seguenti.

Valore Significato
FLTFL_REGISTRATION_DO_NOT_SUPPORT_SERVICE_STOP
Se questo flag è impostato, il minifilter non viene scaricato in risposta alle richieste di arresto del servizio, anche se il membro FilterUnloadCallback non è NULL.
FLTFL_REGISTRATION_SUPPORT_NPFS_MSFS
Se questo flag è impostato, il minifilter supporterà il filtro delle richieste denominate pipe e mailslot. Questo flag è stato introdotto in Windows 8.
FLTFL_REGISTRATION_SUPPORT_DAX_VOLUME
Se questo flag è impostato, il minifilter supporta il collegamento a un volume DAX (Direct Access). Questo indicherà a Filter Manager che il minifiltro filtra il volume DAX. Questo flag è stato introdotto in Windows 10 versione 1607.

ContextRegistration

Matrice a lunghezza variabile di strutture FLT_CONTEXT_REGISTRATION , una per ogni tipo di contesto usato dal minifiltro. L'ultimo elemento della matrice deve essere {FLT_CONTEXT_END}. Questo membro è facoltativo e può essere NULL.

OperationRegistration

Matrice a lunghezza variabile di strutture FLT_OPERATION_REGISTRATION , una per ogni tipo di I/O per cui il minifilter registra la preoperazione (PFLT_PRE_OPERATION_CALLBACK) e le routine di callback (PFLT_POST_OPERATION_CALLBACK). L'ultimo elemento della matrice deve essere {IRP_MJ_OPERATION_END}. Questo membro è facoltativo e può essere NULL.

FilterUnloadCallback

Puntatore a una routine di tipo PFLT_FILTER_UNLOAD_CALLBACK da registrare come routine filterUnloadCallback del minifilter. Questo membro è facoltativo e può essere NULL. Si noti che se null viene specificato per questa routine, il filtro non può mai essere scaricato.

InstanceSetupCallback

Puntatore a una routine di tipo PFLT_INSTANCE_SETUP_CALLBACK da registrare come routine InstanceSetupCallback del minifilter. Questo membro è facoltativo e può essere NULL. Si noti che se null viene specificato per questa routine, l'allegato viene sempre effettuato.

InstanceQueryTeardownCallback

Puntatore a una routine di tipo PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK da registrare come routine instanceQueryTeardownCallback del minifilter. Questo membro è facoltativo e può essere NULL. Si noti che se null viene specificato per questa routine, le istanze non verranno mai scollegate manualmente.

InstanceTeardownStartCallback

Puntatore a una routine di tipo PFLT_INSTANCE_TEARDOWN_CALLBACK da registrare come routine instanceTeardownStartCallback del minifilter. Questo membro è facoltativo e può essere NULL.

InstanceTeardownCompleteCallback

Puntatore a una routine di tipo PFLT_INSTANCE_TEARDOWN_CALLBACK da registrare come routine instanceTeardownCompleteCallback del minifilter. Questo membro è facoltativo e può essere NULL.

GenerateFileNameCallback

Puntatore a una routine di tipo PFLT_GENERATE_FILE_NAME da registrare come routine GenerateFileNameCallback del minifilter. Questo membro è facoltativo e può essere NULL.

NormalizeNameComponentCallback

Puntatore a una routine di tipo PFLT_NORMALIZE_NAME_COMPONENT da registrare come routine NormalNameComponentCallback del minifilter. Questo membro è facoltativo e può essere NULL.

NormalizeContextCleanupCallback

Puntatore a una routine di tipo PFLT_NORMALIZE_CONTEXT_CLEANUP da registrare come routine NormalContextCleanupCallback del minifilter. Questo membro è facoltativo e può essere NULL.

TransactionNotificationCallback

(Solo Windows Vista e versioni successive). Puntatore a una routine di tipo PFLT_TRANSACTION_NOTIFICATION_CALLBACK da registrare come routine TransactionNotificationCallback del minifilter. Questo membro è facoltativo e può essere NULL.

NormalizeNameComponentExCallback

(Solo Windows Vista e versioni successive). Puntatore a una routine di tipo PFLT_NORMALIZE_NAME_COMPONENT_EX da registrare come routine NormalNameComponentExCallback del driver minifilter. Questo membro è facoltativo e può essere NULL.

Rispetto alla routine di callback NormalNameComponentCallback , la routine di callback NormalNameComponentExCallback supporta un parametro di oggetto file aggiuntivo, FileObject (di tipo PFILE_OBJECT). Un driver minifilter può usare questo parametro per acquisire informazioni aggiuntive, ad esempio quelle fornite dalla struttura TXN_PARAMETER_BLOCK .

Un driver minifilter può impostare simultaneamente sia i membri NormalNameComponentCallback che NormalNameComponentExCallback su NULL; tuttavia, un driver minifilter del provider di nomi deve registrare una routine di callback NormalNameComponentCallback o NormalNameComponentExCallback o entrambe. Ad esempio, un driver minifilter del provider di nomi senza uso per il parametro FileObject aggiuntivo può impostare il membro NormalNameComponentExCallback su NULL e fornire solo una routine di callback NormalNameComponentCallback .

Un driver minifilter può fornire sia un callback NormalNameComponentCallback che un callback NormalNameComponentExCallback . In questo caso, a partire da Windows Vista, il gestore filtri userà solo il callback NormalNameComponentExCallback ; per i sistemi operativi Windows prima di Windows Vista, il gestore filtri userà solo il callback NormalNameComponentCallback . Ciò consente l'esecuzione dello stesso file binario del driver minifilter in tutte le versioni del sistema operativo.

SectionNotificationCallback

Puntatore a una routine di tipo PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK da registrare come routine sectionNotificationCallback del minifilter. Questo membro è facoltativo e può essere NULL. Questo callback viene chiamato per le notifiche degli errori di I/O per le sezioni create con FltCreateSectionForDatascan.

Commenti

La struttura FLT_REGISTRATION viene usata per fornire informazioni su un minifilter del file system, ad esempio una routine FilterUnloadCallback (PFLT_FILTER_UNLOAD_CALLBACK) e la preoperazione (PFLT_PRE_OPERATION_CALLBACK) e la postoperazione (PFLT_POST_OPERATION_CALLBACK), alle routine di callback, alla gestione filtri. Il minifilter passa un puntatore a questa struttura come parametro Di registrazione a FltRegisterFilter.

Requisiti

Requisito Valore
Intestazione fltkernel.h (includere Fltkernel.h)

Vedi anche

FLT_CONTEXT_REGISTRATION

FLT_OPERATION_REGISTRATION

FltRegisterFilter

PFLT_FILTER_UNLOAD_CALLBACK

PFLT_GENERATE_FILE_NAME

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK

PFLT_NORMALIZE_CONTEXT_CLEANUP

PFLT_NORMALIZE_NAME_COMPONENT

PFLT_NORMALIZE_NAME_COMPONENT_EX

PFLT_POST_OPERATION_CALLBACK

PFLT_PRE_OPERATION_CALLBACK

PFLT_TRANSACTION_NOTIFICATION_CALLBACK