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


Функция 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 (include Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
правил соответствия DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

См. также

FltQueryInformationFile

ZwQueryInformationFile