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

Подпрограмма FsRtlGetFileSize используется для получения размера файла.

Синтаксис

NTSTATUS FsRtlGetFileSize(
  [in]  PFILE_OBJECT   FileObject,
  [out] PLARGE_INTEGER FileSize
);

Параметры

[in] FileObject

Указатель на объект файла для запроса.

[out] FileSize

Указатель на большое целое число, которое получает размер файла в выходных данных.

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

FsRtlGetFileSize возвращает STATUS_SUCCESS или соответствующее состояние ошибки, представляющее окончательное состояние завершения операции. Возможные коды состояния ошибок:

Код возврата Описание
STATUS_INSUFFICIENT_RESOURCES
Не удалось выделить память, необходимую для использования этой функцией.
STATUS_FILE_IS_A_DIRECTORY
Указанный Объект FileObject ссылается на каталог.

Комментарии

Подпрограмма FsRtlGetFileSize используется для получения размера файла. В отличие от ZwQueryInformationFile, FsRtlGetFileSize не получает блокировку объекта файла для синхронных файловых объектов. Если у вас уже есть ресурсы файловой системы, следует вызвать FsRtlGetFileSize вместо ZwQueryInformationFile, так как попытка получить блокировку файлового объекта приведет к нарушению порядка блокировки и приведет к взаимоблокировкам. Функция ZwQueryInformationFile должна быть только в том случае, если вы еще не владеете ресурсами файловой системы.

FsRtlGetFileSize будет использовать быстрый ввод-вывод, если он поддерживается, или обычный запрос на основе IRP для извлечения размера файла.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Правила соответствия DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

См. также раздел

FltQueryInformationFile

ZwQueryInformationFile