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 () 源路径的文件集的文件规范一致。

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

另请参阅

IVssBackupComponents::SetRangesFilePath

IVssComponent

IVssComponent::GetPartialFile

IVssComponent::GetPartialFileCount