共用方式為


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 例程是用來擷取檔案的檔案大小。 不同於 ZwQueryInformationFileFsRtlGetFileSize 不會取得同步檔案對象的檔案物件鎖定。 如果您已經擁有文件系統資源,您應該呼叫 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