SetFileIoOverlappedRange 関数 (fileapi.h)
仮想アドレス範囲を、指定したファイル ハンドルに関連付けます。 これは、カーネルがこの範囲内で重複する構造を持つそれ以上の非同期 I/O 要求を最適化する必要があることを示します。 重複する範囲はメモリ内でロックされ、ファイルが閉じられるとロック解除されます。 範囲がファイル ハンドルに関連付けられた後は、関連付けを解除できません。
構文
BOOL SetFileIoOverlappedRange(
[in] HANDLE FileHandle,
[in] PUCHAR OverlappedRangeStart,
[in] ULONG Length
);
パラメーター
[in] FileHandle
ファイルへのハンドル。
このファイル ハンドルは、 FILE_READ_ATTRIBUTES アクセス権で開く必要があります。
[in] OverlappedRangeStart
範囲の開始アドレス。
[in] Length
範囲の長さ (バイト単位)。
戻り値
成功した場合は 0 以外、それ以外の場合は 0 を返します。
詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
SetFileIoOverlappedRange を使用すると、多数の非同期バッファーなしの I/O を発行し、定義された範囲の重複する構造体を使用するアプリケーションのパフォーマンスを向上させることができます。 この範囲の構造体はメモリ内でロックされるため、カーネルは I/O 要求の結果と重複する構造体を更新するときに、特定のロックを取得しないようにすることができます。
SetFileIoOverlappedRange では、呼び出し元に SeLockMemoryPrivilege アクセス特権が必要です。
この関数は、バッファー処理された I/O と同期 I/O には影響しません。
Windows 8 と Windows Server 2012 では、この関数は、次のテクノロジによってサポートされています。
テクノロジ | サポートされています |
---|---|
サーバー メッセージ ブロック (SMB) 3.0 プロトコル | はい |
SMB 3.0 Transparent Failover (TFO) | はい |
スケールアウト ファイル共有 (SO) を使う SMB 3.0 | はい |
クラスターの共有ボリューム ファイル システム (CsvFS) | はい |
Resilient File System (ReFS) | はい |
必要条件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | fileapi.h (Windows.h、WinBase.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |