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

関連項目

File Management 関数