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


Метод CVssWriter::OnPrepareBackup (vswriter.h)

Метод OnPrepareBackup вызывается модулем записи после события PrepareForBackup . Этот метод используется для настройки состояния модуля записи и его компонентов при подготовке к операции резервного копирования.

OnPrepareBackup — это виртуальный метод. Он реализуется базовым классом CVssWriter , но может быть переопределен производными классами.

Синтаксис

bool OnPrepareBackup(
  [in] IVssWriterComponents *pComponent
);

Параметры

[in] pComponent

Указатель на экземпляр объекта IVssWriterComponents , содержащего содержимое документа метаданных модуля записи. Значение этого параметра может иметь значение NULL, если инициатор запроса не поддерживает компоненты (если функция CVssWriter::AreComponentsElected возвращает значение false).

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

Как реализовано базовым классом, OnPrepareBackup всегда возвращает значение true.

Любая другая реализация этого метода должна возвращать значение true , за исключением случаев неустранимой ошибки. При возникновении неустранимой ошибки метод должен вызвать метод CVssWriter::SetWriterFailure , чтобы предоставить описание сбоя, прежде чем возвращать значение false. Если возникает некритичная ошибка, метод должен по-прежнему вызывать SetWriterFailure, но возвращатьзначение true. Если ошибка вызвана временной проблемой, метод должен указать VSS_E_WRITERERROR_RETRYABLE в вызове Метода SetWriterFailure.

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

Комментарии

Реализация этого метода по умолчанию базовым классом CVssWriter возвращает значение true без выполнения каких-либо других операций.

OnPrepareBackup предоставляет средству записи возможность более точно выбрать то, что будет резервное копирование.

Обработка события PrepareForBackup — это последняя возможность для модуля записи получить доступ к метаданным, содержащимся в документе Компонентов резервной копии до создания теневой копии.

Таким образом, OnPrepareBackup позволяет средству записи вносить любые окончательные дополнения или обновления в хранимые сведения о компонентах (с помощью интерфейса IVssComponent ). В частности, метаданные модуля записи можно обновить с помощью IVssComponent::SetBackupMetadata или IVssComponent::SetRestoreMetadata.

Кроме того, при обработке события PrepareForSnapshot предоставляется еще одна возможность в жизненном цикле операции резервного копирования VSS выполнять трудоемкие операции (например, синхронизацию данных на нескольких сайтах), OnPrepareBackup предоставляет возможность для модуля записи запустить такую операцию асинхронно. Такие задачи должны быть выполнены до возвращения CVssWriter::OnPrepareSnapshot.

Записи никогда не должны вызывать исключение из этого метода или любого другого метода обратного вызова CVssWriter(Ex)::OnXxx .

Инициатор запроса создает событие PrepareForBackup , инициируя вызов OnPrepareBackup, вызывая IVssBackupComponents::P repareForBackup.

Если этот метод вызывает метод CVssWriterEx2::GetSessionId, CVssWriter::SetWriterFailure или CVssWriterEx2::SetWriterFailureEx , он должен делать это в том же потоке, который вызвал этот метод. Дополнительные сведения см. в разделе Обработка событий записи.

Требования

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

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

CVssWriter

CVssWriter::OnPostSnapshot

CVssWriter::OnPreRestore

CVssWriter::SetWriterFailure

IVssWriterComponents