Freigeben über


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

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FilterAttach

FilterAttachAtAltitude

FltAttachVolume

FltAttachVolumeAtAltitude

FltRegisterFilter

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK

Dev Drive