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

FltQueryInformationFile извлекает сведения для заданного файла.

Синтаксис

NTSTATUS FLTAPI FltQueryInformationFile(
  [in]            PFLT_INSTANCE          Instance,
  [in]            PFILE_OBJECT           FileObject,
  [out]           PVOID                  FileInformation,
  [in]            ULONG                  Length,
  [in]            FILE_INFORMATION_CLASS FileInformationClass,
  [out, optional] PULONG                 LengthReturned
);

Параметры

[in] Instance

Указатель непрозрачного экземпляра для вызывающего объекта. Этот параметр является обязательным и не может иметь значение NULL.

[in] FileObject

Указатель файлового объекта для файла. Этот параметр является обязательным и не может иметь значение NULL.

[out] FileInformation

Указатель на буфер, выделенный вызывающим объектом, который получает сведения о файле. Параметр FileInformationClass указывает тип сведений. Этот параметр является обязательным и не может иметь значение NULL.

[in] Length

Размер буфера FileInformation (в байтах).

[in] FileInformationClass

Значение FILE_INFORMATION_CLASS , указывающее тип сведений о файлах, возвращаемых в буфер FileInformation .

[out, optional] LengthReturned

Указатель на переменную, выделенную вызывающим объектом, которая получает размер (в байтах) сведений, возвращаемых в буфере FileInformation . Этот параметр является необязательным и может иметь значение NULL.

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

FltQueryInformationFile возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например следующее:

Код возврата Описание
STATUS_VOLUME_DISMOUNTED
Файл находится на томе, который в настоящее время не подключен. Это код ошибки.

Комментарии

Драйвер минифильтра вызывает FltQueryInformationFile для получения сведений о файле, определяемом FileObject. В настоящее время файл должен быть открыт.

FltQueryInformationFile возвращает ноль в любом элементе структуры FILE_XXX_INFORMATION который не поддерживается определенной файловой системой.

Вызывающие функции FltQueryInformationFile должны выполняться в IRQL = PASSIVE_LEVEL и с включенными APC.

ПРИМЕЧАНИЕ: Не вызывайте эту подпрограмму со значением IRP верхнего уровня, отличном от NULL, так как это может привести к взаимоблокировке системы.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая Fltkernel.h)
Библиотека FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL (см. раздел "Примечания")

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

FILE_INFORMATION_CLASS

FltQueryVolumeInformationFile

FltSetInformationFile

ZwQueryInformationFile