VSS_COMPONENTINFO 结构 (vsbackup.h)

VSS_COMPONENTINFO 结构包含有关给定组件的信息,并由 IVssWMComponent 接口返回到请求者。

语法

typedef struct _VSS_COMPONENTINFO {
  VSS_COMPONENT_TYPE type;
  BSTR               bstrLogicalPath;
  BSTR               bstrComponentName;
  BSTR               bstrCaption;
  BYTE               *pbIcon;
  UINT               cbIcon;
  bool               bRestoreMetadata;
  bool               bNotifyOnBackupComplete;
  bool               bSelectable;
  bool               bSelectableForRestore;
  DWORD              dwComponentFlags;
  UINT               cFileCount;
  UINT               cDatabases;
  UINT               cLogFiles;
  UINT               cDependencies;
} VSS_COMPONENTINFO;

成员

type

组件类型。 请参阅 VSS_COMPONENT_TYPE

bstrLogicalPath

包含组件的逻辑路径的字符串。

逻辑路径可以为 NULL

对可以出现在非 NULL 逻辑路径中的字符没有限制。

bstrComponentName

一个包含组件名称的字符串。 组件名称字符串不能为 NULL

bstrCaption

包含组件说明的字符串。 描述文字字符串可以为 NULL

pbIcon

指向缓冲区的指针,该缓冲区包含表示组件的可显示图标的二进制数据。 缓冲区内容应使用与 (.ico) 文件的标准图标相同的格式。 缓冲区的大小(以字节为单位)由 cbIcon 指定。

如果创建组件的编写器未选择指定图标, 则 pbIconNULL

cbIcon

可显示图标的大小(以字节为单位) (pbIcon) 表示组件。 如果 pbIconNULL则 cbIcon 应为零。

bRestoreMetadata

指示是否存在与组件还原关联的专用元数据的布尔值。 如果有元数据,则布尔值为 true ;如果没有元数据,则为 false

编写器通过使用 IVssCreateWriterMetadata::AddComponent 添加组件时设置此值来指示组件是否支持专用元数据。 编写器稍后使用 IVssComponent::SetRestoreMetadata 添加还原元数据。 请求者使用 IVssComponent::GetRestoreMetadata 检索信息。

bNotifyOnBackupComplete

保留供将来使用。 此参数的值应始终设置为 false

bSelectable

指示组件模式操作 (的布尔值,) 是否可以选择组件进行备份。 bSelectable 的值有助于确定请求者是否可以选择在备份操作中包含或排除给定组件。 如果组件可用于备份,则布尔值为 true ;如果组件不可选,则为 false

对于组件的备份可选择性,没有默认值。 编写器在使用 IVssCreateWriterMetadata::AddComponent 将组件添加到其编写器元数据文档时,必须始终显式设置值。

此外, bSelectable 的值、组件的逻辑路径以及该路径中表示的组件与其他组件的关系决定了何时以及如何将组件包含在备份操作中:

  • 对于不可选择的备份组件 (bSelectablefalse) 其逻辑路径层次结构中的备份上级没有选择,在备份集中包含始终是必需的且始终隐式。 请求者使用 IVssBackupComponents::AddComponent 将组件显式添加到备份组件文档中的备份集。
  • 对于备份组件的可选项 (bSelectabletrue) 其逻辑路径层次结构中的备份上级没有可选选项,包含在备份集中始终是可选的且始终是显式的。 请求者使用 IVssBackupComponents::AddComponent 将组件显式添加到备份组件文档中的备份集。

    如果此类组件作为上级包含在其他组件的逻辑路径中(既是可用于备份选择的组件,也是不选择的组件),则它将包含这些其他组件的组件集定义为子组件。 如果备份中显式包含备份组件的可选组件,则这些子组件将隐式包含在备份中。

  • 对于不可选择的备份组件 (bSelectablefalse) 在逻辑路径 (的层次结构中为备份上级选择,因此是该上级) 定义的组件集的一部分,在备份集中包含始终是隐式的,并取决于是否包含可选的备份上级。 请求者从不显式将组件添加到备份组件文档中的备份集;相反,它会使用 IVssBackupComponents::AddComponent 将备份上级选择的可添加项添加到文档。
  • 对于备份组件 (bSelectabletrue) 在逻辑路径 (的层次结构中为备份上级选择,因此是该上级) 定义的组件集的一部分,包含在备份集中可以是可选的和显式的,或者如果未显式选择组件, 它的包含可能是隐式的,取决于是否包含备份上级的可选对象。 如果包含组件是显式的,则请求者使用 IVssBackupComponents::AddComponent 将组件显式添加到备份组件文档中的备份集。

    如果包含是隐式的,则请求者不会将这些组件添加到备份组件文档中的备份集。

    如果包含组件是显式的,并且组件定义了组件集,则隐式选择该组件集的成员。

    编写器使用 IVssCreateWriterMetadata::AddComponent 将组件添加到编写器元数据文档时,为备份设置组件的可选择性 (bSelectable) 。

    有关详细信息 ,请参阅使用选择性和逻辑路径

bSelectableForRestore

指示组件模式操作 (的布尔值,) 组件是否可选择还原。 bSelectableForRestore 允许请求者确定是否可以单独选择此组件进行还原(如果之前已 隐式包含在 备份中)。 如果组件可以选择还原,则布尔值为 true ;否则为 false

默认情况下,组件用于还原的可选项为 false。 编写器使用 IVssCreateWriterMetadata::AddComponent 将组件添加到其编写器元数据文档时,可以替代此默认值。

如果将组件显式添加到备份文档 (看到 显式组件包含) ,则始终可以单独选择它进行还原;因此,此标志没有意义。 如果将组件隐式添加到备份文档,则 bSelectableForRestore 标志确定是否可以使用 IVssBackupComponents::AddRestoreSubcomponent 单独还原该组件。

有关详细信息 ,请参阅使用选择性和逻辑路径

dwComponentFlags

位掩码 (或位或 ) VSS_COMPONENT_FLAGS 枚举的值,指示此组件支持的功能。

Windows Server 2003 和 Windows XP: 在 Windows Server 2003 SP1 之前,此成员保留供系统使用。

cFileCount

如果组件是文件组,则为组中文件的文件描述符数。 否则,此值为零。

cDatabases

如果组件是数据库,则为数据库文件描述符的数目。 否则,此值为零。

cLogFiles

如果组件是数据库,则为数据库日志文件描述符的数目。 否则,此参数的值为零。

cDependencies

当前组件的显式编写器组件依赖项数。 当编写器调用 IVssCreateWriterMetadata::AddComponentDependency 时,此值递增。

注解

若要获取给定组件的VSS_COMPONENTINFO对象,请求者必须先通过调用 IVssExamineWriterMetadata::GetComponent 来获取相应的 IVssWMComponent 对象。 调用 IVssWMComponent::GetComponentInfo 然后分配并返回 VSS_COMPONENTINFO 结构。

由于 VSS_COMPONENTINFOIVssWMComponent::GetComponentInfo 分配和返回,因此请求者不应直接释放 VSS_COMPONENTINFO 对象,而应使用 IVssWMComponent::FreeComponentInfo

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 vsbackup.h (包括 VsBackup.h、Vss.h、VsWriter.h)

另请参阅

IVssCreateWriterMetadata::AddComponent

IVssExamineWriterMetadata

IVssExamineWriterMetadata::GetComponent

IVssWMComponent

IVssWMComponent::FreeComponentInfo

IVssWMComponent::GetComponentInfo

VSS_COMPONENT_TYPE