次の方法で共有


ファイルに格納されたセクションとページ ファイルに格納されたセクション

すべてのメモリ セクションは、共有するデータを一時的または永続的に格納できるディスク ファイルによってサポートされます ("格納されます")。

セクションを作成するとき、セクションの格納先となる特定のデータ ファイルを識別できます。 このようなセクションは、ファイルに格納されたセクションと呼ばれます。

格納側のファイルを識別しない場合、セクションはシステムのページング ファイルに格納され、セクションはページ ファイルに格納されたセクションと呼ばれます。 ファイルに格納されたセクション内のデータは、ディスクに永続的に書き込むことができます。 ページ ファイルに格納されたセクション内のデータは、ディスクに永続的に書き込まれることはありません。

ファイルに格納されたセクションには、ディスク上の実際のファイルの内容が反映されます。つまり、メモリ マップ ファイルです。 ファイルに格納された特定のセクション内のメモリの場所へのアクセスは、関連付けられているファイル内の場所へのアクセスに対応しています。

プロセスがビューを読み取り専用としてマップする場合、ビューから読み取られたデータはすべてファイルから透過的に読み取られます。 同様に、プロセスがビューを読み取り/書き込みとしてマップした場合、ビューから読み取られたり、ビューに書き込まれたりしたデータはすべて、透過的に読み取られたり、ファイルに書き込まれたりします。 どちらの場合も、ビューの仮想メモリはページ ファイル内の領域を使用しません。

ファイルに格納されたセクションは、コピー オン ライトとしてマップすることもできます。 その場合、ビューのデータはファイルから読み取られますが、ビューに書き込まれたデータはファイルに書き込まれません。代わりに、最終的なビューがマップ解除されて、セクションの最後のハンドルが閉じられた後に、破棄されます。

ページ ファイルに格納されたセクションは、ディスク上の明示的なファイルではなくページ ファイルに格納されます。 ページ ファイルに格納されたセクションに加えられた変更は、セクション オブジェクトが破棄された後、自動的に破棄されます。 ページ ファイルに格納されたセクションは、2 つのプロセス間の共有メモリ セグメントとして使用できます。

ファイルに格納されるかどうかに関係なく、どのセクションも 2 つのプロセス間で共有できます。 各プロセス内の仮想メモリ アドレス範囲には、同じ物理メモリ アドレス範囲がマップされます (ただし、必ずしも同じ仮想アドレスにマップされるわけではありません)。