Freigeben über


FLT_REGISTRATION Struktur (fltkernel.h)

Die FLT_REGISTRATION-Struktur wird als Parameter an FltRegisterFilterübergeben.

Syntax

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;

Angehörige

Size

Die Größe der FLT_REGISTRATION Struktur in Byte. Minifiltertreiber müssen dieses Mitglied auf Größe von(FLT_REGISTRATION) festlegen.

Version

Die Revisionsebene der FLT_REGISTRATION-Struktur. Minifiltertreiber müssen dieses Mitglied auf FLT_REGISTRATION_VERSION festlegen.

Flags

Eine Bitmaske von Minifilter-Registrierungsflaggen. Dieses Element kann NULL- oder eine Kombination aus folgendem Element sein.

Wert Bedeutung
FLTFL_REGISTRATION_DO_NOT_SUPPORT_SERVICE_STOP
Wenn dieses Flag festgelegt ist, wird der Minifilter nicht als Reaktion auf Service-Stop-Anforderungen entladen, auch wenn das FilterUnloadCallback Member nicht NULL-ist.
FLTFL_REGISTRATION_SUPPORT_NPFS_MSFS
Wenn diese Kennzeichnung festgelegt ist, unterstützt der Minifilter das Filtern von benannten Pipe- und Maillot-Anforderungen. Dieses Flag wurde in Windows 8 eingeführt.
FLTFL_REGISTRATION_SUPPORT_DAX_VOLUME
Wenn dieses Kennzeichen festgelegt ist, unterstützt der Minifilter das Anfügen an ein DAX-Volume (Direct Access). Dadurch wird der Filter-Manager angegeben, dass der Minifilter das DAX-Volume filtert. Dieses Flag wurde in Windows 10, Version 1607, eingeführt.

ContextRegistration

Ein Array mit variabler Länge von FLT_CONTEXT_REGISTRATION Strukturen, eines für jeden Kontexttyp, den der Minifilter verwendet. Das letzte Element im Array muss {FLT_CONTEXT_END} sein. Dieses Element ist optional und kann NULL-sein.

OperationRegistration

Ein Array mit variabler Länge von FLT_OPERATION_REGISTRATION Strukturen, eines für jeden Typ von E/A, für den der Minifilter voroperation (PFLT_PRE_OPERATION_CALLBACK) und postoperation (PFLT_POST_OPERATION_CALLBACK) Rückrufroutinen registriert. Das letzte Element im Array muss {IRP_MJ_OPERATION_END} sein. Dieses Element ist optional und kann NULL-sein.

FilterUnloadCallback

Ein Zeiger auf eine Routine vom Typ PFLT_FILTER_UNLOAD_CALLBACK, die als FilterUnloadCallback-Routine des Minifilters registriert werden soll. Dieses Element ist optional und kann NULL-sein. Beachten Sie, dass der Filter niemals entladen werden kann, wenn NULL- für diese Routine angegeben ist.

InstanceSetupCallback

Ein Zeiger auf eine Routine vom Typ PFLT_INSTANCE_SETUP_CALLBACK, die als InstanceSetupCall back-Routine des Minifilters registriert werden soll. Dieses Element ist optional und kann NULL-sein. Beachten Sie, dass die Anlage immer erstellt wird, wenn NULL- für diese Routine angegeben wird.

InstanceQueryTeardownCallback

Ein Zeiger auf eine Routine vom Typ PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK, die als InstanceQueryTeardownCall back-Routine des Minifilters registriert werden soll. Dieses Element ist optional und kann NULL-sein. Wenn NULL- für diese Routine angegeben wird, werden Instanzen nie manuell getrennt.

InstanceTeardownStartCallback

Ein Zeiger auf eine Routine vom Typ PFLT_INSTANCE_TEARDOWN_CALLBACK, die als InstanceTeardownStartCall back-Routine des Minifilters registriert werden soll. Dieses Element ist optional und kann NULL-sein.

InstanceTeardownCompleteCallback

Ein Zeiger auf eine Routine vom Typ PFLT_INSTANCE_TEARDOWN_CALLBACK, die als InstanceTeardownCompleteCall back-Routine des Minifilters registriert werden soll. Dieses Element ist optional und kann NULL-sein.

GenerateFileNameCallback

