FsRtlGetFileSize 函式 (ntifs.h)
FsRtlGetFileSize 例程可用來取得檔案的大小。
語法
NTSTATUS FsRtlGetFileSize(
[in] PFILE_OBJECT FileObject,
[out] PLARGE_INTEGER FileSize
);
參數
[in] FileObject
要查詢之檔案物件的指標。
[out] FileSize
接收輸出上檔案大小的大型整數指標。
傳回值
FsRtlGetFileSize 會傳回STATUS_SUCCESS或代表作業最終完成狀態的適當錯誤狀態。 可能的錯誤狀態代碼包括:
傳回碼 | Description |
---|---|
|
無法設定此函式使用所需的記憶體。 |
|
指定的 FileObject 是指目錄。 |
備註
FsRtlGetFileSize 例程可用來擷取檔案的檔案大小。 不同於 ZwQueryInformationFile,FsRtlGetFileSize 不會取得同步檔案物件上的檔案對象鎖定。 如果您已經擁有文件系統資源,您應該呼叫 FsRtlGetFileSize 而不是 ZwQueryInformationFile,因為嘗試取得檔案對象鎖定會違反鎖定順序並導致死結。 只有在您尚未擁有文件系統資源時, ZwQueryInformationFile 函式才應該。
如果支援 FsRtlGetFileSize ,則會使用快速 I/O,或以一般 IRP 為基礎的查詢來擷取檔案大小。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | ntifs.h (包含 Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | HwStorPortProhibitedDDIs (storport) 、 PowerIrpDDis (wdm) |