次の方法で共有


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 は同期ファイル オブジェクトのファイル オブジェクト ロックを取得しません。 ファイル システム リソースを既に所有している場合は、ZwQueryInformationFile ではなく FsRtlGetFileSize を呼び出す必要があります。これは、ファイル オブジェクトロックを取得しようとするとロック順序に違反し、デッドロックが発生するためです。 ZwQueryInformationFile 関数は、ファイル システム リソースをまだ所有していない場合にのみ使用する必要があります。

FsRtlGetFileSize では、高速 I/O がサポートされている場合、または通常の IRP ベースのクエリを使用してファイル サイズを抽出します。

要件

要件
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

こちらもご覧ください

FltQueryInformationFile

ZwQueryInformationFile