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

Подпрограмма FltAllocateCallbackDataEx выделяет структуру данных обратного вызова и может предварительно выделить память для дополнительных структур, которые драйвер минифильтра может использовать для запуска запроса ввода-вывода.

Синтаксис

NTSTATUS FLTAPI FltAllocateCallbackDataEx(
  [in]          PFLT_INSTANCE                    Instance,
  [in/optional] PFILE_OBJECT                     FileObject,
  [in]          FLT_ALLOCATE_CALLBACK_DATA_FLAGS Flags,
  [out]         PFLT_CALLBACK_DATA               *RetNewCallbackData
);

Параметры

[in] Instance

Указатель на непрозрачный экземпляр драйвера мини-фильтра, инициирующий операцию ввода-вывода. Этот параметр является обязательным и не может быть null.

[in/optional] FileObject

Указатель на объект файла, используемый в операции ввода-вывода. Этот параметр является необязательным и может быть null. Задайте FileObject значение NULL , если это операция CREATE.

[in] Flags

Значение нуля или следующего флага: FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY

Если этот флаг задан, подпрограмма предварительно выделяет всю память, необходимую диспетчеру фильтров для использования дополнительных структур в запросе ввода-вывода.

[out] RetNewCallbackData

Указатель на выделенную вызывающим переменную, которая получает адрес недавно выделенных данных обратного вызова FLT_CALLBACK_DATA структуры.

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

Подпрограмма FltAllocateCallbackDataEx возвращает STATUS_SUCCESS при успешном выполнении или STATUS_INSUFFICIENT_RESOURCES, если подпрограмма столкнулась с ошибкой выделения пула при попытке выделить структуру данных обратного вызова или если флаг FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY установлен, а дополнительная память не может быть выделена.

Замечания

Если установлен флаг FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY, подпрограмма выделяет всю память, необходимую для использования дополнительных структур диспетчера фильтров в последующем запросе ввода-вывода. Этот флаг позволяет минифильтру предварительно выделить одну или несколько структур данных обратного вызова для выдачи запросов ввода-вывода в условиях низкой памяти или в ситуациях, когда восстановление после сбоя выделения памяти может быть сложным.

Заметка

Дополнительная выделенная память используется диспетчером фильтров. Файловая система или другие фильтры по-прежнему могут завершиться сбоем запроса ввода-вывода из-за состояния вне памяти.

Важный

Комментарии для FltAllocateCallbackData применяются к FltAllocateCallbackDataEx. Просмотрите эти сведения, чтобы выбрать правильную подпрограмму для проектирования.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows 7 и более поздних версиях операционной системы Windows.
целевая платформа Всеобщий
заголовка fltkernel.h (include FltKernel.h)
библиотеки FltMgr.lib
IRQL <= APC_LEVEL

См. также

FLT_CALLBACK_DATA

FltAllocateCallbackData