PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK Rückruffunktion (fltkernel.h)

Ein Minifiltertreiber kann eine Routine vom Typ PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK als InstanceQueryTeardownCallback-Routine des Minifiltertreibers registrieren.

Syntax

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK PfltInstanceQueryTeardownCallback;

NTSTATUS PfltInstanceQueryTeardownCallback(
  [in] PCFLT_RELATED_OBJECTS FltObjects,
  [in] FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags
)
{...}

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 beschreiben, warum die angegebene instance Rückrufroutine zum Beenden von Abfragen aufgerufen wurde. Derzeit sind keine Flags definiert.

Rückgabewert

Diese Rückrufroutine gibt STATUS_SUCCESS oder einen NTSTATUS-Wert zurück, z. B. einen der folgenden:

Rückgabecode Beschreibung
STATUS_FLT_DO_NOT_DETACH
Die Rückgabe dieses status Werts verhindert, dass der Minifiltertreiber instance getrennt wird. Dies ist ein Fehlercode.

Hinweise

Wenn sich ein Minifiltertreiber durch Aufrufen von FltRegisterFilter aus seiner DriverEntry-Routine registriert, kann er eine Routine vom Typ PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK als InstanceQueryTeardownCallback-Routine des Minifiltertreibers registrieren.

Um die InstanceQueryTeardownCallback-Routine zu registrieren, speichert der Minifiltertreiber die Adresse einer Routine vom Typ PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK im Member InstanceQueryTeardownCallback der FLT_REGISTRATION Struktur, die der Minifiltertreiber als Registrierungsparameter von FltRegisterFilter übergibt.

Der Filter-Manager ruft diese Routine auf, damit der Minifiltertreiber auf eine manuelle Trennanforderung reagieren kann. Eine solche Anforderung wird empfangen, wenn eine Benutzermodusanwendung FilterDetach aufruft oder eine Kernelmoduskomponente FltDetachVolume aufruft.

Diese Routine wird nicht für automatische oder obligatorische Trennanforderungen aufgerufen, z. B. wenn der Minifiltertreiber entladen oder ein Volume aufgehoben wird.

Wenn diese Routine einen Fehler- oder Warnungscode zurückgibt, z. B. STATUS_FLT_DO_NOT_DETACH, wird der Minifiltertreiber instance nicht vom Volume getrennt. Andernfalls wird der instance getrennt.

Wenn ein Minifiltertreiber keine InstanceQueryTeardownCallback-Routine definiert, können seine Instanzen nicht manuell durch Aufrufen von FilterDetach oder FltDetachVolume getrennt werden.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile fltkernel.h (fltkernel.h einschließen)
IRQL PASSIVE_LEVEL

Weitere Informationen

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FilterDetach

FltDetachVolume

FltRegisterFilter

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK