Auf Englisch lesen

Freigeben über


FLT_CONTEXT_REGISTRATION Struktur (fltkernel.h)

Die FLT_CONTEXT_REGISTRATION-Struktur wird verwendet, um Kontexttypen zu registrieren.

Syntax

typedef struct _FLT_CONTEXT_REGISTRATION {
  FLT_CONTEXT_TYPE               ContextType;
  FLT_CONTEXT_REGISTRATION_FLAGS Flags;
  PFLT_CONTEXT_CLEANUP_CALLBACK  ContextCleanupCallback;
  SIZE_T                         Size;
  ULONG                          PoolTag;
  PFLT_CONTEXT_ALLOCATE_CALLBACK ContextAllocateCallback;
  PFLT_CONTEXT_FREE_CALLBACK     ContextFreeCallback;
  PVOID                          Reserved1;
} FLT_CONTEXT_REGISTRATION, *PFLT_CONTEXT_REGISTRATION;

Angehörige

ContextType

Der Kontexttyp. Dieses Element ist erforderlich und muss einen der folgenden Werte aufweisen:

FLT_FILE_CONTEXT (nur Windows Vista und höher).)

FLT_INSTANCE_CONTEXT

FLT_STREAM_CONTEXT

FLT_STREAMHANDLE_CONTEXT

FLT_SECTION_CONTEXT (nur Windows 8 und höher).)

FLT_TRANSACTION_CONTEXT (nur Windows Vista und höher.)

FLT_VOLUME_CONTEXT

Flags

Eine Bitmaske von Flags, die angeben, wie der Filter-Manager einen neuen Kontext aus einer Nachschlageliste mit Kontexten fester Größe zuweist. Dieses Element kann null oder der folgende Wert sein.

Flagge Bedeutung
FLTFL_CONTEXT_REGISTRATION_NO_EXACT_SIZE_MATCH Wenn der Minifilter Kontexte mit fester Größe verwendet und dieses Flag angegeben ist, weist der Filter-Manager einen Kontext aus der Lookaside-Liste zu, wenn die Größe des Kontexts in der Lookaside-Liste größer oder gleich der angeforderten Größe ist. Andernfalls weist der Filter-Manager einen Kontext aus der Lookaside-Liste nur zu, wenn die Größe des Kontexts in der Lookaside-Liste der angeforderten Größe entspricht.

ContextCleanupCallback

Ein Zeiger auf einen minifilterdefiniert ContextCleanupCallback Routine vom Typ PFLT_CONTEXT_CLEANUP_CALLBACK. Der Filter-Manager ruft diese Routine unmittelbar auf, bevor er den Kontext löscht. Wenn der Minifilter keinen Speicher oder Zeiger zum Bereinigen innerhalb des Kontexts hat, ist dieses Element optional und kann NULL-sein.

Size

Die Größe des minifilter-definierten Teils des Kontexts in Bytes, wenn der Minifilter Kontexte mit fester Größe verwendet. Null ist ein gültiger Größenwert. Wenn der Minifilter Kontexte mit variabler Größe verwendet, ist dieses Element erforderlich und muss auf FLT_VARIABLE_SIZED_CONTEXTS festgelegt werden.

PoolTag

Ein Pooltagwert, der für den Kontext verwendet werden soll. Dieses Tag, das als Zeichenfolge von 1 bis vier 7-Bit-ASCII-Zeichen angegeben wird, wird in jedem Absturzabbild des systems angezeigt, das auftritt. Wenn das ContextAllocateCallback Member NULL-ist, ist dieses Element erforderlich und darf nicht null sein.

ContextAllocateCallback

Zeiger auf einen minifilterdefinierten ContextAllocateCallback Routine vom Typ PFLT_CONTEXT_ALLOCATE_CALLBACK. Dieses Element ist optional und kann NULL-sein. Wenn es nicht NULL-ist, werden die elemente Size und PoolTag ignoriert.

ContextFreeCallback

Ein Zeiger auf einen minifilterdefiniert ContextFreeCallback Routine vom Typ PFLT_CONTEXT_FREE_CALLBACK. Dieses Element ist optional und kann NULL-sein. Wenn es nicht NULL-ist, werden die elemente Size und PoolTag ignoriert.

Reserved1

Reserviert für die Systemverwendung. Minifilter müssen dieses Element auf NULL-festlegen.

Bemerkungen

Wenn ein Minifilter FltRegisterFilter aus der DriverEntry--Routine aufruft, muss er jeden kontexttyp registrieren, den er verwendet.

Um diese Kontexttypen zu registrieren, erstellt der Minifilter ein Array mit variabler Länge von FLT_CONTEXT_REGISTRATION Strukturen und speichert einen Zeiger auf das Array im ContextRegistration Member der FLT_REGISTRATION Struktur, die der Minifilter als Registration Parameter von FltRegisterFilterübergibt. Das letzte Element dieses Arrays muss {FLT_CONTEXT_END} sein.

Für jeden Kontexttyp, den der Minifilter verwendet, muss der Minifilter gemäß den folgenden Regeln mindestens eine FLT_CONTEXT_REGISTRATION Struktur bereitstellen:

  • Wenn der Minifilter eine FLT_CONTEXT_REGISTRATION Struktur mit einer nichtNULL ContextAllocateCallback Member bereitstellt, kann er keine zusätzlichen FLT_CONTEXT_REGISTRATION Strukturen für diesen Kontexttyp bereitstellen.
  • Wenn der Minifilter zwei oder mehr identische FLT_CONTEXT_REGISTRATION Strukturen liefert, wird nur der erste verwendet. Die anderen werden ignoriert.
  • Für jeden Kontexttyp kann nur eine FLT_CONTEXT_REGISTRATION Struktur mit einem Size Member von FLT_VARIABLE_SIZED_CONTEXTS bereitgestellt werden.
  • Nicht mehr als drei FLT_CONTEXT_REGISTRATION Strukturen mit einem Size Member als FLT_VARIABLE_SIZED_CONTEXTS können für jeden Kontexttyp bereitgestellt werden.

Anforderungen

Anforderung Wert
Header- fltkernel.h (include Fltkernel.h)

Siehe auch

FLT_REGISTRATION

FltRegisterFilter-

PFLT_CONTEXT_ALLOCATE_CALLBACK

PFLT_CONTEXT_CLEANUP_CALLBACK

PFLT_CONTEXT_FREE_CALLBACK