FsRtlGetFileSize 函数 (ntifs.h)
FsRtlGetFileSize 例程用于获取文件的大小。
语法
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 将使用快速 I/O(如果受支持)或基于 IRP 的常规查询来提取文件大小。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDDI (storport) , PowerIrpDDis (wdm) |