Функция FltCheckAndGrowNameControl (fltkernel.h)
Подпрограмма FltCheckAndGrowNameControl проверяет, достаточно ли большой буфер в структуре FLT_NAME_CONTROL для хранения указанного количества байтов. В противном случае FltCheckAndGrowNameControl заменяет его большим буфером, выделенным системой.
Синтаксис
NTSTATUS FLTAPI FltCheckAndGrowNameControl(
[in, out] PFLT_NAME_CONTROL NameCtrl,
[in] USHORT NewSize
);
Параметры
[in, out] NameCtrl
Указатель на структуру FLT_NAME_CONTROL , содержащую сведения об имени файла.
[in] NewSize
Обязательный размер (в байтах) нового буфера управления именем.
Возвращаемое значение
FltCheckAndGrowNameControl возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например следующее:
Код возврата | Описание |
---|---|
|
В свободном пуле недостаточно памяти для удовлетворения запроса. |
Комментарии
Драйверы минифильтра не должны пытаться освободить или заменить буфер в элементе Nameструктуры FLT_NAME_CONTROL напрямую. Вместо этого драйверы мини-фильтра должны вызывать FltCheckAndGrowNameControl , чтобы получить буфер имен большего размера.
Если размер (в байтах) буфера в структуре NameCtrl меньше значения параметра NewSize , FltCheckAndGrowNameControl заменяет его большим буфером, выделенным системой. FltCheckAndGrowNameControl копирует содержимое старого буфера в новый и освобождает старый буфер.
Если размер буфера в байтах в структуре NameCtrl больше или равен значению параметра NewSize , FltCheckAndGrowNameControl возвращает STATUS_SUCCESS и не заменяет буфер.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | fltkernel.h (включая Fltkernel.h) |
Библиотека | FltMgr.lib |
IRQL | <= APC_LEVEL |