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.
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
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK
PFLT_INSTANCE_TEARDOWN_CALLBACK
PFLT_NORMALIZE_CONTEXT_CLEANUP