Freigeben über


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

Siehe auch

FLT_CALLBACK_DATA

FltAllocateCallbackData-