ページの状態
プロセスの仮想アドレス空間のページは、次のいずれかの状態にすることができます。
状態 | 形容 |
---|---|
無料 | ページはコミットも予約もされません。 このページにはプロセスにアクセスできません。 予約、コミット、または同時に予約とコミットが可能です。 空きページの読み取りまたは書き込みを試みると、アクセス違反の例外が発生します。 プロセスでは、VirtualFree または VirtualFreeEx関数使用して、そのアドレス空間の予約済みページまたはコミット済みページを解放し、空き状態に戻すことができます。 |
引っ込み思案 | このページは、今後使用するために予約されています。 アドレスの範囲は、他の割り当て関数では使用できません。 ページにはアクセスできないので、物理ストレージが関連付けされていません。 コミット可能です。 プロセスは、VirtualAlloc または VirtualAllocEx関数使用してアドレス空間のページを予約し、後で予約済みページをコミットできます。 VirtualFree使用するか、VirtualFreeExをしてコミットされたページをコミット解除し、予約済み状態に戻すことができます。 |
コミット | メモリ使用量は、ディスク上の RAM ファイルとページング ファイルの全体的なサイズから割り当てられています。 ページにアクセスでき、アクセスは メモリ保護定数のいずれかによって制御されます。 システムは、コミットされた各ページを初期化し、そのページに対する最初の読み取りまたは書き込みを試みるときにのみ物理メモリに読み込みます。 プロセスが終了すると、システムはコミット済みページのストレージを解放します。 プロセスでは、VirtualAlloc使用することも、VirtualAllocExをして予約リージョンから物理ページをコミットすることもできます。 また、ページの予約とコミットを同時に行うこともできます。 GlobalAlloc 関数と LocalAlloc 関数は、読み取り/書き込みアクセス権を持つコミット済みページを割り当てます。 |