產生備份組

備份組是要備份的所有檔案清單、其位置,以及如何備份它們。

要求者必須在 IVssBackupComponents::D oSnapshotSet 成功傳回之後,使用陰影複製磁片區中包含的檔案,以產生要備份的完整檔案清單。

此外,要求者必須處理某些檔案具有 替代路徑 ,且某些檔案已排除的可能性。

選取要備份之檔案的演算法應該依 寫入器實例 、依元件 (,如同還原期間的情況一樣;請參閱 產生還原集) ,並可能執行下列動作:

  1. 判斷包含寫入器檔案和對應裝置物件的磁片區
  2. 視需要使用FindFileFirst、FindFileFirstExFindNextFile,使用IVssEx (包含在 IVssExlaiwriterMetadata::GetExcludeFileFile所傳回的IVssWMFiledesc物件中所包含的檔案集資訊) 建立明確排除的檔案清單。
  3. 使用 IVssEx,riterMetadata::GetComponent逐一查看寫入器的所有元件。 如果選取了可選取的元件,請使用 邏輯路徑 來取得與元件集中相關聯的不可選取元件。 (請參閱 使用可選取性和邏輯路徑。)
  4. 使用對應至所包含之每個元件的IVssWMComponent介面,取得每個所選元件中包含的檔案集
  5. 從規格產生檔案清單—如有必要,請使用 FindFileFirstFindFileFirstExFindNextFile
  6. 根據上面產生的排除檔案清單,檢查從元件資訊產生的清單中每個檔案。 這應該使用 IVssWMFiledesc::GetPath) 所傳回之檔案的預設路徑 (,而不是由 IVssWMFiledesc::GetAlternateLocation 所傳回的替代路徑) 來完成。 如果檔案符合排除的清單,則不會備份它。
  7. 如果設定) ,則選擇使用替代路徑備份 (的實際位置
  8. 此時,檔案及其位置的完整清單可供使用,而且可以開始備份。

針對系統上存在的所有寫入器產生初始備份組之後,要求者接著會檢查下列登錄機碼:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\BackupRestore\FilesNotToBackup

要求者會使用此機碼底下的子機碼,如下所示:

  • 如果系統上有寫入器存在,而且有一個子機碼的名稱符合寫入器的名稱,則必須忽略該子機碼。
  • 如果系統上有寫入器,但備份組目前不存在,而且有相符的子機碼,則會排除子機碼資料中指定的任何檔案,而且必須從備份組移除。
  • 備份應用程式會建立MULTI_SZ值,其中包含不得備份之檔案的檔案規格清單,以將檔案新增至子機碼資料。 MULTI_SZ值中的每個字串都應該包含一個檔案規格。
  • 檔案規格可以包含 ? 和 * 萬用字元。 將 /s 附加至結尾,即可讓規格遞迴。 例如,指定 「%TEMP%\* /s」 會導致 %TEMP% 目錄中的所有檔案及其所有子目錄都不會備份。