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

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

Синтаксис

HRESULT AddAlternativeLocationMapping(
  [in] VSS_ID             writerId,
  [in] VSS_COMPONENT_TYPE componentType,
  [in] LPCWSTR            wszLogicalPath,
  [in] LPCWSTR            wszComponentName,
  [in] LPCWSTR            wszPath,
  [in] LPCWSTR            wszFilespec,
  [in] bool               bRecursive,
  [in] LPCWSTR            wszDestination
);

Параметры

[in] writerId

Глобальный уникальный идентификатор (GUID) класса записи, экспортированного компонентом.

[in] componentType

Тип компонента. Возможные значения этого параметра определяются перечислением VSS_COMPONENT_TYPE .

[in] wszLogicalPath

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

Дополнительные сведения см. в разделе Логический путь к компонентам.

Логический путь может иметь значение NULL.

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

[in] wszComponentName

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

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

[in] wszPath

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

Путь может содержать переменные среды (например, %SystemRoot%), но не может содержать подстановочные знаки. Поддерживаются UNC-пути.

Не требуется, чтобы путь заканчивалась обратной косой чертой (""). Только приложения, которые извлекают эти сведения в проверка.

[in] wszFilespec

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

Спецификация файла не может содержать спецификации каталога (например, без обратных косых черт), но может содержать ? и * подстановочные знаки.

[in] bRecursive

Логическое значение, указывающее, определяет ли путь, заданный параметром wszPath , только один каталог или иерархию каталогов для рекурсивного просмотра. Этот параметр должен иметь значение true , если путь рассматривается как иерархия каталогов для рекурсивного просмотра, или false , если нет.

Сведения о обходе подключенных папок см. в разделах Работа с подключенными папками и Точки повторного анализа.

[in] wszDestination

Строка расширенных символов с завершением NULL, содержащая имя каталога, в который будет перемещен файл. Этот путь может быть локальным для компьютера VSS или каталогом общей папки на удаленном файловом сервере. Поддерживаются UNC-пути.

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

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

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

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

Комментарии

Windows 7, Windows Server 2008 R2, Windows Vista, Windows Server 2008, Windows XP и Windows Server 2003: Удаленные общие папки не поддерживаются до Windows 8 и Windows Server 2012.

Параметры writerId, componentType, wszLogicalPath и wszComponentName определяют конкретный компонент, а параметры wszPath, wszFilespec и bRecursive определяют набор файлов, принадлежащий данному компоненту.

Сочетание пути, спецификации файла и флага рекурсии (wszPath, wszFilespec и bRecursive соответственно), предоставляемые для сопоставления AddAlternativeLocationMapping , должны соответствовать одному из наборов файлов, добавленных в компонент с помощью IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles или IVssCreateWriterMetadata::AddDatabaseLogFiles.

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

Значение wszPath будет сопоставлено с wszDestination при восстановлении; однако имена файлов и подкаталогов по исходному пути сохраняют те же имена.

Типичное использование AddAlternativeLocationMapping во время восстановления может быть следующим:

  1. Извлеките сохраненные документы метаданных модуля записи с носителя резервного копирования и загрузите эти сведения с помощью IVssExamineWriterMetadata::LoadFromXML.
  2. Вызовите метод IVssExamineWriterMetadata::GetAlternateLocationMapping , чтобы получить интерфейс IVssWMFiledesc со сведениями о сопоставлении, и используйте IVssWMFiledesc::GetAlternateLocation , чтобы получить альтернативное расположение.
  3. Изучите информацию по поданным данным, чтобы эвристически определить, к какому компоненту следует применить это альтернативное сопоставление расположения.
  4. Вызовите IVssBackupComponents::AddAlternativeLocationMapping , чтобы сообщить, где были восстановлены файлы.
Если выполняется одно из следующих значений, файл всегда должен быть восстановлен в его альтернативном сопоставлении расположения.
  • Метод восстановления (заданный во время резервного копирования) VSS_RME_RESTORE_TO_ALTERNATE_LOCATION.
  • Его целевой объект восстановления был установлен (во время восстановления) как VSS_RT_ALTERNATE.
В любом случае, если не определено допустимое альтернативное сопоставление расположения, это представляет собой ошибку записи.

Файл может быть восстановлен в альтернативном сопоставлении расположения, если выполняется одно из следующих действий:

  • Метод восстановления VSS_RME_RESTORE_IF_NOT_THERE и версия файла уже присутствует на диске.
  • Метод восстановления VSS_RME_RESTORE_IF_CAN_REPLACE, а версия файла присутствует на диске и не может быть заменена.
Опять же, если не определено допустимое альтернативное сопоставление расположения, это представляет собой ошибку записи.

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

Требования

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

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

IVssBackupComponents

IVssWMFiledesc::GetAlternateLocation

VSS_COMPONENT_TYPE