共用方式為


備份元件文件內容

備份元件檔是由 IVssBackupComponents 介面的實例所維護。 這個介面也包含許多方法來控制備份作業、作陰影複製,以及查詢系統狀態。 不過,並非所有文件的資訊都可以透過這個介面直接存取。

備份元件檔包含數位資料:

  • 備份或還原作業中明確包含哪些元件的相關信息
  • 預存元件和寫入器資訊的表示法
  • 備份/復原作業的狀態資訊

雖然元件資訊同時可供要求者和寫入器使用,但只有寫入器可以存取狀態資訊。

元件包含資訊

備份元件檔包含要求者明確包含在備份和還原中的元件清單。 此清單包含下列專案:

還原中隱含包含之元件的身分識別不會儲存在備份元件檔中。

VSS 可以存取元件包含的相關信息:還原或備份中未明確包含任何元件的寫入器,在產生 PrepareForBackupPreRestore 事件之後,不會收到 VSS 事件。

寫入器無法直接查詢這項資訊。 這不是一項重大限制,因為根據設計,個別 VSS 寫入器不應該要求系統上其他寫入器狀態的詳細資訊,如上所述,沒有包含元件的人員就不需要參與 VSS 作業。

要求者可以判斷作業中明確包含哪些元件。

IVssBackupComponents::GetWriterComponentsCount 方法會傳回寫入器數目,其中包含儲存在備份元件檔中的元件資訊(而不是檔中的元件數目)。

要求者會使用 IVssBackupComponents::GetWriterComponents來透過預存寫入器資訊編製索引,這會傳回 IVssWriterComponentsExt 介面的實例。 IVssWriterComponentsExt 介面可讓要求者取得 寫入器類別 和參與寫入器寫入器實例,以及存取其儲存在備份元件檔中之元件的相關信息。

包含元件的相關信息

備份元件檔的元件數據表示法(不包含路徑和檔案規格資訊),可透過 IVssComponent 介面的實例來存取。

要求者和寫入器會以不同方式取得 IVssComponent 介面實例的存取權。

要求者會使用 IVssWriterComponentsExt 傳回的 IVssWriterComponentsExt 介面實例,依寫入器檢查元件數據::GetWriterComponents

除了寫入器識別資訊之外,IVssWriterComponentsExt 介面還提供一個實例的實例數位 IVssComponent 介面,每個選取的寫入器都包含元件各一個。

備份元件檔生命週期所述,寫入器可以在處理 PrepareForBackup、PrepareForSnapshot、PostSnapshot、BackupComplete、PreRestore 或 PostRestore 事件時,透過 IVssWriterComponents 介面來存取相同的資訊。

IVssComponent 可讓寫入者和要求者取得下列資訊:

不同於要求者,寫入器可以透過 IVssComponent 介面變更備份元件檔中的特定資訊:

要求者狀態資訊

要求者會使用 IVssBackupComponents 介面,將備份或還原作業狀態的相關信息插入備份元件檔中。 寫入器應用程式可以透過 CVssWriter 類別查詢此資訊。

儲存在備份元件檔中的狀態資訊包括:

備份的一般資訊

  • 整體備份類型(累加、差異或完整)

使用 IVssBackupComponents::SetBackupState

由寫入器使用 CVssWriter::GetBackupType 擷取

- 是否支援元件作業

使用 IVssBackupComponents::SetBackupState

使用 CVssWriter::AreComponentsSelected 的寫入器擷取

- 是否備份可開機的系統狀態

使用 IVssBackupComponents::SetBackupState

由寫入器使用 CVssWriter::IsBootableStateBackedUp 擷取

- 是否支援部分檔案作業

使用 IVssBackupComponents::SetBackupState

使用 CVssWriter::IsPartialFileSupportEnabled 由寫入器擷取

還原的一般資訊

  • 整體還原類型 (還原是透過複製或匯入)

使用 IVssBackupComponents::SetRestoreState

由寫入器使用 CVssWriter::GetRestoreType 擷取

支援檔案的相關信息

  • 部分檔案作業中特定元件所使用的範圍檔案位置

使用 IVssBackupComponents::SetRangesFilePath

由寫入者(或要求者)使用 IVssComponent::GetPartialFile 擷取

信息的狀態

  • 指出指定寫入器的其中一個元件是否已成功備份

使用 IVssBackupComponents::SetBackupSucceeded

由寫入器和要求者使用 IVssComponent::GetBackupSucceeded 擷取

- 指出指定的寫入器元件是否成功還原

使用 IVssBackupComponents::SetFileRestoreStatus

由寫入器和要求者使用 IVssComponent::GetFileRestoreStatus 擷取

Writer-Settable 資訊

  • 指定寫入器元件之一的其他備份規格

使用 IVssComponent::SetBackupMetadata 寫入器設定

由寫入者和要求者使用 IVssComponent::GetBackupMetadata 擷取

- 指定寫入器的其中一個元件的其他還原規格

使用 IVssComponent::SetRestoreMetadata

由寫入器和要求者使用 IVssComponent::GetRestoreMetadata 擷取

- 備份戳記,指出寫入器本身的特定格式,其元件備份之目前備份的時間

使用 IVssComponent::SetBackupStamp 寫入器設定

由寫入器和要求者使用 IVssComponent::GetBackupStamp 擷取

- 備份戳記,這個備份戳記會以寫入器本身的特定格式表示,使用最初由 IVssComponent::SetBackupStamp 設定的備份戳記之其中一個元件備份的最後備份時間

使用 IVssBackupComponents::SetPreviousBackupStamp 來儲存並設定特定元件的要求者

由寫入器和要求者使用 IVssComponent::GetPreviousBackupStamp 擷取

- 還原作業前後失敗的錯誤訊息

使用 IVssComponent::SetPreRestoreFailureMsgIVssComponent::SetPostRestoreFailureMsg

由寫入器和要求者使用 IVssComponent::GetPreRestoreFailureMsgIVssComponent::GetPostRestoreFailureMsg 擷取