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(含 0 到 n-1)的整数,其中 n 是与给定组件关联的部分文件的总数。 n 的值由 IVssComponent::GetPartialFileCount 返回。

[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)
Library VssApi.lib

另请参阅

IVssBackupComponents::SetRangesFilePath

IVssComponent

IVssComponent::AddPartialFile

IVssComponent::GetPartialFileCount