Метод IVssBackupComponents::AddComponent (vsbackup.h)

Метод AddComponent используется для явного добавления в резервный набор в документе Компоненты резервного копирования всех необходимых компонентов (не может быть выбрано для компонентов резервного копирования без выбора для предка резервного копирования) и таких необязательных (выбираемых для резервного копирования) компонентов, которые запрашивающий считает необходимыми. Члены наборов компонентов (компоненты с возможностью выбора для предка резервного копирования) неявно включаются в резервный набор данных, но не добавляются явным образом в документ компонентов резервного копирования.

Синтаксис

HRESULT AddComponent(
  [in] VSS_ID             instanceId,
  [in] VSS_ID             writerId,
  [in] VSS_COMPONENT_TYPE ct,
  [in] LPCWSTR            wszLogicalPath,
  [in] LPCWSTR            wszComponentName
);

Параметры

[in] instanceId

Идентифицирует конкретный экземпляр модуля записи.

[in] writerId

Идентификатор класса записи.

[in] ct

Определяет тип компонента. Допустимые входные значения см . в документации по VSS_COMPONENT_TYPE.

[in] wszLogicalPath

Строка расширенных символов со значением NULL, содержащая логический путь к компоненту, который можно выбрать для резервного копирования. Дополнительные сведения см. в разделе Логический путь к компонентам.

Логический путь не требуется при добавлении компонента. Таким образом, значение этого параметра может иметь значение NULL.

Нет ограничений на символы, которые могут отображаться в логическом пути, отличном от NULL .

[in] wszComponentName

Строка расширенных символов, завершающаяся null, содержащая имя компонента, который можно выбрать для компонента резервного копирования.

Значение этого параметра не может иметь значение NULL.

Нет ограничений на символы, которые могут отображаться в логическом пути, отличном от NULL .

Возвращаемое значение

Ниже приведены допустимые коды возврата для этого метода.

Значение Значение
S_OK
Компонент успешно добавлен.
E_INVALIDARG
Одно из значений параметра недопустимо.
E_OUTOFMEMORY
У вызывающего объекта не хватает памяти или других системных ресурсов.
VSS_E_BAD_STATE
Объект компонентов резервного копирования не инициализирован, этот метод был вызван во время операции восстановления или этот метод не был вызван в правильной последовательности.
VSS_E_INVALID_XML_DOCUMENT
Недопустимый XML-документ. Дополнительные сведения см. в журнале событий. Дополнительные сведения см. в разделе Обработка событий и ошибок в VSS.
VSS_E_OBJECT_ALREADY_EXISTS
Объект является дубликатом. Компонент с таким же логическим путем и именем компонента уже существует.
VSS_E_UNEXPECTED
Непредвиденная ошибка. Код ошибки записывается в файл журнала ошибок. Дополнительные сведения см. в разделе Обработка событий и ошибок в VSS.

Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Это значение не поддерживается до Windows Server 2008 R2 и Windows 7. вместо этого используется E_UNEXPECTED.

Комментарии

Метод AddComponent имеет значение только в том случае, если операция резервного копирования выполняется в режиме компонента.

Только эти типы компонентов должны добавляться в документ компонентов резервного копирования с помощью AddComponent.

Неизбираемые компоненты резервного копирования, которые имеют доступный выбор для предка резервного копирования в иерархии их логических путей, являются частью набора компонентов, определенного параметром selectable для предка резервного копирования. Эти компоненты неявно добавляются в документ компонентов резервного копирования при добавлении предка и никогда не должны явно добавляться в документ компонентов резервного копирования инициатора запроса с помощью AddComponent. Результат этого не определен (см. раздел Работа с возможностью выбора и логическими путями).

Компоненты резервного копирования, которые можно выбрать для предок резервного копирования, также являются подкомпонентами в наборе компонентов. Они могут быть выбраны неявно, если выбран их предок (в этом случае они не добавляются в документ компонентов резервного копирования с помощью AddComponent) или явным образом выбраны с помощью AddComponent.

Сочетание логического пути и имени для каждого компонента данного экземпляра данного класса модуля записи должно быть уникальным. Попытка вызвать AddComponent дважды с одинаковыми значениями wszLogicalPath и wszComponentName приводит к VSS_E_OBJECT_ALREADY_EXISTS ошибке.

Различие между instanceId и writerID необходимо, так как можно запустить несколько копий для одного модуля записи.

Идентификатор класса и экземпляр модуля записи можно найти, вызвав IVssExamineWriterMetadata::GetIdentity.

Перед вызовом AddComponent инициатор запроса должен быть инициализирован для резервного копирования путем вызова IVssBackupComponents::InitializeForBackup и IVssBackupComponents::GatherWriterMetadata. См. обзор инициализации резервного копирования.

Инициатор запроса должен вызвать AddComponent , чтобы добавить необходимые компоненты в теневую копию перед вызовом IVssBackupComponents::D oSnapshotSet для создания теневой копии. См. общие сведения об этапе обнаружения резервных копий и общие сведения о задачах, выполняемых перед резервным копированием.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header vsbackup.h (включая VsBackup.h, Vss.h, VsWriter.h)
Библиотека VssApi.lib

См. также раздел

CVssWriter::Initialize

IVssBackupComponents

IVssBackupComponents::P repareForBackup

IVssExamineWriterMetadata::GetIdentity

VSS_COMPONENT_TYPE