Функция 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, например следующее:
Код возврата | Описание |
---|---|
|
Файл находится на томе, который в настоящее время не подключен. Это код ошибки. |
Комментарии
Драйвер минифильтра вызывает 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 (см. раздел "Примечания") |