Функция ZwQueryInformationByName (wdm.h)
ZwQueryInformationByName возвращает запрошенные сведения о файле, указанном по имени файла.
Синтаксис
NTSYSAPI NTSTATUS ZwQueryInformationByName(
[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 г. |
Возвращаемое значение
ZwQueryInformationByName возвращает STATUS_SUCCESS после успешного завершения; В противном случае возвращается код ошибки, например один из следующих.
Код ошибки | Значение |
---|---|
STATUS_INVALID_PARAMETER | Параметр FileInformationClass содержит недопустимое значение. |
STATUS_INFO_LENGTH_MISMATCH | Размер буфера, указанный параметром Length , недостаточно велик, чтобы содержать запрошенные сведения. |
Комментарии
ZwQueryInformationByName запрашивает и возвращает запрошенные сведения о файле. Это делается без открытия фактического файла, что делает его более эффективным, чем ZwQueryInformationFile, который требует открытия файла (и последующего закрытия файла).
Вызывающие объект ZwQueryInformationByName должны выполняться по адресу IRQL = PASSIVE_LEVEL и с включенными специальными APC ядра.
Требования
Требование | Значение |
---|---|
Заголовок | wdm.h |
IRQL | PASSIVE_LEVEL (см. раздел "Примечания") |