Поделиться через


Метод 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

Идентификатор класса или 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
Компонент, заданный wszForLogicalPath и wszForComponentName , не существует.
VSS_E_UNEXPECTED
Непредвиденная ошибка. Код ошибки регистрируется в файле журнала ошибок. Дополнительные сведения см. в разделе Обработка событий и ошибок в VSS.

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

Комментарии

Зависимости от компонентов, управляемых текущим модулем записи, запрещены.

Зависимость требует, чтобы целевой объект зависимости и компонент, зависящий от целевого объекта, были восстановлены и резервное копирование вместе. Он не указывает приоритет между компонентами, хотя инициатор запроса может реализовать его.

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

Этот метод можно использовать для объявления удаленных зависимостей. Модуль записи может объявить удаленную зависимость, добавляя "\\RemoteComputerName", где RemoteComputerName — это имя компьютера, на котором находится удаленный компонент, к логическому пути в параметре wszOnLogicalPath . Значением RemoteComputerName может быть IP-адрес или имя компьютера, возвращаемое функцией GetComputerNameEx.

Если удаленный компонент находится в кластере, модуль записи должен сообщить виртуальное имя кластера, и инициатор запроса отвечает за сопоставление виртуального имени с физическим именем узла кластера перед созданием теневой копии тома.

Чтобы определить, является ли зависимость локальной или удаленной, инициатор запроса должен изучить имя компонента, возвращаемое в параметре pbstrComponentName . Если имя компонента начинается с "\", инициатор запроса должен предположить, что он указывает удаленную зависимость и что первым компонентом после "\" является RemoteComputerName , заданным модулем записи. Если имя компонента не начинается с "\", инициатор запроса должен предположить, что он указывает локальную зависимость.

Windows Server 2003: Этот метод нельзя использовать для объявления удаленных зависимостей до Windows Server 2003 с пакетом обновления 1 (SP1).

Требования

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