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