Freigeben über


PFLT_CONTEXT_ALLOCATE_CALLBACK Rückruffunktion (fltkernel.h)

Ein Minifiltertreiber kann eine Routine vom Typ PFLT_CONTEXT_ALLOCATE_CALLBACK als ContextAllocateCall back-Routine des Minifiltertreibers registrieren.

Syntax

PFLT_CONTEXT_ALLOCATE_CALLBACK PfltContextAllocateCallback;

PVOID PfltContextAllocateCallback(
  [in] POOL_TYPE PoolType,
  [in] SIZE_T Size,
  [in] FLT_CONTEXT_TYPE ContextType
)
{...}

Parameter

[in] PoolType

Der Typ des pools, der zugewiesen werden soll. Dieser Parameter ist erforderlich und muss eine der folgenden Sein:

NonPagedPool-

PagedPool-

Muss NonPagedPool sein, wenn der parameter ContextType FLT_VOLUME_CONTEXT ist.

[in] Size

Die Größe des gesamten Kontexts in Bytes, einschließlich des vom Filter-Manager definierten Teils und des vom Minifiltertreiber definierten Teils.

[in] ContextType

Der Kontexttyp. Dieser Parameter ist erforderlich und muss einen der folgenden Werte aufweisen:

FLT_FILE_CONTEXT (ab Windows Vista)

FLT_INSTANCE_CONTEXT

FLT_STREAM_CONTEXT

FLT_STREAMHANDLE_CONTEXT

FLT_SECTION_CONTEXT (ab Windows 8)

FLT_TRANSACTION_CONTEXT (ab Windows Vista)

FLT_VOLUME_CONTEXT

Rückgabewert

Wenn nicht genügend freier Pool verfügbar ist, um die Anforderung zu erfüllen, gibt diese Routine einen NULL- Zeiger zurück. Andernfalls wird ein Zeiger auf den neu zugewiesenen Kontext zurückgegeben.

Bemerkungen

In seltenen Fällen, in denen ein Minifiltertreiber eine eigene Kontextzuordnung ausführen muss, kann er eine Routine vom Typ PFLT_CONTEXT_ALLOCATE_CALLBACK als ContextAllocateCallback-Routine für jeden Kontexttyp angeben, den er registriert, wenn er FltRegisterFilter aus seiner DriverEntry- Routine aufruft. Um diese Routine anzugeben, speichert der Minifiltertreiber einen Zeiger auf die Routine im ContextAllocateCallback Member der FLT_CONTEXT_REGISTRATION-Struktur für den Kontexttyp.

Weitere Informationen zur Kontextregistrierung finden Sie im Referenzeintrag für FLT_CONTEXT_REGISTRATION.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- fltkernel.h (include Fltkernel.h)
IRQL- <=APC_LEVEL

Siehe auch

FLT_CONTEXT_REGISTRATION

FLT_REGISTRATION

FltRegisterFilter-

PFLT_CONTEXT_CLEANUP_CALLBACK

PFLT_CONTEXT_FREE_CALLBACK