IVssComponent::AddPartialFile 方法 (vswriter.h)

AddPartialFile 方法表示只備份指定檔案的部分,以及那些部分。

只有寫入器可以呼叫這個方法,而且只能在備份作業期間呼叫。

語法

HRESULT AddPartialFile(
  [in] LPCWSTR wszPath,
  [in] LPCWSTR wszFilename,
  [in] LPCWSTR wszRanges,
  [in] LPCWSTR wszMetadata
);

參數

[in] wszPath

以 Null 終止的寬字元字串,其中包含部分檔案作業所涉及的檔案路徑。

路徑可以包含環境變數 (,例如%SystemRoot%) ,但不能包含通配符。

路徑結尾不需要反斜杠 (“”) 。 這是擷取此資訊以檢查的應用程式。

如果元件定義元件集) ,此路徑應該符合或位於元件 (或其中一個子元件中的檔案集路徑下方。

[in] wszFilename

以 Null 結尾的寬字元字串,其中包含部分檔案作業所涉及的檔名。 wszFilename) 檔案 (的名稱不能包含通配符 (* 或 ?) ,而且必須與包含 wszPath (wszPath) 之檔案集的檔案規格一致。

[in] wszRanges

Null 終止的寬字元字串,其中包含組成部分檔案支援範圍的檔案位移和長度清單, (實際備份檔區段) ,或包含這類清單的檔名。

需要指定部分檔案支援範圍,而且此值不能是 NULL

[in] wszMetadata

以 Null 終止的寬字元字串,其中包含寫入器驗證部分檔案還原作業所需的任何其他元數據。 此元數據字串中的資訊會不透明給要求者。

如果不需要額外的元數據,此值可以是 NULL

傳回值

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

意義
S_OK
成功設定專案。
E_INVALIDARG
其中一個參數值無效。
E_OUTOFMEMORY
呼叫端記憶體不足或其他系統資源。
VSS_E_BAD_STATE
寫入器未呼叫方法,或者,如果寫入器呼叫,則不會在還原作業期間呼叫方法。

備註

只有寫入器可以呼叫這個方法,而且寫入器無法在還原作業期間呼叫此方法。

範圍清單 (wszRanges) 語法是格式 offset1:length1、offset2:length2 的逗號分隔清單,其中每個位移和長度都是 64 位整數,分別指定位元組位移和位元組長度。 位移和長度可以表示為十六進位或十進位值。

如果 wszRange 是指包含範圍檔案) (所有位移和長度的檔案, wszRange 只會包含檔案的完整路徑。

範圍檔案必須是具有下列格式的二進位檔案:

  1. 64 位整數,指出需要備份的相異檔案範圍數目
  2. 每個範圍都以一對64位整數表示:要以位元組為單位備份之檔案的位移,以及從該位移開始要備份的數據長度
不論是哪一種情況,範圍都表示要備份之指定檔案的子區段,與檔案的其餘部分無關。

要求者可以使用 IVssComponent::GetPartialFile 擷取部分檔案資訊,並使用 GetPartialFile 傳回的位移和長度資訊,將備份區段還原到磁碟上磁碟上檔案複本內的適當位置。

如果元件定義元件集) ,也可以將 AddPartialFile 套用至元件 (或其中一個子元件所管理的檔案,也可以將新檔案新增至元件,並指出它會參與部分檔案作業。

當指出要參與的檔案是新的檔案時,該檔案必須存在於陰影複製的磁碟區上,且其路徑 (wszPath) 應該符合或位於元件 (或其中一個子元件的路徑下,如果元件定義元件集) 。 不過,檔案的檔案規格 (wszFileSpec) 不應該與元件中的檔案規格相符。

任何新增的檔案都不支援替代位置對應。

規格需求

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

另請參閱

IVssBackupComponents::SetRangesFilePath

IVssComponent

IVssComponent::GetPartialFile

IVssComponent::GetPartialFileCount