Detalhes de criação de cópia de sombra
Em geral, a forma como uma cópia de sombra é criada depende do tipo de cópia de sombra a ser criada, seu contexto e a função concedida aos gravadores na operação de cópia de sombra. (Consulte configurações de contexto de cópia de sombra para obter mais informações.)
O contexto de cópia de sombra é definido chamando o método IVssBackupComponents::SetContext . Antes de chamar o método IVssBackupComponents::D oSnapshotSet para criar uma cópia de sombra, os solicitantes devem chamar os métodos IVssBackupComponents na ordem especificada nas seções a seguir.
Pré-requisitos para todas as cópias de sombra
Independentemente do nível de participação do gravador, a criação de qualquer cópia de sombra sempre exigirá que o solicitante seja inicializado com chamadas para IVssBackupComponents::InitializeForBackup e IVssBackupComponents::StartSnapshotSet.
Se essa chamada não for feita, o método IVssBackupComponents::D oSnapshotSet retornará um erro.
Cópias de sombra com participação de gravador
Se o contexto de cópia de sombra especificar a participação do gravador (ou seja, IVssBackupComponents::SetContext será chamado com VSS_CTX_BACKUP ou VSS_CTX_APP_ROLLBACK):
- Os solicitantes sempre devem chamar IVssBackupComponents::GatherWriterMetadata quando o contexto de cópia de sombra dá suporte à participação do gravador. Se o contexto de cópia de sombra der suporte à participação do gravador e IVssBackupComponents::GatherWriterMetadata não for chamado antes de IVssBackupComponents::D oSnapshotSet, um erro será retornado.
- Se um solicitante quiser selecionar componentes de gravador específicos, ele deverá chamar IVssBackupComponents::AddComponent antes de chamar StartSnapshotSet para criar o conjunto de cópias de sombra.
- StartSnapshotSet deve ser chamado para criar o conjunto de cópias de sombra.
- Os solicitantes podem adicionar um ou mais volumes ao conjunto de cópias de sombra chamando AddToSnapshotSet. Alguns componentes de gravador podem não especificar nenhum volume afetado. Nesse caso, é aceitável que um conjunto de instantâneos esteja vazio (ou seja, sem volumes).
- Para garantir a consistência dos metadados do gravador, um solicitante deve sempre chamar IVssBackupComponents::P repareForBackup mesmo se nenhum componente estiver selecionado. Isso faz com que o VSS gere um evento PrepareForBackup , no qual o VSS chama o método CVssWriter::OnPrepareBackup para cada gravador participante.
- O VSS gerará eventos PrepareForSnapshot e Freeze antes de criar a cópia de sombra em resposta a IVssBackupComponents::D oSnapshotSet. Os escritores lidarão com os eventos com CVssWriter::OnPrepareSnapshot e CVssWriter::OnFreeze.
- O VSS gerará eventos thaw e eventos PostSnapshot depois de criar uma cópia de sombra em resposta a IVssBackupComponents::D oSnapshotSet. Os escritores lidarão com os eventos com CVssWriter::OnThaw e CVssWriter::OnPostSnapshot.
Cópias de sombra sem participação do gravador
A criação de cópias de sombra sem a participação do gravador é desencorajada para aplicativos de backup padrão (consulte Backups sem a Participação do Gravador).
Há usos, como backups rápidos de um disco para fornecer uma rede de segurança contra corrupção acidental de arquivos, que podem ser realizadas sem a participação explícita do gravador. Essa cópia de sombra teria um contexto de VSS_CTX_FILE_SHARE_BACKUP ou VSS_CTX_NAS_ROLLBACK.
Para esse tipo de cópia de sombra, observe o seguinte:
- Os solicitantes ainda devem chamar os métodos necessários listados em pré-requisitos para todas as cópias de sombra.
- Os solicitantes podem chamar IVssBackupComponents::GatherWriterMetadata, mas isso não é necessário.
- Se os solicitantes chamarem IVssBackupComponents::AddComponent, IVssBackupComponents::P repareForBackup ou IVssBackupComponents::BackupComplete, um erro será retornado.
- Os provedores não gerarão eventos PrepareForSnapshot, Freeze, Thaw ou PostSnapshot para esse tipo de cópia de sombra.