Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подпрограмма 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 |