Определение состояния записи
Запрашивающий объект должен иметь четкое представление о состоянии записи, который участвует в нем во время создания теневого копирования, а также во время операций резервного копирования и восстановления. Для этого рекомендуется:
Запросы используют IVssBackupComponents::GatherWriterStatus, IVssBackupComponents::GetWriterStatusCount и IVssBackupComponents::GetWriterStatus.
Как описано в обзоре обработки резервного копирования в VSS и обзоре обработки восстановления в VSS, эти методы наиболее полезны при вызове в четко определенной последовательности резервного копирования или восстановления. Как правило, это означает, что записи должны запрашиваться после выполнения одной из своих задач и создания события VSS.
При обработке резервной копии запрашивающий объект должен запросить запись после завершения следующих методов. Запрашивающие должны вызывать CollectWriterStatus после вызова BackupComplete , чтобы сеанс записи был установлен в состояние завершения.
Примечание.
Это необходимо только в Windows Server 2008 с пакетом обновления 2 (SP2) и более ранними версиями.
IVssBackupComponents::P repareForBackup
Во время операций восстановления запрашивающий объект должен запрашивать средство записи после завершения следующих методов:
- Вызовы IVssBackupComponents::CollectWriterStatus, которые не являются частью четко определенной последовательности резервного копирования или восстановления, не предоставляют надежное изображение состояния записи, так как они могут отражать условия, которые не указывают на сбой в текущей операции, например:
- Сбой предыдущего создания теневого копирования
- Ошибка в ранней операции резервного копирования или восстановления
- Неответственный модуль записи в настоящее время обрабатывает событие
Таким образом, разработчики не должны полагаться на состояние записи, возвращаемое процессами, кроме запрашивающего или пытаться отслеживать ход выполнения одного экземпляра интерфейса IVssBackupComponents с другим (возможно, в отдельном потоке).
Обратите внимание, что для операций резервного копирования, где необходимо проверить документы метаданных записи писателя, не требуется вызов запрашивающего объекта IVssBackupComponents::CollectWriterStatus и IVssBackupComponents::GetWriterStatus после создания и обработки события идентификации, вызванного IVssBackupComponents::CollectWriterMetdata.
IVssBackupComponents::GetWriterStatus сообщает только состояние тех писателей, метаданные которых были предоставлены обработчикам событий для записи с помощью обработчиков событий записи, CVssWriter::OnIdentify (и возвращены запросу IVssBackupComponents::GetWriterMetadataCount и IVssBackupComponents::GetWriterMetadatas).
Если реализация записи CVssWriter::OnIdentify завершается сбоем, метаданные модуля записи не будут частью списка документов метаданных записи, предоставленных VSS, сведения о состоянии не будут доступны, и вызов будет избыточным.
Для операций восстановления, где запрашивающий объект не должен проверять документы метаданных записи для выполнения операций записи, вызывая IVssBackupComponents::CollectWriterStatus и IVssBackupComponents::GetWriterStatus, может быть более эффективным способом определить, какие записи выполняются.