FltAllocateCallbackDataEx-Funktion (fltkernel.h)

Die FltAllocateCallbackDataEx-Routine weist eine Rückrufdatenstruktur zu und kann Arbeitsspeicher für zusätzliche Strukturen vorab zuweisen, die ein Minifiltertreiber zum Initiieren einer E/A-Anforderung verwenden kann.

Syntax

NTSTATUS FLTAPI FltAllocateCallbackDataEx(
  [in]          PFLT_INSTANCE                    Instance,
  [in/optional] PFILE_OBJECT                     FileObject,
  [in]          FLT_ALLOCATE_CALLBACK_DATA_FLAGS Flags,
  [out]         PFLT_CALLBACK_DATA               *RetNewCallbackData
);

Parameter

[in] Instance

Undurchsichtiger instance Zeiger auf den Minifiltertreiber instance, der den E/A-Vorgang initiiert. Dieser Parameter ist erforderlich und darf nicht NULL sein.

[in/optional] FileObject

Zeiger auf ein Dateiobjekt, das im E/A-Vorgang verwendet werden soll. Dieser Parameter ist optional und kann NULL sein. Legen Sie FileObject auf NULL fest, wenn es sich um einen CREATE-Vorgang handelt.

[in] Flags

Ein Wert von 0 oder das folgende Flag: FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY

Wenn dieses Flag festgelegt ist, weist die Routine den gesamten Arbeitsspeicher vor, der vom Filter-Manager benötigt wird, damit zusätzliche Strukturen in einer E/A-Anforderung verwendet werden können.

[out] RetNewCallbackData

Zeiger auf eine vom Aufrufer zugeordnete Variable, die die Adresse der neu zugeordneten Rückrufdaten FLT_CALLBACK_DATA-Struktur empfängt.

Rückgabewert

Die FltAllocateCallbackDataEx-Routine gibt STATUS_SUCCESS bei Erfolg oder STATUS_INSUFFICIENT_RESOURCES zurück, wenn bei der Routine beim Zuordnen der Rückrufdatenstruktur ein Poolzuordnungsfehler aufgetreten ist oder wenn das flag FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY festgelegt ist und kein zusätzlicher Arbeitsspeicher zugewiesen werden konnte.

Hinweise

Wenn das flag FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY festgelegt ist, belegt die Routine den gesamten Arbeitsspeicher, der für zusätzliche Filter-Manager-Strukturen benötigt wird, die in einer nachfolgenden E/A-Anforderung verwendet werden. Mithilfe dieses Flags kann ein Minifilter eine oder mehrere Rückrufdatenstrukturen vorab zuweisen, die zum Ausgeben von E/A-Anforderungen unter geringen Arbeitsspeicherbedingungen oder in Situationen verwendet werden können, in denen die Wiederherstellung nach einem Speicherbelegungsfehler kompliziert sein kann.

Hinweis

Der zusätzliche zugeordnete Arbeitsspeicher wird vom Filter-Manager verwendet. Das Dateisystem oder andere Filter können bei der E/A-Anforderung aufgrund einer Nicht-Arbeitsspeicher-Bedingung weiterhin fehlschlagen.

Wichtig

Die Kommentare zu FltAllocateCallbackData gelten auch für FltAllocateCallbackDataEx . Überprüfen Sie diese Informationen, um die richtige Routine für Ihren Entwurf auszuwählen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows 7 und höheren Versionen des Windows-Betriebssystems.
Zielplattform Universell
Header fltkernel.h (fltKernel.h einschließen)
Bibliothek FltMgr.lib
IRQL <= APC_LEVEL

Weitere Informationen

FLT_CALLBACK_DATA

FltAllocateCallbackData