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

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

Syntax

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
);

Parameters

[in] Instance

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

[in] FileObject

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

[out] FileInformation

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

[in] Length

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

[in] FileInformationClass

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

[out, optional] LengthReturned

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

Return value

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

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

Remarks

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

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

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

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

Requirements

Requirement Value
Target Platform Universal
Header fltkernel.h (включая Fltkernel.h)
Library FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL (см. раздел "Примечания")

See also

FILE_INFORMATION_CLASS

FltQueryVolumeInformationFile

FltSetInformationFile

ZwQueryInformationFile