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 |
---|---|
|
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 |