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 |