Функция 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, например следующее:

Код возврата Описание
STATUS_INSUFFICIENT_RESOURCES
В свободном пуле недостаточно памяти для удовлетворения запроса.

Комментарии

Драйверы минифильтра не должны пытаться освободить или заменить буфер в элементе Nameструктуры FLT_NAME_CONTROL напрямую. Вместо этого драйверы мини-фильтра должны вызывать FltCheckAndGrowNameControl , чтобы получить буфер имен большего размера.

Если размер (в байтах) буфера в структуре NameCtrl меньше значения параметра NewSize , FltCheckAndGrowNameControl заменяет его большим буфером, выделенным системой. FltCheckAndGrowNameControl копирует содержимое старого буфера в новый и освобождает старый буфер.

Если размер буфера в байтах в структуре NameCtrl больше или равен значению параметра NewSize , FltCheckAndGrowNameControl возвращает STATUS_SUCCESS и не заменяет буфер.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая Fltkernel.h)
Библиотека FltMgr.lib
IRQL <= APC_LEVEL

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

FLT_NAME_CONTROL

FltGetFileNameFormat

FltGetFileNameInformation

FltGetFileNameInformationUnsafe

FltGetFileNameQueryMethod