Condividi tramite


struttura FLT_REGISTRATION (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;

Membri

Size

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

Version

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

Flags

Maschera di bit di flag di registrazione minifiltro. Questo membro può essere NULL o una combinazione di quanto segue.

Valore Significato
FLTFL_REGISTRATION_DO_NOT_SUPPORT_SERVICE_STOP
Se questo flag è impostato, il minifiltro 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 minifiltro supporterà il filtro delle richieste named pipe e mailslot. Questo flag è stato introdotto in Windows 8.
FLTFL_REGISTRATION_SUPPORT_DAX_VOLUME
Se questo flag è impostato, il minifiltro supporterà il collegamento a un volume DAX (Direct Access). In questo modo si indicherà a Gestione filtri 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 utilizzato dal minifiltro. L'ultimo elemento nella 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 minifiltro registra le routine di callback (PFLT_PRE_OPERATION_CALLBACK) e postoperazione (PFLT_POST_OPERATION_CALLBACK). L'ultimo elemento nella 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 minifiltro routine. 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 minifiltro. Questo membro è facoltativo e può essere NULL. Si noti che se NULL viene specificato per questa routine, l'allegato viene sempre creato.

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 del minifilter InstanceTeardownStartCallback routine. 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 routine del minifiltro. Questo membro è facoltativo e può essere NULL.

NormalizeNameComponentCallback

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

NormalizeContextCleanupCallback

Puntatore a una routine di tipo PFLT_NORMALIZE_CONTEXT_CLEANUP da registrare come routine NormalizeContextCleanupCallback routine del minifiltro. 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 minifiltro. 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 del driver minifilter NormalizeNameComponentExCallback routine. Questo membro è facoltativo e può essere NULL.

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

Un driver minifiltro può impostare simultaneamente i membri NormalizeNameComponentCallback e NormalizeNameComponentExCallback su NULL; Tuttavia, un driver minifilter provider name deve registrare un NormalizeNameComponentCallback o NormalizeNameComponentExCallback routine di callback o entrambi. Ad esempio, un driver minifiltro del provider di nomi che non dispone di alcun utilizzo per il parametro FileObject aggiuntivo può impostare il membro NormalizeNameComponentExCallback su NULL e fornire solo un NormalizeNameComponentCallback routine di callback.

Un driver minifilter può fornire un callback NormalizeNameComponentCallback e un callback NormalizeNameComponentExCallback. In questo caso, a partire da Windows Vista, il gestore filtri userà solo il callback NormalizeNameComponentExCallback; per i sistemi operativi Windows precedenti a Windows Vista, il gestore filtri userà solo il callback NormalizeNameComponentCallback. 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.

Osservazioni

La struttura FLT_REGISTRATION viene usata per fornire informazioni su un minifiltro 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) routine di callback al gestore filtri. Il minifiltro passa un puntatore a questa struttura come parametro Registration per FltRegisterFilter.

Fabbisogno

Requisito Valore
intestazione fltkernel.h (include Fltkernel.h)

Vedere 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