PFLT_INSTANCE_SETUP_CALLBACK Rückruffunktion (fltkernel.h)
Ein Minifiltertreiber kann eine Routine vom Typ PFLT_INSTANCE_SETUP_CALLBACK als InstanzSetupCallback-Routine des Minifiltertreibers registrieren.
Syntax
PFLT_INSTANCE_SETUP_CALLBACK PfltInstanceSetupCallback;
NTSTATUS PfltInstanceSetupCallback(
[in] PCFLT_RELATED_OBJECTS FltObjects,
[in] FLT_INSTANCE_SETUP_FLAGS Flags,
[in] DEVICE_TYPE VolumeDeviceType,
[in] FLT_FILESYSTEM_TYPE VolumeFilesystemType
)
{...}
Parameter
[in] FltObjects
Zeiger auf eine FLT_RELATED_OBJECTS-Struktur , die undurchsichtige Zeiger für die Objekte enthält, die sich auf den aktuellen Vorgang beziehen.
[in] Flags
Bitmaske von Flags, die angeben, warum die instance angefügt wird. Kann mindestens eine der folgenden Elemente sein:
Flag | Bedeutung |
---|---|
FLTFL_INSTANCE_SETUP_AUTOMATIC_ATTACHMENT (0x00000001) | Die instance wird automatisch angefügt. Entweder wurde der Minifiltertreiber gerade geladen und wird an alle vorhandenen Volumes angefügt, oder er wird an ein neu eingebundenes Volume angefügt. |
FLTFL_INSTANCE_SETUP_MANUAL_ATTACHMENT (0x00000002) | Die instance wird manuell angefügt, weil eine Anwendung im Benutzermodus FilterAttach oder FilterAttachAtAltitude aufgerufen hat, oder weil eine Kernelmoduskomponente FltAttachVolume oder FltAttachVolumeAtAltitude aufgerufen hat. |
FLTFL_INSTANCE_SETUP_NEWLY_MOUNTED_VOLUME (0x00000004) | Die instance wird automatisch an ein neu eingebundenes Volume angefügt. |
FLTFL_INSTANCE_SETUP_DETACHED_VOLUME (0x00000008) | Die instance wird an ein losgelöstes Volume angefügt. Auf einigen Dateisystemen (z. B. FAT und CDFS, die von einigen Wechselmedienlaufwerken verwendet werden) ist es möglich, ein Volume erneut anfügen, nachdem es sich getrennt hat. Ein Volume wird getrennt, wenn es keinen zugeordneten Speicherstapel aufweist. Ein Volume in diesem Zustand ist normalerweise ein nicht eingebundenes Volume, das noch geöffnete Dateien enthält. |
FLTFL_INSTANCE_SETUP_DEV_VOLUME (0x00000010) | Die instance wird an ein Volume angefügt, das als Entwicklervolume formatiert ist. Dateisystemfilter können Optimierungen aktivieren, für die kein Administrator erforderlich ist, dem Volume auf einem bestimmten Computer zu vertrauen. Verfügbar ab Windows 11, Version 22H2 September Update. |
FLTFL_INSTANCE_SETUP_TRUSTED_VOLUME (0x00000020) | Gibt an, dass ein Administrator auf einem bestimmten Computer diesem Volume vertraut hat und bereit ist, Optimierungen zu aktivieren, z. B. dass keine Antivirenfilter an das Volume angefügt werden. Diese Informationen werden in der Registrierung auf einem bestimmten Computer beibehalten. Dies kann von den Dateisystemfiltern verwendet werden, um Optimierungen zu aktivieren, bei denen ein Administrator dem Volume auf einem bestimmten Computer vertrauen muss. Verfügbar ab Windows 11, Version 22H2 September Update. |
[in] VolumeDeviceType
Gerätetyp des Dateisystemvolumes. Dies muss eine der folgenden Ressourcen sein:
- FILE_DEVICE_CD_ROM_FILE_SYSTEM (0x00000002)
- FILE_DEVICE_DISK_FILE_SYSTEM (0x00000008)
- FILE_DEVICE_NETWORK_FILE_SYSTEM (0x00000014)
[in] VolumeFilesystemType
Dateisystemtyp des Volumes. Die möglichen Werte sind in FLT_FILESYSTEM_TYPE aufgeführt.
Rückgabewert
Diese Rückrufroutine gibt STATUS_SUCCESS oder einen NTSTATUS-Wert wie den folgenden zurück:
Rückgabecode | Beschreibung |
---|---|
STATUS_FLT_DO_NOT_ATTACH | Durch zurückgeben dieses Werts wird verhindert, dass der Minifiltertreiber instance an das angegebene Volume angefügt wird. Dies ist ein Fehlercode. |
Hinweise
Hinweis
Führen Sie keine Threadsynchronisierung oder Prozessübergreifende Kommunikation in Ihrer PFLT_INSTANCE_SETUP_CALLBACK-Implementierung durch. Die Ausführung solcher Vorgänge kann zu Deadlockbedingungen führen.
Wenn sich ein Minifiltertreiber selbst registriert, indem er FltRegisterFilter aus seiner DriverEntry-Routine aufruft, kann er eine Routine vom Typ PFLT_INSTANCE_SETUP_CALLBACK als InstanceSetupCallback-Routine des Minifiltertreibers registrieren.
Um die InstanzSetupCallback-Routine zu registrieren, speichert der Minifiltertreiber die Adresse einer Routine vom Typ PFLT_INSTANCE_SETUP_CALLBACK im InstanceSetupCallback-Member der FLT_REGISTRATION-Struktur , die der Minifiltertreiber als Registrierungsparameter von FltRegisterFilter übergibt.
Der Filter-Manager ruft diese Routine beim ersten Vorgang auf, nachdem ein neues Volume bereitgestellt wurde.
Der Filter-Manager ruft diese Routine auf, damit der Minifiltertreiber auf eine automatische oder manuelle Anlageanforderung reagieren kann. Wenn diese Routine einen NTSTATUS-Fehler- oder Warnungscode zurückgibt, ist der Minifiltertreiber instance nicht an das angegebene Volume angefügt. Andernfalls wird der Minifiltertreiber instance an das angegebene Volume angefügt.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | fltkernel.h (include Fltkernel.h) |
IRQL | PASSIVE_LEVEL |
Weitere Informationen
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK