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;

Member

Size

Die Größe der FLT_REGISTRATION-Struktur in Bytes. Minifiltertreiber müssen diesen Member auf sizeof(FLT_REGISTRATION) festlegen.

Version

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

Flags

Eine Bitmaske von Minifilterregistrierungsflags. Dieser Member kann NULL oder eine Kombination aus folgendem sein.

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

ContextRegistration

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

OperationRegistration

Ein Array mit FLT_OPERATION_REGISTRATION Strukturen variabler Länge, eines für jeden E/A-Typ, für den der Minifilter Rückrufroutinen für Preoperation (PFLT_PRE_OPERATION_CALLBACK) und Postoperation (PFLT_POST_OPERATION_CALLBACK) registriert. Das letzte Element im Array muss {IRP_MJ_OPERATION_END} sein. Dieser Member 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. Dieser Member ist optional und kann NULL sein. Beachten Sie, dass der Filter niemals entladen werden kann, wenn NULL für diese Routine angegeben wird.

InstanceSetupCallback

Ein Zeiger auf eine Routine vom Typ PFLT_INSTANCE_SETUP_CALLBACK als InstanzsetupCallback-Routine des Minifilters registriert werden. Dieser Member 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 InstanzabfrageTeardownCallback-Routine des Minifilters registriert werden soll. Dieser Member ist optional und kann NULL sein. Beachten Sie, dass Instanzen nie manuell getrennt werden, wenn NULL für diese Routine angegeben wird.

InstanceTeardownStartCallback

Ein Zeiger auf eine Routine vom Typ PFLT_INSTANCE_TEARDOWN_CALLBACK , die als InstanceTeardownStartCallback-Routine des Minifilters registriert werden soll. Dieser Member ist optional und kann NULL sein.

InstanceTeardownCompleteCallback

Ein Zeiger auf eine Routine vom Typ PFLT_INSTANCE_TEARDOWN_CALLBACK , die als InstanceTeardownCompleteCallback-Routine des Minifilters registriert werden soll. Dieser Member ist optional und kann NULL sein.

GenerateFileNameCallback

Ein Zeiger auf eine Routine vom Typ PFLT_GENERATE_FILE_NAME als GenerateFileNameCallback-Routine des Minifilters registriert werden. Dieser Member 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. Dieser Member 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. Dieser Member ist optional und kann NULL sein.

TransactionNotificationCallback

(Nur Windows Vista und höher.) Ein Zeiger auf eine Routine vom Typ PFLT_TRANSACTION_NOTIFICATION_CALLBACK als TransactionNotificationCallback-Routine des Minifilters registriert werden. Dieser Member 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 als NormalizeNameComponentExCallback-Routine des Minifiltertreibers registriert werden. Dieser Member ist optional und kann NULL sein.

Im Vergleich zur Rückrufroutine NormalizeNameComponentCallback unterstützt die Rückrufroutine NormalizeNameComponentExCallback den zusätzlichen Dateiobjektparameter FileObject (vom Typ PFILE_OBJECT). Ein Minifiltertreiber kann diesen Parameter verwenden, um zusätzliche Informationen wie die von der TXN_PARAMETER_BLOCK-Struktur bereitgestellten zu erhalten.

Ein Minifiltertreiber kann gleichzeitig die Elemente NormalizeNameComponentCallback und NormalizeNameComponentExCallback auf NULL festlegen. Ein Namensanbieter-Minifiltertreiber muss jedoch entweder eine NormalizeNameComponentCallback - oder NormalizeNameComponentExCallback-Rückrufroutine oder beides registrieren. Beispielsweise kann ein Namensanbieter-Minifiltertreiber, der keine Verwendung für den zusätzlichen FileObject-Parameter hat, das Element NormalizeNameComponentExCallback 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 Rückruf NormalizeNameComponentCallback . 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. Dieser Member ist optional und kann NULL sein. Dieser Rückruf wird für Benachrichtigungen über E/A-Fehler für Abschnitte aufgerufen, die mit FltCreateSectionForDatascan erstellt wurden.

Hinweise

Die FLT_REGISTRATION-Struktur wird verwendet, um Dem Filter-Manager Informationen über einen Dateisystemminifilter bereitzustellen, z. B. eine FilterUnloadCallback-Routine(PFLT_FILTER_UNLOAD_CALLBACK) und PFLT_PRE_OPERATION_CALLBACK ( Preoperation) und Postoperation (PFLT_POST_OPERATION_CALLBACK). Der Minifilter übergibt einen Zeiger auf diese Struktur als Registrierungsparameter an FltRegisterFilter.

Anforderungen

Anforderung Wert
Header fltkernel.h (fltkernel.h einschließen)

Weitere Informationen

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