Функция FltRetainSwappedBufferMdlAddress (fltkernel.h)

FltRetainSwappedBufferMdlAddress не позволяет диспетчеру фильтров освободить список дескрипторов памяти (MDL) для буфера, который был переключен в драйвере минифильтра.

Синтаксис

void FltRetainSwappedBufferMdlAddress(
  [in] PFLT_CALLBACK_DATA CallbackData
);

Параметры

[in] CallbackData

Указатель на структуру данных обратного вызова для операции.

Возвращаемое значение

None

Remarks

Когда драйвер минифильтра переключается в новом буфере в процедуре обратного вызова перед операции (PFLT_PRE_OPERATION_CALLBACK), диспетчер фильтров автоматически освобождает MDL буфера при возвращении соответствующей подпрограммы обратного вызова после операции (PFLT_POST_OPERATION_CALLBACK).

Драйвер минифильтра может запретить диспетчеру фильтров освободить MDL, вызвав FltRetainSwappedBufferMdlAddress из подпрограммы обратного вызова после операции.

После вызова FltRetainSwappedBufferMdlAddress вызывающий объект отвечает за освобождение MDL путем вызова подпрограммы, такой как IoFreeMdl.

FltRetainSwappedBufferMdlAddress можно вызвать только из подпрограммы обратного вызова после операции.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая Fltkernel.h)
Библиотека FltMgr.lib
DLL Fltmgr.sys
IRQL Любой уровень

См. также раздел

FltDecodeParameters

FltGetSwappedBufferMdlAddress

IoFreeMdl

PFLT_POST_OPERATION_CALLBACK

PFLT_PRE_OPERATION_CALLBACK