IVssComponent::GetPartialFile 方法 (vswriter.h)

GetPartialFile 方法會傳回與此元件相關聯的部分檔案資訊。

語法

HRESULT GetPartialFile(
  [in]  UINT iPartialFile,
  [out] BSTR *pbstrPath,
  [out] BSTR *pbstrFilename,
  [out] BSTR *pbstrRange,
  [out] BSTR *pbstrMetadata
);

參數

[in] iPartialFile

部分檔案的索引編號。 此參數的值是包含 0 到 n–1 的整數,其中 n 是與指定元件相關聯的部分檔案總數。 iVssComponent::GetPartialFileCount 會傳回 n 的值。

[out] pbstrPath

包含部分檔案路徑的字串指標。

此方法的用戶必須檢查此路徑是否以反斜杠 (“”) 結尾。

[out] pbstrFilename

包含部分檔名的字串指標。

[out] pbstrRange

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

[out] pbstrMetadata

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

不需要其他元數據,因此 pbstrMetadata 也可能是空的 (零長度) 。

傳回值

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

意義
S_OK
已成功傳回屬性值。
E_INVALIDARG
其中一個參數值無效。
E_OUTOFMEMORY
呼叫端記憶體不足或其他系統資源。
VSS_E_BAD_STATE
呼叫端未處於正確的狀態, (作業的備份或還原) 。
VSS_E_INVALID_XML_DOCUMENT
XML 檔無效。 請檢查事件記錄檔以取得詳細數據。 如需詳細資訊,請參閱 VSS 下的事件和錯誤處理
VSS_E_OBJECT_NOT_FOUND
找不到指定的專案。

備註

呼叫端應該藉由呼叫 SysFreeString 來釋放 pbstrPathpbstrFilenamepbstrRangepbstrMetadata 參數所保留的記憶體。

範圍表示要備份之指定檔案的子區段,與檔案的其餘部分無關。

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

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

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

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

  1. 64 位整數,指出需要備份的相異檔案範圍數目。
  2. 每個範圍都以一對64位整數表示:要備份之檔案的位移、以位元組為單位,以及從該位移開始要備份的數據長度。
範圍檔案應該與部分檔案一起備份,而且通常會還原到備份來源的相同位置。

不過,要求者可能會改變要還原範圍檔案的位置,而要求者會使用 IVssBackupComponents::SetRangesFilePath 來指出這一點,並更新備份元件檔,讓 pbstrRanges 指出正確的範圍檔案。

要求者會使用 GetPartialFile 傳回的範圍資訊,在還原時將備份的區段還原到磁碟上檔案復本內的適當位置。

規格需求

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

另請參閱

IVssBackupComponents::SetRangesFilePath

IVssComponent

IVssComponent::AddPartialFile

IVssComponent::GetPartialFileCount