Метод 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 .
Возвращаемое значение
Ниже приведены допустимые коды возврата для этого метода.
Значение | Значение |
---|---|
|
Компонент успешно добавлен. |
|
Одно из значений параметра недопустимо. |
|
У вызывающего объекта не хватает памяти или других системных ресурсов. |
|
Объект компонентов резервного копирования не инициализирован, этот метод был вызван во время операции восстановления или этот метод не был вызван в правильной последовательности. |
|
Недопустимый XML-документ. Дополнительные сведения см. в журнале событий. Дополнительные сведения см. в разделе Обработка событий и ошибок в VSS. |
|
Объект является дубликатом. Компонент с таким же логическим путем и именем компонента уже существует. |
|
Непредвиденная ошибка. Код ошибки записывается в файл журнала ошибок. Дополнительные сведения см. в разделе Обработка событий и ошибок в 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 |
См. также раздел
IVssBackupComponents::P repareForBackup