Функция FltRetainSwappedBufferMdlAddress (fltkernel.h)
FltRetainSwappedBufferMdlAddress запрещает диспетчеру фильтров освободить список дескрипторов памяти (MDL) для буфера, который был переключен драйвером мини-фильтра.
Синтаксис
void FltRetainSwappedBufferMdlAddress(
[in] PFLT_CALLBACK_DATA CallbackData
);
Параметры
[in] CallbackData
Указатель на структуру данных обратного вызова для операции.
Возвращаемое значение
Никакой
Замечания
При переключении драйвера мини-фильтра в новом буфере в подпрограмме обратного вызова (PFLT_PRE_OPERATION_CALLBACK) диспетчер фильтров автоматически освобождает MDL буфера, когда возвращается соответствующая подпрограмма обратного вызова (PFLT_POST_OPERATION_CALLBACK).
Драйвер мини-фильтра может запретить диспетчеру фильтров освободить MDL путем вызова FltRetainSwappedBufferMdlAddress из процедуры обратного вызова после операции.
После вызова FltRetainSwappedBufferMdlAddress, вызывающий объект отвечает за освобождение MDL путем вызова подпрограммы, например IoFreeMdl.
FltRetainSwappedBufferMdlAddress можно вызывать только из подпрограммы обратного вызова после операции.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | fltkernel.h (include Fltkernel.h) |
библиотеки | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | Любой уровень |