FltReuseCallbackData-Funktion (fltkernel.h)

Die FltReuseCallbackData-Routine initialisiert eine Rückrufdatenstruktur neu, sodass sie wiederverwendet werden kann.

Syntax

VOID FLTAPI FltReuseCallbackData(
  [in, out] PFLT_CALLBACK_DATA CallbackData
);

Parameter

[in, out] CallbackData

Zeiger auf die wiederverwendete Rückrufdatenstruktur (FLT_CALLBACK_DATA). Diese Struktur muss durch einen vorherigen Aufruf von FltAllocateCallbackData zugeordnet worden sein. Dieser Parameter ist erforderlich und darf nicht NULL sein.

Rückgabewert

Keine

Bemerkungen

FltReuseCallbackData initialisiert eine Rückrufdatenstruktur (FLT_CALLBACK_DATA), sodass sie in einem neuen E/A-Vorgang verwendet werden kann. FltReuseCallbackData ändert weder das TargetInstance-Feld noch das TargetFileObject-Feld des E/A-Parameterblocks der Rückrufdatenstruktur.

Die FltReuseCallbackData-Routine gibt jede MDL-Kette frei, die dem angegebenen CallbackData-Objekt zugeordnet ist. Ein Zeiger auf eine MDL-Kette, die einem FLT_CALLBACK_DATA -Objekt zugeordnet ist, ist nach einem Aufruf von FltReuseCallbackData für dieses Objekt ungültig.

Die Verwendung von FltReuseCallbackData zum Wiederverwenden einer Rückrufdatenstruktur ist schneller als das Freigeben der Struktur und das Zuweisen einer neuen Struktur.

Ein Minifiltertreiber sollte FltReuseCallbackData nur für eine Rückrufdatenstruktur verwenden, die der Minifiltertreiber zuvor FltAllocateCallbackData zugeordnet und in einem Aufruf von FltPerformSynchronousIo oder FltPerformAsynchronousIo verwendet hat.

Wenn die Rückrufdatenstruktur für asynchrone E/A-Vorgänge verwendet wurde, sollte der Minifiltertreiber FltReuseCallbackData erst aufrufen, wenn die im Aufruf von FltPerformAsynchronousIo angegebene CallbackRoutine aufgerufen wird.

Insbesondere sollte ein Minifiltertreiber diese Routine nicht für Rückrufdatenstrukturen verwenden, die nicht vom Minifiltertreiber selbst zugeordnet werden.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header fltkernel.h (include Fltkernel.h)
Bibliothek FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Weitere Informationen

FLT_CALLBACK_DATA

FltAllocateCallbackData

FltFreeCallbackData

FltPerformAsynchronio

FltPerformSynchronousIo

FltReissueSynchronousIo