Freigeben über


FltRetainSwappedBufferMdlAddress-Funktion (fltkernel.h)

FltRetainSwappedBufferMdlAddress verhindert, dass der Filter-Manager die Speicherbeschreibungsliste (MDL) für einen Puffer freigibt, der von einem Minifiltertreiber ausgetauscht wurde.

Syntax

void FltRetainSwappedBufferMdlAddress(
  [in] PFLT_CALLBACK_DATA CallbackData
);

Parameter

[in] CallbackData

Zeigen Sie auf die Rückrufdatenstruktur für den Vorgang.

Rückgabewert

Nichts

Bemerkungen

Wenn ein Minifiltertreiber in einem neuen Puffer in einer Preoperation-Rückrufroutine (PFLT_PRE_OPERATION_CALLBACK) wechselt, gibt der Filter-Manager die MDL des Puffers automatisch frei, wenn die entsprechende Postoperation (PFLT_POST_OPERATION_CALLBACK) Rückrufroutine zurückgibt.

Der Minifiltertreiber kann verhindern, dass der Filter-Manager die MDL freigibt, indem FltRetainSwappedBufferMdlAddress aus der Postoperation-Rückrufroutine aufgerufen wird.

Nach dem Aufrufen FltRetainSwappedBufferMdlAddressist der Anrufer dafür verantwortlich, die MDL durch Aufrufen einer Routine wie IoFreeMdlfreizusprechen.

FltRetainSwappedBufferMdlAddress kann nur aus einer Postoperation-Rückrufroutine aufgerufen werden.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- fltkernel.h (include Fltkernel.h)
Library FltMgr.lib
DLL- Fltmgr.sys
IRQL- Beliebige Ebene

Siehe auch

FltDecodeParameters

FltGetSwappedBufferMdlAddress

IoFreeMdl-

PFLT_POST_OPERATION_CALLBACK

PFLT_PRE_OPERATION_CALLBACK