Функция 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 (см. раздел "Примечания") |