Freigeben über


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 geeigneten NTSTATUS-Wert zurück, z. B. einen der folgenden:

Rückgabecode Beschreibung
STATUS_INSUFFICIENT_RESOURCES
FltRegisterFilter bei einem Poolzuweisungsfehler aufgetreten. Dies ist ein Fehlercode.
STATUS_INVALID_PARAMETER
Eine der folgenden:
  • Die Version Mitglied der Registration-Struktur wurde nicht auf FLT_REGISTRATION_VERSION festgelegt.
  • Eine der Nicht-NULL-Namensanbieterroutinen in der Registration Struktur wurde auf einen ungültigen Wert festgelegt. Die GenerateFileNameCallback, NormalizeNameComponentCallback-und NormalizeNameComponentExCallback Member von FLT_REGISTRATION verweisen auf die Namenanbieterroutinen.
STATUS_INVALID_PARAMETER ist ein Fehlercode.
STATUS_FLT_NOT_INITIALIZED
Der Filter-Manager wurde nicht initialisiert, als der Filter versucht hat, sich zu registrieren. Stellen Sie sicher, dass der Filter-Manager als Treiber geladen wird. Dies ist ein Fehlercode.
STATUS_OBJECT_NAME_NOT_FOUND
Der Filterdienstschlüssel wurde in der Registrierung nicht gefunden.

-oder-

Die Filterinstanz ist nicht registriert.

Bemerkungen

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 von 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 Aufrufen FltRegisterFilter-ruft ein Minifiltertreiber in der Regel FltStartFiltering auf, um mit dem Filtern 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- Universal
Header- fltkernel.h (include Fltkernel.h)
Library FltMgr.lib
DLL- Fltmgr.sys
IRQL- <= APC_LEVEL

Siehe auch

FLT_REGISTRATION

FltStartFiltering-

FltUnregisterFilter-