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 |