FltRegisterFilter-Funktion (fltkernel.h)

FltRegisterFilter registriert einen Minifiltertreiber.

Syntax

NTSTATUS FLTAPI FltRegisterFilter(
  [in]  PDRIVER_OBJECT         Driver,
  [in]  const FLT_REGISTRATION *Registration,
  [out] PFLT_FILTER            *RetFilter
);

Parameter

[in] Driver

Ein Zeiger auf das Treiberobjekt für den Minifiltertreiber. Dies sollte derselbe Treiberobjektzeiger sein, der als Eingabe an die DriverEntry-Routine des Minifiltertreibers übergeben wurde.

[in] Registration

Ein Zeiger auf eine vom Anrufer zugewiesene Minifiltertreiberregistrierungsstruktur (FLT_REGISTRATION).

[out] RetFilter

Ein Zeiger auf eine vom Aufrufer zugewiesene Variable, die einen undurchsichtigen Filterzeiger für den Aufrufer empfängt.

Rückgabewert

FltRegisterFilter gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert zurück, z. B. einen der folgenden:

Rückgabecode Beschreibung
STATUS_INSUFFICIENT_RESOURCES
FltRegisterFilter ist ein Poolzuordnungsfehler aufgetreten. Dies ist ein Fehlercode.
STATUS_INVALID_PARAMETER
Einer der folgenden:
  • Das Versionselement der Registrierungsstruktur wurde nicht auf FLT_REGISTRATION_VERSION festgelegt.
  • Eine der Nicht-NULL-Namensanbieterroutinen in der Registrierungsstruktur wurde auf einen ungültigen Wert festgelegt. Die Member GenerateFileNameCallback, NormalizeNameComponentCallback und NormalizeNameComponentExCallback von FLT_REGISTRATION auf die Name-Anbieter-Routinen verweisen.
STATUS_INVALID_PARAMETER ist ein Fehlercode.
STATUS_FLT_NOT_INITIALIZED
Der Filter-Manager wurde nicht initialisiert, als der Filter versuchte, sich zu registrieren. Stellen Sie sicher, dass der Filter-Manager als Treiber geladen ist. Dies ist ein Fehlercode.
STATUS_OBJECT_NAME_NOT_FOUND
Der Filterdienstschlüssel wird in der Registrierung nicht gefunden.

Oder

Der Filter instance ist nicht registriert.

Hinweise

Jeder Minifiltertreiber muss FltRegisterFilter aus seiner DriverEntry-Routine aufrufen, um sich der globalen Liste der registrierten Minifiltertreiber hinzuzufügen und dem Filter-Manager eine Liste mit Rückruffunktionen und anderen Informationen zum Minifiltertreiber bereitzustellen.

FltRegisterFilter gibt einen undurchsichtigen Filterzeiger für den Minifiltertreiber in *RetFilter zurück. Dieser Zeigerwert identifiziert den Minifiltertreiber eindeutig und bleibt konstant, solange der Minifiltertreiber geladen wird. Der Minifiltertreiber sollte diesen Zeiger speichern, da er ein erforderlicher Parameter für FltStartFiltering und FltUnregisterFilter ist.

Nach dem Aufruf von FltRegisterFilter ruft ein Minifiltertreiber in der Regel FltStartFiltering auf, um mit der Filterung von E/A-Vorgängen zu beginnen.

Ein Minifiltertreiber kann nur FltRegisterFilter aufrufen, um sich selbst zu registrieren, nicht einen anderen Minifiltertreiber.

Um die Registrierung aufzuheben, ruft ein Minifiltertreiber FltUnregisterFilter..

Anforderungen

Anforderung Wert
Zielplattform Universell
Header fltkernel.h (include Fltkernel.h)
Bibliothek FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Weitere Informationen

FLT_REGISTRATION

FltStartFiltering

FltUnregisterFilter