PFLT_FILTER_UNLOAD_CALLBACK Rückruffunktion (fltkernel.h)

Ein Minifiltertreiber kann eine Routine vom Typ PFLT_FILTER_UNLOAD_CALLBACK als FilterUnloadCallback-Routine des Minifiltertreibers registrieren.

Syntax

PFLT_FILTER_UNLOAD_CALLBACK PfltFilterUnloadCallback;

NTSTATUS PfltFilterUnloadCallback(
  FLT_FILTER_UNLOAD_FLAGS Flags
)
{...}

Parameter

Flags

Bitmaske von Flags, die die Entladeanforderung beschreiben. Dieser Parameter kann NULL oder folgendes sein:

Flag Bedeutung
FLTFL_FILTER_UNLOAD_MANDATORY Der Filter-Manager legt dieses Flag fest, um anzugeben, dass der Entladevorgang obligatorisch ist.

Rückgabewert

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

Rückgabecode BESCHREIBUNG
STATUS_FLT_DO_NOT_DETACH Wenn der Entladevorgang nicht obligatorisch ist, verhindert die Rückgabe dieses status Werts, dass der Minifiltertreiber entladen wird. Dies ist ein Fehlercode.

Hinweise

Wenn sich ein Minifiltertreiber durch Aufrufen von FltRegisterFilter registriert, kann er eine FilterUnloadCallback-Routine registrieren. Um diese Rückrufroutine zu registrieren, speichert der Minifiltertreiber die Adresse einer Routine vom Typ PFLT_FILTER_UNLOAD_CALLBACK im Feld FilterUnloadCallback der FLT_REGISTRATION Struktur, die der Minifiltertreiber als Parameter an FltRegisterFilter übergibt.

Minifiltertreiber sind nicht erforderlich, um eine FilterUnloadCallback-Routine zu registrieren. Es wird jedoch dringend empfohlen, eine Entladeroutine zu registrieren. Wenn ein Minifiltertreiber keine FilterUnloadCallback-Routine registriert, kann er nicht entladen werden.

Wenn ein Minifiltertreiber eine FilterUnloadCallback-Routine registriert:

  • Der Filter-Manager ruft die FilterUnloadCallback-Routine auf, um den Minifiltertreiber zu benachrichtigen, dass der Filter-Manager den Minifiltertreiber entladen wird.

  • Wenn der Entladevorgang nicht obligatorisch ist und die FilterUnloadCallback-Routine einen Fehler- oder Warnungscode wie z. B. STATUS_FLT_DO_NOT_DETACH zurückgibt, wird der Minifiltertreiber nicht entladen. Andernfalls wird der Minifiltertreiber entladen.

  • Wenn das flag FLTFL_FILTER_UNLOAD_MANDATORY im Flags-Parameter festgelegt ist, ist der Entladevorgang obligatorisch, und der Minifiltertreiber kann das Entladen nicht verhindern.

Weitere Informationen zu möglichen Entladeursachen und zum Entladevorgang des Minifiltertreibers finden Sie unter Wenn die FilterUnloadCallback-Routine aufgerufen wird .

Anforderungen

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

Weitere Informationen

FLT_REGISTRATION

FltRegisterFilter