Поделиться через


Функция NtQueryInformationByName (ntifs.h)

NtQueryInformationByName возвращает запрошенные сведения о файле, указанном именем файла.

Синтаксис

__kernel_entry NTSYSCALLAPI NTSTATUS NtQueryInformationByName(
  [in]  POBJECT_ATTRIBUTES     ObjectAttributes,
  [out] PIO_STATUS_BLOCK       IoStatusBlock,
  [out] PVOID                  FileInformation,
  [in]  ULONG                  Length,
  [in]  FILE_INFORMATION_CLASS FileInformationClass
);

Параметры

[in] ObjectAttributes

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

[out] IoStatusBlock

Указатель на структуру IO_STATUS_BLOCK, содержащую состояние ввода-вывода вызывающего объекта.

[out] FileInformation

Указатель на предоставленный вызывающим буфером, в котором возвращаются запрошенные сведения о файле. Структура буфера определяется параметром FileInformationClass.

[in] Length

Длина в байтах буфера, на который указывает fileInformation.

[in] FileInformationClass

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

значение FILE_INFORMATION_CLASS Тип возвращаемых сведений
FileStatInformation (68) FILE_STAT_INFORMATION. Доступно начиная с Windows 10 версии 1709.
FileStatLxInformation (70) FILE_STAT_LX_INFORMATION. Доступно начиная с обновления Windows 10 апреля 2018 г.
FileCaseSensitiveInformation (71) FILE_CASE_SENSITIVE_INFORMATION. Доступно начиная с обновления Windows 10 апреля 2018 г.
FileStatBasicInformation (77) FILE_STAT_BASIC_INFORMATION. Доступно начиная с Windows 11 сборки 26048.

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

NtQueryInformationByName возвращает STATUS_SUCCESS после успешного завершения; в противном случае возвращается код ошибки, например один из следующих.

Код ошибки Значение
STATUS_INVALID_PARAMETER Параметр FileInformationClass содержит недопустимое значение.
STATUS_INFO_LENGTH_MISMATCH Размер буфера, указанный длина, недостаточно велик, чтобы содержать запрошенные сведения.

Замечания

запросы NtQueryInformationByName и возвращают запрошенные сведения о файле. Это делает это без открытия фактического файла, что делает его более эффективным, чем NtQueryInformationFile, что требует открытия файла (и последующего закрытия файла).

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10 версии 1703
заголовка ntifs.h
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (см. раздел "Примечания")

См. также

FILE_CASE_SENSITIVE_INFORMATION

FILE_INFORMATION_CLASS

FILE_STAT_INFORMATION

FILE_STAT_LX_INFORMATION

IO_STATUS_BLOCK

NtQueryInformationFile

OBJECT_ATTRIBUTES