IVssComponent::AddDifferencedFilesByLastModifyTime 方法 (vswriter.h)

寫入器會使用 AddDifferencedFilesByLastModifyTime 方法,指出檔案集 (指定的檔案或檔案) 應該根據上次修改時間戳記評估,以使用整個檔案納入時間戳記累加式或差異備份,而不是部分檔案。

這個方法只能在備份作業期間由寫入器呼叫。

語法

HRESULT AddDifferencedFilesByLastModifyTime(
  [in] LPCWSTR  wszPath,
  [in] LPCWSTR  wszFilespec,
  [in] BOOL     bRecursive,
  [in] FILETIME ftLastModifyTime
);

參數

[in] wszPath

以 Null 結束的寬字元字串,其中包含要對應的檔案之目錄或目錄階層的名稱。

路徑可以包含環境變數 (例如%SystemRoot%) ,但不能包含萬用字元。

路徑結尾不需要反斜線 (「」) 。 它由擷取這項資訊以檢查的應用程式決定。

[in] wszFilespec

以 Null 結尾的寬字元字串,其中包含要對應的檔案檔案規格。

例如,檔案規格不能包含目錄規格 (,沒有反斜線) 但可以包含 ? 和 * 萬用字元。

[in] bRecursive

布林值,指定 wszPath 參數所指定的路徑是否只識別單一目錄,或指出要以遞迴方式周遊的目錄階層。 如果路徑被視為以遞迴方式周遊的目錄階層,則此參數應設定為 true ,否則為 false

如需周遊掛接資料夾的資訊,請參閱 使用掛接的資料夾和重新分析點

[in] ftLastModifyTime

差異檔案上次修改時間的寫入器規格,以 FILETIME 結構表示。

上次修改時間一律以 Greenwich Mean Time 指定。

傳回值

以下是這個方法的有效傳回碼。

意義
S_OK
已成功新增差異檔案。
E_INVALIDARG
其中一個參數值無效。
E_OUTOFMEMORY
呼叫端記憶體不足或其他系統資源。
VSS_E_BAD_STATE
這個方法不是由寫入器呼叫,或者,如果由寫入器呼叫,在備份作業期間或是在處理 BackupCompleteBackupShutdown 事件時呼叫此方法。
VSS_E_INVALID_XML_DOCUMENT
XML 檔無效。 請檢查事件記錄檔以取得詳細資料。 如需詳細資訊,請參閱 VSS 下的事件和錯誤處理
VSS_E_UNEXPECTED
非預期的錯誤。 錯誤碼會記錄在錯誤記錄檔中。 如需詳細資訊,請參閱 VSS 下的事件和錯誤處理

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 在 Windows Server 2008 R2 和 Windows 7 之前,不支援此值。 E_UNEXPECTED改用。

備註

寫入器會呼叫這個方法,以指定元件中的特定檔案只有在特定時間以來已修改時,才應該備份這些檔案。 如需詳細資訊,請參閱 依上次修改時間備份

這個方法只能由支援上次修改架構的寫入器呼叫, (VSS_BS_LAST_MODIFY) ,而且只能在備份作業期間呼叫。 使用此方法的寫入器不需要支援時間戳記架構 (VSS_BS_TIMESTAMPED) 。

由 AddDifferencedFilesByLastModifyTime新增的檔案不應也由IVssComponent::AddPartialFile新增。

如果備份類型 (VSS_BACKUP_TYPE) (VSS_BT_INCREMENTAL) ,則使用 AddDifferencedFilesByLastModifyTime 的寫入器必須支援累加架構 (VSS_BS_INCREMENTAL) 。 如果備份類型是差異的,寫入器必須支援 VSS_BS_DIFFERENTIAL 架構。

在備份作業的實際開始之前,應該先呼叫 AddDifferencedFilesByLastModifyTime 方法,通常處理 PostSnapshot 事件 (請參閱 CVssWriter::OnPostSnapshot) 。

如果 AddDifferencedFilesByLastModifyTime 所設定的時間戳記值不是零值,要求者必須在判斷差異檔案是否應該包含在差異或增量備份中時,遵守此值。

如果 AddDifferencedFilesByLastModifyTime 所設定的時間戳記 (ftLastModifyTime) 為零,則要求者可以使用檔案系統資訊和自己的記錄來判斷差異檔案是否應該包含在差異或增量備份中。

要求者呼叫 IVssComponent::GetDifferencedFile,以擷取元件所管理的差異檔案數目。

差異檔案集可以是下列其中一項:

  • 如果元件) 其子元件定義元件集,則為目前元件的成員或 (
  • 先前未包含在元件或子元件中的新檔案。 AddDifferencedFilesByLastModifyTime方法可讓寫入器指出建立的檔案,因為原始備份應該包含在元件中,以支援增量或差異備份。
參考已屬於元件一部分的檔案時,路徑、檔案規格和遞迴旗標的組合 (wszPathwszFileSpecbRecursive分別) 提供給 AddDifferencedFilesByLastModifyTime 的對應必須符合 IVssCreateWriterMetadata::AddFilesToFileGroupIVssCreateWriterMetadata::AddDatabaseFilesIVssCreateWriterMetadata::AddDatabaseLogFiles

將新檔案新增至元件時, AddDifferencedFilesByLastModifyTime,寫入器不應該新增由另一個元件或寫入器管理的檔案。

IVssComponent介面中沒有方法,允許變更或新增AddDifferencedFilesByLastModifyTime所新增新檔案的替代位置對應。 如果替代位置對應對應至新的檔案,則會使用該替代位置。

規格需求

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

另請參閱

CVssWriter::OnPostSnapshot

IVssComponent

IVssComponent::GetDifferencedFile

IVssComponent::GetDifferencedFilesCount

增量和差異備份

VSS_BACKUP_SCHEMA

VSS_BACKUP_TYPE

VSS_FILE_SPEC_BACKUP_TYPE