Conteúdo do Documento de Componentes de Backup
O Documento de Componentes de Backup é mantido por instâncias da interface IVssBackupComponents . Essa interface também contém vários métodos para controlar operações de backup, manipular cópias de sombra e consultar o estado do sistema. No entanto, nem todas as informações do documento podem ser acessadas diretamente por meio dessa interface.
O Documento de Componentes de Backup consiste em vários conjuntos de dados:
- Informações sobre quais componentes foram incluídos explicitamente em uma operação de backup ou restauração
- Uma representação das informações do componente armazenado e do gravador
- Informações de estado sobre a operação de backup/recuperação
Enquanto as informações do componente estão disponíveis para o solicitante e o gravador, somente o gravador tem acesso às informações de estado.
Informações de inclusão de componentes
O Documento de Componentes de Backup contém uma lista desses componentes explicitamente incluídos no backup e restauração pelo solicitante. A lista contém o seguinte:
Componentes selecionáveis incluídos explicitamente.
A inclusão desses arquivos em operações de backup é indicada por IVssBackupComponents::AddComponent e em operações de restauração por IVssBackupComponents::SetSelectedForRestore.
Não pode ser selecionado para subcomponentes de backup sem um selectable para o componente de backup ancestral.
Todos esses componentes deverão ser incluídos se algum componente do gravador for incluído na operação. A inclusão desses arquivos em operações de backup é indicada por IVssBackupComponents::AddComponent e em operações de restauração por IVssBackupComponents::SetSelectedForRestore.
Componentes adicionados implicitamente ao backup (subcomponentes) que são selecionáveis para restauração e são adicionados explicitamente à restauração.
Esses componentes podem ser selecionáveis ou não selecionáveis, mas têm um ancestral selecionável que foi usado para selecioná-los implicitamente para backup. Eles são adicionados ao Documento de Componentes de Backup por IVssBackupComponents::AddRestoreSubcomponent.
As identidades dos componentes incluídos implicitamente na restauração não são armazenadas no Documento de Componentes de Backup.
O VSS tem acesso a informações sobre inclusão de componentes: gravadores sem componentes explicitamente incluídos em uma restauração ou backup não recebem eventos VSS após a geração dos eventos PrepareForBackup ou PreRestore .
Os gravadores não podem consultar essas informações diretamente. Essa não é uma limitação significativa porque, por design, os gravadores vss individuais não devem exigir informações detalhadas sobre o status de outros gravadores no sistema e, conforme observado acima, aqueles sem componentes incluídos não precisarão participar da operação vss.
Um solicitante pode determinar quais componentes foram incluídos explicitamente em uma operação.
O método IVssBackupComponents::GetWriterComponentsCount retorna o número de gravadores com informações de componente armazenadas no Documento de Componentes de Backup (e não o número de componentes no documento).
O solicitante indexa por meio das informações de gravador armazenadas usando IVssBackupComponents::GetWriterComponents, que retorna instâncias da interface IVssWriterComponentsExt . A interface IVssWriterComponentsExt permite que o solicitante obtenha a classe de gravador e a instância de gravador dos gravadores participantes, bem como para acessar informações sobre aqueles de seus componentes armazenados no Documento de Componentes de Backup.
Informações sobre componentes incluídos
A representação do Documento de Componentes de Backup dos dados do componente (que não inclui informações de especificação de caminho e arquivo), que é acessada por meio de instâncias da interface IVssComponent .
Solicitantes e gravadores obtêm acesso a instâncias da interface IVssComponent de diferentes maneiras.
Um solicitante examina os dados do componente em uma base gravador por gravador usando instâncias da interface IVssWriterComponentsExt retornadas por IVssBackupComponents::GetWriterComponents.
Além das informações de identificação do gravador, a interface IVssWriterComponentsExt fornece uma matriz de instâncias da interface IVssComponent , uma para cada um dos componentes incluídos dos gravadores selecionados.
Conforme observado no Ciclo de Vida do Documento dos Componentes de Backup, os gravadores podem obter acesso às mesmas informações por meio da interface IVssWriterComponents ao manipular o evento PrepareForBackup, PrepareForSnapshot, PostSnapshot, BackupComplete, PreRestore ou PostRestore.
O IVssComponent permite que o gravador e os solicitantes obtenham as seguintes informações:
- Nome, tipo e caminho lógico de um componente (GetComponentName, GetComponentType, GetLogicalPath)
- Como um componente deve ser restaurado conforme indicado pelo destino de restauração (IVssComponent::GetRestoreTarget)
- Se um local alternativo foi usado na restauração de um arquivo (GetAlternateLocationMapping, GetAlternateLocationMappingCount)
- Novas informações de destino, se houver (GetNewTarget, GetNewTargetCount)
- Mensagens de erro pré e pós-restauração (GetPreRestoreFailureMsg, GetPostRestoreFailureMsg)
- Se um selecionável para o componente de backup que define um conjunto de componentes tiver sido selecionado para restauração (IsSelectedForRestore)
- Se um backup ou restauração foi bem-sucedido (GetBackupSucceeded, GetFileRestoreStatus)
- Quaisquer opções de backup ou restauração específicas do gravador que possam ter sido definidas por IVssBackupComponents::SetBackupOptions ou IVssBackupComponents::SetRestoreOptions (GetBackupOptions, GetRestoreOptions)
- Qualquer backup de metadados específico do gravador ou metadados de restauração (GetBackupMetadata), GetRestoreMetadata)
- Informações de carimbo de data/hora (GetBackupStamp, GetPreviousBackupStamp)
- Informações sobre subcomponentes de backup explicitamente incluídos em uma restauração (GetRestoreSubcomponent, GetRestoreSubcomponentCount)
Ao contrário dos solicitantes, os gravadores podem alterar determinadas informações no Documento de Componentes de Backup por meio da interface IVssComponent :
- Como um componente deve ser restaurado conforme indicado pelo destino de restauração (IVssComponent::SetRestoreTarget)
- Metadados de backup e restauração específicos do gravador (IVssComponent::SetBackupMetadata, IVssComponent::SetRestoreMetadata)
- Informações de carimbo de data/hora (SetBackupStamp)
- Mensagens de erro pré e pós-restauração (SetPreRestoreFailureMsg, SetPostRestoreFailureMsg)
Informações de estado do solicitante
Os solicitantes inserem informações sobre o estado de uma operação de backup ou restauração no Documento de Componentes de Backup usando a interface IVssBackupComponents . Os aplicativos gravadores podem consultar essas informações por meio da classe CVssWriter .
As informações de estado armazenadas no Documento de Componentes de Backup incluem o seguinte:
Informações gerais sobre o backup
- O tipo de backup geral (incremental, diferencial ou completo)
Definido por solicitantes usando IVssBackupComponents::SetBackupState
Recuperado por gravadores usando CVssWriter::GetBackupType
-
Definido por solicitantes usando IVssBackupComponents::SetBackupState
-
Recuperado por gravadores usando CVssWriter::AreComponentsSelected
-
Definido por solicitantes usando IVssBackupComponents::SetBackupState
-
Recuperado por gravadores usando CVssWriter::IsBootableStateBackedUp
-
Definido por solicitantes usando IVssBackupComponents::SetBackupState
-
Recuperado por gravadores usando CVssWriter::IsPartialFileSupportEnabled
Informações gerais sobre a restauração
- O tipo de restauração geral (se a restauração é por cópia ou importação)
Definido por solicitantes usando IVssBackupComponents::SetRestoreState
Recuperado por gravadores usando CVssWriter::GetRestoreType
Informações sobre arquivos de suporte
- O local dos arquivos de intervalos usados por um componente específico em operações parciais de arquivos
Definido por solicitantes usando IVssBackupComponents::SetRangesFilePath
Recuperado por gravadores (ou solicitantes) usando IVssComponent::GetPartialFile
Status das informações
- Indicar se um dos componentes de um determinado gravador foi copiado com êxito
Definido por solicitantes usando IVssBackupComponents::SetBackupSucceeded
Recuperado por gravadores e solicitantes usando IVssComponent::GetBackupSucceeded
-
Definido por solicitantes usando IVssBackupComponents::SetFileRestoreStatus
-
Recuperado por gravadores e solicitantes usando IVssComponent::GetFileRestoreStatus
Informações de Writer-Settable
- Especificação de backup adicional para um dos componentes de um determinado gravador
Definido por gravadores usando IVssComponent::SetBackupMetadata
Recuperado por gravadores e solicitantes usando IVssComponent::GetBackupMetadata
-
Definido por gravadores usando IVssComponent::SetRestoreMetadata
-
Recuperado por gravadores e solicitantes usando IVssComponent::GetRestoreMetadata
-
Definido por gravadores usando IVssComponent::SetBackupStamp
-
Recuperado por gravadores e solicitantes usando IVssComponent::GetBackupStamp
-
Armazenado e definido por solicitantes para um componente específico usando IVssBackupComponents::SetPreviousBackupStamp
-
Recuperado por gravadores e solicitantes usando IVssComponent::GetPreviousBackupStamp
-
Definido por gravadores usando IVssComponent::SetPreRestoreFailureMsg ou IVssComponent::SetPostRestoreFailureMsg
-
Recuperado por gravadores e solicitantes usando IVssComponent::GetPreRestoreFailureMsg ou IVssComponent::GetPostRestoreFailureMsg