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

Функция FltGetNewSystemBufferAddress извлекает буфер AssociatedIrp.SystemBuffer, выделенный файловой системой. Подпрограмма после обратного вызова драйвера минифильтра вызывает эту функцию.

Синтаксис

PVOID FLTAPI FltGetNewSystemBufferAddress(
  [in] PFLT_CALLBACK_DATA CallbackData
);

Параметры

[in] CallbackData

Указатель на структуру FLT_CALLBACK_DATA , представляющую операцию ввода-вывода.

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

Если буфер AssociatedIrp.SystemBuffer был выделен файловой системой, FltGetNewSystemBufferAddress возвращает указатель на этот буфер; в противном случае возвращается ЗНАЧЕНИЕ NULL.

Комментарии

Подпрограмма после обратного вызова драйвера минифильтра вызывает функцию FltGetNewSystemBufferAddress , чтобы получить указатель на буфер AssociatedIrp.SystemBuffer, выделенный файловой системой. Драйвер минифильтра должен вызывать эту функцию, только если в CallbackData.Flags установлен флаг FLTFL_CALLBACK_DATA_NEW_SYSTEM_BUFFER.

Когда файловая система выделяет собственный буфер AssociatedIrp.SystemBuffer, диспетчер фильтров установит флаг FLTFL_CALLBACK_DATA_NEW_SYSTEM_BUFFER. Это сигнализирует минифильтру о том, что буфер, полученный в ходе предварительной операции, не является буфером, в который считываются данные из файловой системы.

Если флаг FLTFL_CALLBACK_DATA_NEW_SYSTEM_BUFFER не задан, эта подпрограмма возвращает значение NULL.

Требования

Требование Значение
Минимальная версия клиента Доступно в Microsoft Windows 7 и более поздних версиях операционной системы Windows.
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая Fltkernel.h)
Библиотека Fltmgr.lib
DLL Fltmgr.sys
IRQL <= DISPATCH_LEVEL

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

FLT_CALLBACK_DATA