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

Weitere Informationen

FltDecodeParameters

FltGetSwappedBufferMdlAddress

IoFreeMdl

PFLT_POST_OPERATION_CALLBACK

PFLT_PRE_OPERATION_CALLBACK