Метод IVssCreateWriterMetadata::SetRestoreMethod (vswriter.h)

Метод SetRestoreMethod указывает, как восстанавливаются данные модуля записи.

Синтаксис

HRESULT SetRestoreMethod(
  [in] VSS_RESTOREMETHOD_ENUM method,
  [in] LPCWSTR                wszService,
  [in] LPCWSTR                wszUserProcedure,
  [in] VSS_WRITERRESTORE_ENUM writerRestore,
  [in] bool                   bRebootRequired
);

Параметры

[in] method

VSS_RESTOREMETHOD_ENUM значение, указывающее метод, который будет использоваться в операции восстановления.

[in] wszService

Указатель на строку расширенных символов, содержащую имя службы, которая должна быть остановлена до операции восстановления, а затем запущена после выполнения операции восстановления, если значение метода равно VSS_RME_STOP_RESTORE_START или VSS_RME_RESTORE_STOP_START.

Если значение метода не является VSS_RME_STOP_RESTORE_START или VSS_RME_RESTORE_STOP_START, этот аргумент не используется и должен иметь значение NULL.

[in] wszUserProcedure

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

[in] writerRestore

VSS_WRITERRESTORE_ENUM значение, указывающее, будет ли модуль записи участвовать в восстановлении своих данных.

Модули записи Express должны задать для этого параметра значение VSS_WRE_NEVER.

[in] bRebootRequired

Логическое значение, указывающее, требуется ли перезагрузка после завершения операции восстановления.

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

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

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

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

Комментарии

Для модуля записи определен один метод восстановления. Если метод восстановления не переопределен, все компоненты модуля записи будут восстановлены с помощью одного метода.

Модули записи переопределяют метод восстановления на основе компонентов, устанавливая целевой объект восстановления, как правило, при обработке события PreRestore (CVssWriter::OnPreRestore).

Важно отметить, что несмотря на то, что методы восстановления применяются на уровне записи, методы реализуются по каждому компоненту. Например, если метод, заданный параметром method , является VSS_RME_RESTORE_IF_CAN_REPLACE, то все файлы в компоненте восстанавливаются в исходное расположение, если все они могут быть заменены без возникновения ошибки. В противном случае они восстанавливаются в альтернативном расположении, если он указан.

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

  • Метод восстановления (заданный во время резервного копирования) VSS_RME_RESTORE_TO_ALTERNATE_LOCATION.
  • Его целевой объект восстановления был установлен (во время восстановления) как VSS_RT_ALTERNATE.
В любом случае, если не определено допустимое альтернативное сопоставление расположения, это представляет собой ошибку записи.

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

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

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

Дополнительные сведения о методах восстановления см. в разделе Настройка методов восстановления VSS.

Если метод восстановления VSS_RME_STOP_RESTORE_START или VSS_RME_RESTORE_STOP_START, в качестве аргумента wszService необходимо указать правильное имя службы. Сведения об участии модуля записи в остановке и перезапуске служб во время операции восстановления см. в разделе Остановка служб для восстановления инициаторами запроса.

Требования

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

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

CVssWriter::OnPostRestore

CVssWriter::OnPreRestore

IVssCreateWriterMetadata

IVssExamineWriterMetadata::GetRestoreMethod