Функция FsRtlGetFileSize (ntifs.h)
Для получения размера файла используется
Синтаксис
NTSTATUS FsRtlGetFileSize(
[in] PFILE_OBJECT FileObject,
[out] PLARGE_INTEGER FileSize
);
Параметры
[in] FileObject
Указатель на объект файла для запроса.
[out] FileSize
Указатель на большое целое число, которое получает размер файла в выходных данных.
Возвращаемое значение
FsRtlGetFileSize возвращает STATUS_SUCCESS или соответствующее состояние ошибки, представляющее окончательное состояние завершения операции. Возможные коды состояния ошибок включают следующие:
Возвращаемый код | Описание |
---|---|
|
Не удалось выделить память, необходимую для использования этой функцией. |
|
Указанный FileObject ссылается на каталог. |
Замечания
Подпрограмма FsRtlGetFileSize используется для получения размера файла. В отличие от ZwQueryInformationFile, FsRtlGetFileSize не получает блокировку объекта файла для синхронных объектов файлов. Если вы уже владеете ресурсами файловой системы, следует вызывать FsRtlGetFileSize вместо ZwQueryInformationFile, так как попытка получить блокировку файлового объекта нарушает порядок блокировки и приводит к взаимоблокировкам. Функция ZwQueryInformationFile должна быть только в том случае, если вы еще не владеете ресурсами файловой системы.
FsRtlGetFileSize будет использовать быстрый ввод-вывод, если он поддерживается или обычный запрос на основе IRP для извлечения размера файла.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | ntifs.h (include Ntifs.h) |
библиотеки |
NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
правил соответствия DDI |