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 将使用快速 I/O(如果受支持)或基于 IRP 的常规查询来提取文件大小。

要求

要求
目标平台 通用
标头 ntifs.h (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDI (storport) PowerIrpDDis (wdm)

另请参阅

FltQueryInformationFile

ZwQueryInformationFile