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

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

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

Синтаксис

bool OnBackupComplete(
  [in] IVssWriterComponents *pComponent
);

Параметры

[in] pComponent

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

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

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

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

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

Комментарии

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

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

При создании события BackupComplete документ компонентов резервного копирования запрашивающей стороны становится документом только для чтения. Поэтому попытки изменить документ с помощью интерфейса (например, вызов IVssComponent::SetBackupMetadata) завершатся ошибкой в пользовательских реализациях OnBackupComplete.

Успешное приложение резервного копирования создаст событие BackupComplete , когда все данные будут сохранены на носителе резервного копирования.

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

Событие BackupComplete может не быть создано, если приложение резервного копирования будет завершено системой или вручную до завершения резервного копирования (например, если операция резервного копирования зависла и ее пришлось завершить).

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

Эти сведения могут использоваться обработчиком событий BackupShutdown модуля записи (CVssWriter::OnBackupShutdown), который будет вызываться при фактическом завершении работы приложения резервного копирования и освобождении его IVssBackupComponents для выполнения операций очистки при отсутствии вызова OnBackupComplete.

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

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

Требования

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

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

CVssWriter

CVssWriter::SetWriterFailure

IVssBackupComponents

IVssWriterComponents