共用方式為


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::GetPreviousBackupStampIVssComponent::SetBackupStamp。 如需詳細資訊,請參閱 備份複雜存放區中的寫入器角色。 此時可呼叫的另一種方法是 IVssComponent::AddDifferencedFilesByLastModifyTime

將寫入器傳回正常作業所需的大部分工作 (反轉 CVssWriter::OnPrepareSnapshotCVssWriter::OnFreeze) 通常會在 CVssWriter::OnThaw中執行,而不是在 OnPostSnapshot中執行。

寫入器絕對不應該從這個方法或任何其他CVssWriter (Ex) ::OnXxx回呼方法擲回例外狀況。

如果陰影複製已在內容中設定 VSS_VOLSNAP_ATTR_AUTORECOVER 旗標,寫入器應該執行任何所需的復原 (,例如,復原任何不完整的交易) ,讓元件可在唯讀複本上用於資料採礦 (,而不需將載入新增至即時伺服器) 或還原 (例如, 表示從資料庫) 還原選取的專案。

若要擷取磁片區陰影複製的磁片區名稱,請執行下列步驟:

  1. 呼叫 CVssWriter::GetCurrentVolumeCount 方法來查詢陰影複製集中的磁片區數目。
  2. 呼叫 CVssWriter::GetCurrentVolumeArray 方法,以列舉陰影複製集中磁片區的原始名稱。
  3. 呼叫 CVssWriter::GetSnapshotDeviceName 以擷取陰影複製磁片區的名稱。
如果此方法呼叫 CVssWriterEx2::GetSessionIdCVssWriter::SetWriterFailureCVssWriterEx2::SetWriterFailureEx 方法,它必須在呼叫此方法的相同執行緒中執行此動作。 如需詳細資訊,請參閱 寫入器事件處理

規格需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 vswriter.h (包括 Vss.h、VsWriter.h)
程式庫 VssApi.lib

另請參閱

CVssWriter

CVssWriter::GetSnapshotDeviceName

CVssWriter::OnPreRestore

CVssWriter::OnPrepareBackup

CVssWriter::SetWriterFailure

CvssWriter::OnThaw

IVssWriterComponents