IVssCreateWriterMetadata::AddComponentDependency 方法 (vswriter.h)

AddComponentDependency 方法允许编写器指示它管理的组件具有显式编写器组件依赖项;也就是说,另一个编写器中的另一个组件必须用它进行备份和还原。

语法

HRESULT AddComponentDependency(
  [in] LPCWSTR wszForLogicalPath,
  [in] LPCWSTR wszForComponentName,
  [in] VSS_ID  onWriterId,
  [in] LPCWSTR wszOnLogicalPath,
  [in] LPCWSTR wszOnComponentName
);

参数

[in] wszForLogicalPath

一个以 null 结尾的宽字符串,其中包含 (当前编写器) 管理的、需要依赖项的组件的逻辑路径。

[in] wszForComponentName

一个以 null 结尾的宽字符串,其中包含当前编写器) 管理 (需要依赖项的组件。

[in] onWriterId

类 ID 或 VSS_ID (管理当前组件所依赖组件的编写器的 GUID) 。

[in] wszOnLogicalPath

组件的逻辑路径 (由当前组件所依赖的 onWriterId) 标识的编写器管理。

[in] wszOnComponentName

由当前组件所依赖的 onWriterId) 标识的编写器管理 (组件的名称。

返回值

下面是此方法的有效返回代码。

含义
S_OK
操作成功。
E_INVALIDARG
其中一个参数值无效。
E_OUTOFMEMORY
调用方内存或其他系统资源不足。
VSS_E_INVALID_XML_DOCUMENT
XML 文档无效。 有关详细信息,请查看事件日志。 有关详细信息,请参阅 VSS 下的事件和错误处理
VSS_E_OBJECT_NOT_FOUND
由 wszForLogicalPathwszForComponentName 指定的组件不存在。
VSS_E_UNEXPECTED
意外错误。 错误代码记录在错误日志文件中。 有关详细信息,请参阅 VSS 下的事件和错误处理

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

注解

不允许对当前编写器管理的组件依赖。

依赖项要求一起还原和备份依赖项的目标和依赖于目标的组件。 它并不指示组件之间的优先级,尽管请求者可以选择实现该优先级。

由于逻辑名称和组件名称的组合在编写器类的所有实例中必须是唯一的,因此多个编写器可能具有相同的类 ID 这一事实并不成问题。

此方法可用于声明远程依赖项。 编写器可以通过将“\\RemoteComputerName”(其中 RemoteComputerName 是远程组件所在的计算机的名称)追加到 wszOnLogicalPath 参数中的逻辑路径来声明远程依赖项。 RemoteComputerName 的值可以是 GETComputerNameEx 函数返回的 IP 地址或计算机名称

如果远程组件驻留在群集上,则编写器必须报告群集的虚拟名称,并且请求者负责将虚拟名称映射到群集节点的物理名称,然后才能创建卷影副本。

若要确定依赖项是本地依赖项还是远程依赖项,请求者必须检查 pbstrComponentName 参数中返回的组件名称。 如果组件名称以“\”开头,则请求者必须假定它指定远程依赖项,并且“\”后面的第一个组件是编写器指定的 RemoteComputerName 。 如果组件名称不以“\”开头,则请求者应假定它指定了本地依赖项。

Windows Server 2003: 在 Windows Server 2003 Service Pack 1 (SP1) 之前,此方法不能用于声明远程依赖项。

要求

   
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 vswriter.h (包括 Vss.h、VsWriter.h)
Library VssApi.lib