CVssWriter::OnPostSnapshot 方法 (vswriter.h)
OnPostSnapshot方法是由PostSnapshot事件之後的寫入器所呼叫。
OnPostSnapshot 是虛擬方法。 它是由 CVssWriter 基類實作,但可由衍生類別覆寫。
語法
bool OnPostSnapshot(
[in] IVssWriterComponents *pComponent
);
參數
[in] pComponent
VSS 所傳入 之 IVssWriterComponents 物件的指標,以提供存取寫入器元件資訊的方法。 如果要求者不支援 CVssWriter::AreComponentsSelected 傳回 false () ,則此參數的值可能是 Null。
傳回值
如同基類所實作, OnPostSnapshot 一律會傳回 true。
這個方法的任何其他實作都必須傳回 true, 除非發生嚴重錯誤。 如果發生嚴重錯誤,方法必須呼叫 CVssWriter::SetWriterFailure 方法,才能提供失敗的描述,然後再傳回 false。 如果發生非嚴重錯誤,方法仍應呼叫 SetWriterFailure ,但傳回 true。 如果錯誤是因為暫時性問題所造成,方法應該在 對 SetWriterFailure的呼叫中指定VSS_E_WRITERERROR_RETRYABLE。
在發生失敗的所有情況下,方法都應該將事件寫入事件記錄檔,以報告失敗的確切原因。
備註
CVssWriter基類的預設此方法實作會傳回true,而不會執行任何其他作業。
CVssWriter::OnPostSnapshot 通常用來處理寫入器對備份元件中繼資料的任何最終更新,並清除 (,例如移除暫存檔) 。
如果正在執行增量或差異備份,寫入器可能會呼叫 IVssComponent::GetPreviousBackupStamp 和 IVssComponent::SetBackupStamp。 如需詳細資訊,請參閱 備份複雜存放區中的寫入器角色。 此時可呼叫的另一種方法是 IVssComponent::AddDifferencedFilesByLastModifyTime。
將寫入器傳回正常作業所需的大部分工作 (反轉 CVssWriter::OnPrepareSnapshot 和 CVssWriter::OnFreeze) 通常會在 CVssWriter::OnThaw中執行,而不是在 OnPostSnapshot中執行。
寫入器絕對不應該從這個方法或任何其他CVssWriter (Ex) ::OnXxx回呼方法擲回例外狀況。
如果陰影複製已在內容中設定 VSS_VOLSNAP_ATTR_AUTORECOVER 旗標,寫入器應該執行任何所需的復原 (,例如,復原任何不完整的交易) ,讓元件可在唯讀複本上用於資料採礦 (,而不需將載入新增至即時伺服器) 或還原 (例如, 表示從資料庫) 還原選取的專案。
若要擷取磁片區陰影複製的磁片區名稱,請執行下列步驟:
- 呼叫 CVssWriter::GetCurrentVolumeCount 方法來查詢陰影複製集中的磁片區數目。
- 呼叫 CVssWriter::GetCurrentVolumeArray 方法,以列舉陰影複製集中磁片區的原始名稱。
- 呼叫 CVssWriter::GetSnapshotDeviceName 以擷取陰影複製磁片區的名稱。
規格需求
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | vswriter.h (包括 Vss.h、VsWriter.h) |
程式庫 | VssApi.lib |