メモリ ファイル I/O の実行
マルチメディア ファイル I/O サービスを使用すると、メモリ ブロックをファイルとして扱うことができます。 これは、メモリ内にファイル イメージが既にある場合に役立ちます。 メモリ ファイルを使用すると、I/O の目的でメモリ ファイルをディスク ベースのファイルのように扱うことができるため、コード内の特殊なケースの条件の数を減らすことができます。 クリップボードでメモリ ファイルを使用することもできます。
I/O バッファーと同様に、メモリ ファイルは、アプリケーションまたはファイル I/O マネージャーによって割り当てられたメモリを使用できます。 さらに、メモリ ファイルは、展開可能または展開不可にすることができます。 ファイル I/O マネージャーは、拡張可能なメモリ ファイルの末尾に達すると、事前に定義された増分でメモリ ファイルを展開します。
メモリ ファイルを開くには、 mmioOpen 関数を使用し、 szFilename パラメーターを NULL に設定し、 dwOpenFlags パラメーターに MMIO_READWRITE フラグを設定します。 lpmmioinfo パラメーターを、次のように設定された MMIOINFO 構造体を指すように設定します。
- pIOProc メンバーを NULL に設定します。
- fccIOProc メンバーをFOURCC_MEMに設定します。
- メモリ ブロックを指す pchBuffer メンバーを設定します。 ファイル I/O マネージャーがメモリ ブロックを割り当てるよう要求するには、 pchBuffer を NULL に設定 します。
- cchBuffer メンバーをメモリ ブロックの初期サイズに設定します。
- adwInfo メンバーをメモリ ブロックの最小拡張サイズに設定します。 展開不可能なメモリ ファイルの場合は、 adwInfo を NULL に設定 します。
- 他のすべてのメンバーを 0 に設定します。
実行不可能なメモリ ファイルとして使用するメモリの割り当てに制限はありません。