Contenu du document des composants de sauvegarde
Le document composants de sauvegarde est géré par les instances de l’interface IVssBackupComponents . Cette interface contient également de nombreuses méthodes pour contrôler les opérations de sauvegarde, manipuler les clichés instantanés et interroger l’état du système. Toutefois, toutes les informations du document ne sont pas directement accessibles via cette interface.
Le document Composants de sauvegarde se compose de plusieurs jeux de données :
- Informations sur les composants explicitement inclus dans une opération de sauvegarde ou de restauration
- Représentation des informations sur le composant et l’enregistreur stockés
- Informations d’état sur l’opération de sauvegarde/récupération
Bien que les informations de composant soient disponibles à la fois pour le demandeur et l’enregistreur, seul l’enregistreur a accès aux informations d’état.
Informations d’inclusion de composant
Le document Composants de sauvegarde contient une liste des composants explicitement inclus dans la sauvegarde et la restauration par le demandeur. La liste contient les éléments suivants :
Composants sélectionnables inclus explicitement.
L’inclusion de ces fichiers dans les opérations de sauvegarde est indiquée par IVssBackupComponents::AddComponent et dans les opérations de restauration par IVssBackupComponents::SetSelectedForRestore.
Non sélectionnable pour les sous-composants de sauvegarde sans ancêtre de composant de sauvegarde sélectionnable.
Tous ces composants doivent être inclus si des composants de l’enregistreur doivent être inclus dans l’opération. L’inclusion de ces fichiers dans les opérations de sauvegarde est indiquée par IVssBackupComponents::AddComponent et dans les opérations de restauration par IVssBackupComponents::SetSelectedForRestore.
Composants implicitement ajoutés à la sauvegarde (sous-composants) qui peuvent être sélectionnés pour la restauration et qui sont explicitement ajoutés à la restauration.
Ces composants peuvent être sélectionnables ou non sélectionnables, mais ont un ancêtre sélectionnable qui a été utilisé pour les sélectionner implicitement pour la sauvegarde. Ils sont ajoutés au document composants de sauvegarde par IVssBackupComponents::AddRestoreSubcomponent.
Les identités des composants implicitement inclus dans la restauration ne sont pas stockées dans le document Composants de sauvegarde.
VSS a accès aux informations sur l’inclusion de composants : les rédacteurs sans composants explicitement inclus dans une restauration ou une sauvegarde ne reçoivent aucun événement VSS après la génération des événements PrepareForBackup ou PreRestore .
Les rédacteurs ne peuvent pas interroger directement ces informations. Il ne s’agit pas d’une limitation importante, car par conception, les enregistreurs VSS individuels ne doivent pas exiger d’informations détaillées sur la status d’autres enregistreurs sur le système et, comme indiqué ci-dessus, ceux qui n’ont pas de composants inclus n’auront pas à participer à l’opération VSS.
Un demandeur peut déterminer quels composants ont été explicitement inclus dans une opération.
La méthode IVssBackupComponents::GetWriterComponentsCount retourne le nombre d’enregistreurs avec les informations de composant stockées dans le document Composants de sauvegarde (et non le nombre de composants dans le document).
Le demandeur indexe les informations d’enregistreur stockées à l’aide d’IVssBackupComponents::GetWriterComponents, qui retourne des instances de l’interface IVssWriterComponentsExt . L’interface IVssWriterComponentsExt permet au demandeur d’obtenir la classe writer et l’enregistreur instance des rédacteurs participants, ainsi que d’accéder aux informations sur celles de ses composants stockés dans le document Composants de sauvegarde.
Informations sur les composants inclus
Représentation du document Composants de sauvegarde des données de composant (qui n’inclut pas d’informations de spécification de chemin et de fichier), accessible via des instances de l’interface IVssComponent .
Les demandeurs et les rédacteurs obtiennent l’accès aux instances de l’interface IVssComponent de différentes manières .
Un demandeur examine les données de composant sur un enregistreur par enregistreur à l’aide d’instances de l’interface IVssWriterComponentsExt retournées par IVssBackupComponents::GetWriterComponents.
En plus des informations d’identification de l’enregistreur, l’interface IVssWriterComponentsExt fournit un tableau d’instances de l’interface IVssComponent , une pour chacun des composants inclus des enregistreurs sélectionnés.
Comme indiqué dans Cycle de vie des documents des composants de sauvegarde, les rédacteurs peuvent accéder aux mêmes informations via l’interface IVssWriterComponents lors de la gestion des événements PrepareForBackup, PrepareForSnapshot, PostSnapshot, BackupComplete, PreRestore ou PostRestore.
IVssComponent permet aux rédacteurs et aux demandeurs d’obtenir les informations suivantes :
- Nom, type et chemin logique d’un composant (GetComponentName, GetComponentType, GetLogicalPath)
- Comment un composant doit être restauré comme indiqué par la cible de restauration (IVssComponent::GetRestoreTarget)
- Si un autre emplacement a été utilisé dans la restauration d’un fichier (GetAlternateLocationMapping, GetAlternateLocationMappingCount)
- Nouvelles informations cibles, le cas échéant (GetNewTarget, GetNewTargetCount)
- Messages d’erreur de pré-restauration et de post-restauration (GetPreRestoreFailureMsg, GetPostRestoreFailureMsg)
- Si un composant sélectionnable pour la sauvegarde définissant un jeu de composants a été sélectionné pour la restauration (IsSelectedForRestore)
- Si une sauvegarde ou une restauration a réussi (GetBackupSucceed,GetFileRestoreStatus)
- Toutes les options de sauvegarde ou de restauration spécifiques à l’enregistreur qui peuvent avoir été définies par IVssBackupComponents::SetBackupOptions ou IVssBackupComponents::SetRestoreOptions (GetBackupOptions, GetRestoreOptions)
- Toutes les métadonnées spécifiques à l’enregistreur de sauvegarde ou de restauration des métadonnées (GetBackupMetadata), GetRestoreMetadata)
- Informations d’horodatage (GetBackupStamp, GetPreviousBackupStamp)
- Informations sur les sous-composants de sauvegarde explicitement inclus dans une restauration (GetRestoreSubcomponent, GetRestoreSubcomponentCount)
Contrairement aux demandeurs, les rédacteurs peuvent modifier certaines informations dans le document composants de sauvegarde via l’interface IVssComponent :
- Comment un composant doit être restauré comme indiqué par la cible de restauration (IVssComponent::SetRestoreTarget)
- Métadonnées de sauvegarde et de restauration spécifiques à l’enregistreur (IVssComponent::SetBackupMetadata, IVssComponent::SetRestoreMetadata)
- Informations d’horodatage (SetBackupStamp)
- Messages d’erreur avant et après la restauration (SetPreRestoreFailureMsg, SetPostRestoreFailureMsg)
Informations sur l’état du demandeur
Les demandeurs insèrent des informations sur l’état d’une opération de sauvegarde ou de restauration dans le document composants de sauvegarde à l’aide de l’interface IVssBackupComponents . Les applications writer peuvent interroger ces informations via la classe CVssWriter .
Les informations d’état stockées dans le document Composants de sauvegarde incluent les éléments suivants :
Informations générales sur la sauvegarde
- Type de sauvegarde global (incrémentiel, différentiel ou complet)
Défini par les demandeurs à l’aide d’IVssBackupComponents::SetBackupState
Récupéré par les rédacteurs à l’aide de CVssWriter::GetBackupType
-
Défini par les demandeurs à l’aide d’IVssBackupComponents::SetBackupState
-
Récupéré par les rédacteurs à l’aide de CVssWriter::AreComponentsSelected
-
Défini par les demandeurs à l’aide d’IVssBackupComponents::SetBackupState
-
Récupéré par les rédacteurs à l’aide de CVssWriter::IsBootableStateBackedUp
-
Défini par les demandeurs à l’aide d’IVssBackupComponents::SetBackupState
-
Récupéré par les rédacteurs à l’aide de CVssWriter::IsPartialFileSupportEnabled
Informations générales sur la restauration
- Type de restauration global (si la restauration est par copie ou importation)
Défini par les demandeurs à l’aide d’IVssBackupComponents::SetRestoreState
Récupéré par les rédacteurs à l’aide de CVssWriter::GetRestoreType
Informations sur les fichiers de prise en charge
- Emplacement des fichiers de plages utilisés par un composant spécifique dans les opérations de fichiers partiels
Défini par les demandeurs à l’aide d’IVssBackupComponents::SetRangesFilePath
Récupéré par des rédacteurs (ou des demandeurs) à l’aide d’IVssComponent::GetPartialFile
État des informations
- Indiquer si l’un des composants d’un enregistreur donné a été sauvegardé avec succès
Défini par les demandeurs à l’aide d’IVssBackupComponents::SetBackupSucceededed
Récupéré par les rédacteurs et les demandeurs à l’aide d’IVssComponent::GetBackupSucceededed
-
Défini par les demandeurs à l’aide d’IVssBackupComponents::SetFileRestoreStatus
-
Récupéré par les rédacteurs et le demandeur à l’aide d’IVssComponent::GetFileRestoreStatus
Writer-Settable Informations
- Spécification de sauvegarde supplémentaire pour l’un des composants d’un enregistreur donné
Défini par les rédacteurs à l’aide d’IVssComponent::SetBackupMetadata
Récupéré par les auteurs et les demandeurs à l’aide d’IVssComponent::GetBackupMetadata
-
Défini par les rédacteurs à l’aide d’IVssComponent::SetRestoreMetadata
-
Récupéré par les auteurs et les demandeurs à l’aide d’IVssComponent::GetRestoreMetadata
-
Défini par les rédacteurs à l’aide d’IVssComponent::SetBackupStamp
-
Récupéré par les rédacteurs et les demandeurs à l’aide d’IVssComponent::GetBackupStamp
-
Stocké et défini par les demandeurs pour un composant spécifique à l’aide d’IVssBackupComponents::SetPreviousBackupStamp
-
Récupéré par les rédacteurs et les demandeurs à l’aide d’IVssComponent::GetPreviousBackupStamp
-
Défini par des rédacteurs à l’aide d’IVssComponent::SetPreRestoreFailureMsg ou d’IVssComponent::SetPostRestoreFailureMsg
-
Récupéré par les rédacteurs et les demandeurs à l’aide d’IVssComponent::GetPreRestoreFailureMsg ou IVssComponent::GetPostRestoreFailureMsg