Freigeben über


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 mit dem aktuellen Vorgang zusammenhängen.

[in] Flags

Bitmaske von Flags, die beschreiben, warum die angegebene Instanz-Rückrufroutine zum Abreißen von Abfragen aufgerufen wurde. Zurzeit sind keine Flags definiert.

Rückgabewert

Diese Rückrufroutine gibt STATUS_SUCCESS oder einen NTSTATUS- Wert wie einen der folgenden zurück:

Rückgabecode Beschreibung
STATUS_FLT_DO_NOT_DETACH
Durch Zurückgeben dieses Statuswerts wird verhindert, dass die Minifiltertreiberinstanz getrennt wird. Dies ist ein Fehlercode.

Bemerkungen

Wenn sich ein Minifiltertreiber selbst registriert, indem er FltRegisterFilter aus seiner DriverEntry- Routine aufruft, 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 InstanceQueryTeardownCallback Member der FLT_REGISTRATION Struktur, die der Minifiltertreiber als Registration Parameter 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 FltDetachVolumeaufruft.

Diese Routine wird nicht für automatische oder obligatorische Trennen von Anforderungen aufgerufen, z. B. wenn der Minifiltertreiber entladen wird oder ein Volume nicht bereitgestellt wird.

Wenn diese Routine einen Fehler oder eine Warnung NTSTATUS Code zurückgibt, z. B. STATUS_FLT_DO_NOT_DETACH, wird die Minifiltertreiberinstanz nicht vom Volume getrennt. Andernfalls wird die Instanz getrennt.

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

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- fltkernel.h (include Fltkernel.h)
IRQL- PASSIVE_LEVEL

Siehe auch

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FilterDetach-

FltDetachVolume

FltRegisterFilter-

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK