CimFS
CIM は、WIM の概念に似たファイルベースのイメージ形式です。
CIM 形式は、1 つ以上のデータおよびメタデータ領域ファイル、1 つ以上のオブジェクト ID ファイル、1 つ以上のファイルシステム記述ファイルを含むフラット ファイルの小さなコレクションで構成されます。 "フラット性" の CIM の結果として、含まれる同等の生ディレクトリよりも構築、抽出、削除が高速になります。
CIM は、特定のイメージに複数のファイル システム ボリュームを含めることができるという点で複合的であり、同じデータ領域のバッキング ファイルを共有しながら個別にマウントできます。
構築後は、CimFS ドライバーをサポートして CIM をマウントできます。 マウントは、イメージの読み取り専用ディスクとファイル システム ボリューム デバイスを構築します。 マウントされた CIM の内容には、標準の Win32 または NT API ファイル システム インターフェイスを使用して読み取り専用でアクセスできます。 CimFS ファイル システムでは、セキュリティ記述子、代替データ ストリーム、ハード リンク、再解析ポイントなど、NTFS のコンストラクトの多くがサポートされています。
CIM では、ファイル レベルでの重複除去がサポートされています。 異なるパスを使用して同じファイルの複数のコピーが CIM に追加された場合、CIM に格納されているファイル データのコピーは 1 つだけになります。
CIM は、もともと Windows コンテナー イメージ レイアウトとして使用するように設計および最適化されていました。
CimFS を使用して開発するには、次のヘッダーが必要です。
次のライブラリにリンクする必要があります。
- cimfs.lib
この サンプル では、複合イメージ ファイル システム (CimFS) API を使用して CimFS イメージを作成、構成、および操作する方法を示します。
CIM_MOUNT_IMAGE_FLAGS CIM_MOUNT_IMAGE_FLAGS列挙には、CimMountImage の動作を変更するために使用できるフラグが含まれています。 |
CimCloseImage CimCloseImage 関数は、イメージ ハンドルに関連付けられているリソースを解放します。 |
CimCloseStream CimCloseStream 関数は、ストリーム ハンドルに関連付けられているリソースを解放します。 |
CimCommitImage CimCommitImage 関数は、イメージ ハンドルによって表されるイメージをコミットします。 |
CimCreateAlternateStream CimCreateAlternateStream 関数は、イメージ ハンドルによって表されるイメージに対する相対パスに、指定したサイズの代替ストリームを追加します。 |
CimCreateFile CimCreateFile 関数は、指定されたメタデータを持つ新しいファイルまたはディレクトリを、イメージ ハンドルによって表されるイメージに対する相対パスに追加します。 |
CimCreateHardLink CimCreateHardLink 関数は、イメージ ハンドルによって表されるイメージを基準にして、既存のパスにハード リンクを追加します。 |
CimCreateImage CimCreateImage 関数は、指定された場所に新しいイメージを表すハンドルを作成します。必要に応じて、その場所にある既存のイメージに基づいて作成します。 |
CimDeletePath CimDeletePath 関数は、イメージ ハンドルによって表されるイメージに対する相対パスで、ファイル、ストリーム、ディレクトリ、またはハードリンクを削除します。 |
CimDismountImage CimDismountImage 関数は、ボリューム GUID として volumeId でマウントされたイメージをマウント解除します。 |
CimMountImage CimMountImage 関数は、volumeId で指定されたボリューム GUID を使用して、cimPath で指定された場所からボリュームとして名前付きイメージをマウントします。 |
CimWriteStream CimWriteStream 関数は、指定されたバッファーからストリーム ハンドルによって表されるストリームにデータを書き込みます。 |
CIMFS_FILE_METADATA CIMFS_FILE_METADATA構造体は、CimCreateFile によって追加されるファイルのファイル メタデータを指定します。 |