Функция 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, например следующее:
Возвращаемый код | Описание |
---|---|
|
Недостаточно памяти в свободном пуле для удовлетворения запроса. |
Замечания
Драйверы минифильтра не должны пытаться освободить или заменить буфер в элементе имени непосредственно в структуре FLT_NAME_CONTROL. Вместо этого драйверы минифильтра должны вызывать FltCheckAndGrowNameControl для получения буфера более крупного имени.
Если размер в байтах буфера в структуре NameCtrl меньше значения параметра NewSize, FltCheckAndGrowNameControl заменяет его большим выделенным системой буфером. FltCheckAndGrowNameControl копирует содержимое старого буфера в новый и освобождает старый буфер.
Если размер в байтах буфера в структуре NameCtrl больше или равен значению параметра NewSize, FltCheckAndGrowNameControl возвращает STATUS_SUCCESS и не заменяет буфер.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | fltkernel.h (include Fltkernel.h) |
библиотеки | FltMgr.lib |
IRQL | <= APC_LEVEL |