共用方式為


備份元件檔內容

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

備份元件檔包含陣列資料:

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

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

元件包含資訊

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

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

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

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

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

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

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

包含元件的相關資訊

備份元件檔的元件資料標記法 (不包含路徑和檔案規格資訊) ,這是透過 IVssComponent 介面的實例存取。

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

要求者會使用IVssBackupComponents::GetWriterComponents所傳回的IVssWriterComponentsExt介面實例,依寫入器檢查元件資料。

除了寫入器識別資訊之外, 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擷取的寫入器和要求者