Ein Zeiger auf eine Routine vom Typ PFLT_GENERATE_FILE_NAME, die als GenerateFileNameCallback-Routine des Minifilters registriert werden soll. Dieses Element ist optional und kann NULL-sein.

NormalizeNameComponentCallback

Ein Zeiger auf eine Routine vom Typ PFLT_NORMALIZE_NAME_COMPONENT, die als NormalizeNameComponentCallback Routine des Minifilters registriert werden soll. Dieses Element ist optional und kann NULL-sein.

NormalizeContextCleanupCallback

Ein Zeiger auf eine Routine vom Typ PFLT_NORMALIZE_CONTEXT_CLEANUP, die als NormalizeContextCleanupCallback Routine des Minifilters registriert werden soll. Dieses Element ist optional und kann NULL-sein.

TransactionNotificationCallback

(Nur Windows Vista und höher.) Ein Zeiger auf eine Routine vom Typ PFLT_TRANSACTION_NOTIFICATION_CALLBACK, die als TransactionNotificationCallback Routine des Minifilters registriert werden soll. Dieses Element ist optional und kann NULL-sein.

NormalizeNameComponentExCallback

(Nur Windows Vista und höher.) Ein Zeiger auf eine Routine vom Typ PFLT_NORMALIZE_NAME_COMPONENT_EX, die als NormalizeNameComponentExCallback-Routine des Minifiltertreibers registriert werden soll. Dieses Element ist optional und kann NULL-sein.

Im Vergleich zur NormalizeNameComponentCallback- Rückrufroutine unterstützt die NormalizeNameComponentExCallback- Rückrufroutine einen zusätzlichen Dateiobjektparameter, FileObject- (vom Typ PFILE_OBJECT). Ein Minifiltertreiber kann diesen Parameter verwenden, um zusätzliche Informationen abzurufen, z. B. die von der TXN_PARAMETER_BLOCK-Struktur bereitgestellt werden.

Ein Minifiltertreiber kann gleichzeitig sowohl die NormalizeNameComponentCallback- als auch NormalizeNameComponentExCallback Member auf NULL-festlegen; Ein Namensanbieter-Minifiltertreiber muss jedoch entweder eine NormalizeNameComponentCallback- oder NormalizeNameComponentExCallback Rückrufroutine oder beides registrieren. Beispielsweise kann ein Namensanbieter-Minifiltertreiber, der für den zusätzlichen FileObject- Parameter keine Verwendung hat, den NormalizeNameComponentExCallback Member auf NULL- festlegen und nur eine NormalizeNameComponentCallback Rückrufroutine bereitstellen.

Ein Minifiltertreiber kann sowohl einen NormalizeNameComponentCallback Rückruf als auch einen NormalizeNameComponentExCallback Rückruf bereitstellen. In diesem Fall verwendet der Filter-Manager ab Windows Vista nur den NormalizeNameComponentExCallback Rückruf; für Windows-Betriebssysteme vor Windows Vista verwendet der Filter-Manager nur den NormalizeNameComponentCallback Rückruf. Dadurch kann die gleiche Minifiltertreiber-Binärdatei unter allen Versionen des Betriebssystems ausgeführt werden.

SectionNotificationCallback

Zeiger auf eine Routine vom Typ PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK, die als SectionNotificationCallback Routine des Minifilters registriert werden soll. Dieses Element ist optional und kann NULL-sein. Dieser Rückruf wird für Benachrichtigungen von E/A-Fehlern für Abschnitte aufgerufen, die mit FltCreateSectionForDatascanerstellt wurden.

Bemerkungen

Die FLT_REGISTRATION Struktur wird verwendet, um Informationen zu einem Dateisystem-Minifilter bereitzustellen, z. B. eine FilterUnloadCallback- (PFLT_FILTER_UNLOAD_CALLBACK) Routine und Preoperation (PFLT_PRE_OPERATION_CALLBACK) und Postoperation (PFLT_POST_OPERATION_CALLBACK) Rückrufroutinen an den Filter-Manager. Der Minifilter übergibt einen Zeiger auf diese Struktur als Registration Parameter an FltRegisterFilter.

Anforderungen

Anforderung Wert
Header- fltkernel.h (include Fltkernel.h)

Siehe auch

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