FltRetainSwappedBufferMdlAddress-Funktion (fltkernel.h)
FltRetainSwappedBufferMdlAddress verhindert, dass der Filter-Manager die Speicherdeskriptorliste (Memory Descriptor List, MDL) für einen Puffer freigibt, der durch einen Minifiltertreiber ausgetauscht wurde.
Syntax
void FltRetainSwappedBufferMdlAddress(
[in] PFLT_CALLBACK_DATA CallbackData
);
Parameter
[in] CallbackData
Zeiger auf die Rückrufdatenstruktur für den Vorgang.
Rückgabewert
Keine
Bemerkungen
Wenn ein Minifiltertreiber in einem neuen Puffer in einer PFLT_PRE_OPERATION_CALLBACK-Routine (Preoperation Callback) ausgetauscht wird, gibt der Filter-Manager die MDL des Puffers automatisch frei, wenn die entsprechende Rückrufroutine nach der PFLT_POST_OPERATION_CALLBACK (Postoperation) zurückgibt.
Der Minifiltertreiber kann verhindern, dass der Filter-Manager die MDL freigibt, indem Er FltRetainSwappedBufferMdlAddress aus der Rückrufroutine nach der Operation aufruft.
Nach dem Aufruf von FltRetainSwappedBufferMdlAddress ist der Anrufer für die Freigabe der MDL durch Aufrufen einer Routine wie IoFreeMdl verantwortlich.
FltRetainSwappedBufferMdlAddress kann nur aus einer Postoperation-Rückrufroutine aufgerufen werden.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | fltkernel.h (include Fltkernel.h) |
Bibliothek | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | Beliebige Ebene |