バックアップ セットの生成
バックアップ セットは、バックアップするすべてのファイル、その場所、およびバックアップ方法の一覧です。
IVssBackupComponents::D oSnapshotSet が正常に戻り、バックアップするファイルの完全な一覧を生成した後、要求者はシャドウ コピーされたボリュームに含まれるファイルを使用する必要があります。
さらに、要求者は、一部のファイルに 代替パス があり、一部のファイルが除外されている可能性に対処する必要があります。
バックアップするファイルを選択するアルゴリズムは、 ライター インスタンス ごとにライター インスタンスに配置する必要があります(復元中の場合と同様に、復元 セットの生成に関するページを参照)。
- ライターのファイルと対応するデバイス オブジェクトを含むボリュームの決定
- FindFileFirst、FindFileFirstEx、FindNextFile を使用して、必要に応じて、ファイル セット情報 (IVssExamineWriterMetadata::GetExcludeFile によって返される IVssWMFiledesc オブジェクトに含まれる) を使用して、明示的に除外されたファイルの一覧を作成します。
- IVssExamineWriterMetadata::GetComponent を使用して、ライターのすべてのコンポーネントを反復処理します。 選択可能なコンポーネントが選択されている場合は、 論理パス を使用して、コンポーネント セットに関連付けられている選択できないコンポーネントを取得します。 (「 選択可能性と論理パスの操作」を参照してください)。
- 含まれる各コンポーネントに対応する IVssWMComponent インターフェイスを使用して、選択した各コンポーネントに含まれるファイル セットを取得します。
- FindFileFirst、FindFileFirstEx、FindNextFile を使用して、必要に応じて、仕様からファイルの一覧を生成します。
- コンポーネント情報から生成されたリスト内の各ファイルを、上記で生成された除外されたファイルのリストと照合します。 これは、 IVssWMFiledesc::GetAlternateLocation によって返される代替パスではなく、ファイルの既定のパス ( IVssWMFiledesc::GetPath によって返されます) を使用して行う必要があります。 除外されたリストと一致するファイルはバックアップされません。
- バックアップ元の実際の場所の選択 (設定されている場合は代替パスを使用)
- この時点で、ファイルとその場所の完全な一覧が利用可能になり、バックアップを開始できます。
システム上に存在するすべてのライターに対して初期バックアップ セットが生成されると、リクエスターは次のレジストリ キーを確認します。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\BackupRestore\FilesNotToBackup
リクエスターは、このキーの下にあるサブキーを次のように使用します。
- ライターがシステム上に存在し、その名前がライターの名前と一致するサブキーがある場合、そのサブキーは無視する必要があります。
- ライターがシステム上に存在していたが、現在バックアップ セットに存在しない場合、一致するサブキーがある場合、サブキー データで指定されたすべてのファイルは除外され、バックアップ セットから削除する必要があります。
- バックアップ アプリケーションは、バックアップする必要のないファイルのファイル仕様の一覧を含むMULTI_SZ値を作成して、サブキー データにファイルを追加します。 MULTI_SZ値の各文字列には、1 つのファイル指定が含まれている必要があります。
- ファイルの仕様には、 を含めることができますか? および * ワイルドカード文字。 末尾に /s を追加することで、指定を再帰的にすることができます。 たとえば、"%TEMP%\* /s" を指定すると、%TEMP% ディレクトリ内のすべてのファイルがバックアップされず、そのサブディレクトリがすべてバックアップされません。