OfferVirtualMemory 関数 (memoryapi.h)
メモリ ページの範囲に含まれるデータがアプリケーションで不要になり、必要に応じてシステムによって破棄できることを示します。
指定されたページはアクセス不可としてマークされ、プロセス ワーキング セットから削除され、ページング ファイルに書き込まれません。
後で提供されたページを再利用するには、 ReclaimVirtualMemory を呼び出します。
構文
DWORD OfferVirtualMemory(
[in] PVOID VirtualAddress,
[in] SIZE_T Size,
[in] OFFER_PRIORITY Priority
);
パラメーター
[in] VirtualAddress
提供するメモリのページアライン開始アドレス。
[in] Size
提供するメモリ領域のサイズ (バイト単位)。 サイズ は、システム ページ サイズの整数倍数である必要があります。
[in] Priority
Priority は、提供されるメモリがアプリケーションにとってどれほど重要であるかを示します。 優先度が高いほど、 ReclaimVirtualMemory を呼び出すときに、提供されたメモリをそのまま再利用できる確率が高くなります。 システムは通常、優先度の高いメモリを破棄する前に、優先順位の低いメモリを破棄します。 優先度 は、次のいずれかの値である必要があります。
戻り値
成功した場合はERROR_SUCCESS。それ以外の場合は システム エラー コード 。
注釈
提供されているページを再利用するには、 ReclaimVirtualMemory を呼び出します。 再利用されたページのデータは破棄されている可能性があります。この場合、メモリ領域の内容は未定義であり、アプリケーションによって書き換える必要があります。
OfferVirtualMemory を呼び出して、ロックされている仮想メモリを提供しないでください。 これにより、指定した範囲のページのロックが解除されます。
仮想メモリの提供と再利用は、MEM_RESETとMEM_RESET_UNDOメモリ割り当てフラグの使用と似ていますが、 OfferVirtualMemory はプロセス ワーキング セットからメモリを削除し、提供されているページへのアクセスを再利用するまで制限する点に注意してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8.1 Update [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2012 R2 Update [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | memoryapi.h (Windows.h、Memoryapi.h を含む) |
Library | onecore.lib |
[DLL] | Kernel32.dll |