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 的常规查询提取文件大小,将使用快速 I/O。

要求

要求 价值
目标平台 普遍
标头 ntifs.h (include Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDIS(storport)PowerIrpDDis(wdm)

另请参阅

FltQueryInformationFile

ZwQueryInformationFile