FltAllocateCallbackDataEx-Funktion (fltkernel.h)
Die FltAllocateCallbackDataEx Routine weist eine Rückrufdatenstruktur zu und kann Arbeitsspeicher für zusätzliche Strukturen vorzuweisen, 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 Instanzzeiger auf die Minifiltertreiberinstanz, die den E/A-Vorgang initiiert. Dieser Parameter ist erforderlich und kann nicht NULL-werden.
[in/optional] FileObject
Zeiger auf ein Dateiobjekt, das im E/A-Vorgang verwendet werden soll. Dieser Parameter ist optional und kann NULL-werden. Legen Sie FileObject- auf NULL- fest, wenn dies ein CREATE-Vorgang ist.
[in] Flags
Ein Wert von Null oder das folgende Flag: FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY
Wenn dieses Kennzeichen festgelegt ist, werden alle vom Filter-Manager benötigten Arbeitsspeicher für zusätzliche Strukturen, die in einer E/A-Anforderung verwendet werden sollen, von der Routine vorverwendet.
[out] RetNewCallbackData
Zeigen Sie auf eine vom Aufrufer zugewiesene 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 dem Versuch, die Rückrufdatenstruktur zuzuweisen, ein Poolzuordnungsfehler aufgetreten ist oder wenn das flag FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY festgelegt ist und zusätzlicher Speicher nicht zugeordnet werden konnte.
Bemerkungen
Wenn das FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY-Flag festgelegt ist, weist die Routine den gesamten Speicher zu, der für zusätzliche Filter-Manager-Strukturen benötigt wird, um in einer nachfolgenden E/A-Anforderung verwendet werden zu können. Die Verwendung dieses Flags ermöglicht es einem Minifilter, einen oder mehrere Rückrufdatenstrukturen vorzuweisen, die für das Ausstellen von E/A-Anforderungen unter niedrigen Speicherbedingungen oder in Situationen verwendet werden, in denen die Wiederherstellung eines Speicherzuweisungsfehlers kompliziert sein kann.
Anmerkung
Der zusätzliche zugewiesene Arbeitsspeicher dient der Verwendung durch den Filter-Manager. Das Dateisystem oder andere Filter können die E/A-Anforderung aufgrund einer Nichtspeicherbedingung weiterhin fehlschlagen.
Wichtig
Die Kommentare für FltAllocateCallbackData auch für FltAllocateCallbackDataEx gelten. Überprüfen Sie diese Informationen, um die richtige Routine für Ihr Design auszuwählen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Windows 7 und höheren Versionen des Windows-Betriebssystems. |
Zielplattform- | Universal |
Header- | fltkernel.h (include FltKernel.h) |
Library | FltMgr.lib |
IRQL- | <= APC_LEVEL |