ResetWriteWatch 関数 (memoryapi.h)
仮想メモリの領域の書き込み追跡状態をリセットします。 GetWriteWatch 関数に対する後続の呼び出しは、リセット操作以降に書き込まれたページのみを報告します。
Itanium ベースのシステム上の 64 ビット Windows: ページ サイズの違いにより、 ResetWriteWatch は 32 ビット アプリケーションではサポートされていません。
構文
UINT ResetWriteWatch(
[in] LPVOID lpBaseAddress,
[in] SIZE_T dwRegionSize
);
パラメーター
[in] lpBaseAddress
書き込み追跡状態をリセットするメモリ領域のベース アドレスへのポインター。
このアドレスは、MEM_WRITE_WATCHを使用して VirtualAlloc 関数によって割り当てられるメモリ領域に存在する必要があります。
[in] dwRegionSize
書き込み追跡情報をリセットするメモリ領域のサイズ (バイト単位)。
戻り値
関数が成功した場合、戻り値は 0 (ゼロ) になります。
関数が失敗した場合、戻り値は 0 以外の値になります。
解説
ResetWriteWatch 関数は、ガベージ コレクターなどのアプリケーションに役立ちます。 アプリケーションは GetWriteWatch 関数を呼び出して、書き込まれたページの一覧を取得し、クリーンアップ操作の一環としてそれらのページに書き込みます。 その後、ガベージ コレクターは ResetWriteWatch を呼び出して、クリーンアップによって発生した書き込み追跡レコードを削除します。
GetWriteWatch を呼び出すときにWRITE_WATCH_FLAG_RESETを指定することで、メモリ領域の書き込み追跡状態をリセットすることもできます。
ResetWriteWatch を使用する場合は、GetWriteWatch 呼び出しと ResetWriteWatch 呼び出しの間に、リージョンにスレッドが書き込まれないことを確認する必要があります。 それ以外の場合は、検出されない書き込みページが存在する可能性があります。
要件
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | memoryapi.h (Windows.h、Memoryapi.h を含む) |
Library | onecore.lib |
[DLL] | Kernel32.dll |