Méthode IVssComponent ::GetDifferencedFile (vswriter.h)
La méthode GetDifferencedFile retourne des informations sur un jeu de fichiers (un ou plusieurs fichiers spécifiés) à participer à une sauvegarde ou à une restauration incrémentielle ou différentielle en tant que fichier différent, c’est-à-dire que la sauvegarde et les restaurations qui lui sont associées doivent être implémentées comme si des fichiers entiers étaient copiés vers et à partir d’un support de sauvegarde (au lieu d’utiliser des fichiers partiels).
Cette méthode peut être appelée par un demandeur ou un writer pendant les opérations de sauvegarde ou de restauration.
Syntaxe
HRESULT GetDifferencedFile(
[in] UINT iDifferencedFile,
[out] BSTR *pbstrPath,
[out] BSTR *pbstrFilespec,
[out] BOOL *pbRecursive,
[out] BSTR *pbstrLsnString,
[out] FILETIME *pftLastModifyTime
);
Paramètres
[in] iDifferencedFile
Numéro d’index du fichier différent à examiner. La valeur de ce paramètre est un entier compris entre 0 et n–1 inclus, où n est le nombre total de fichiers différents associés à un composant donné (et ses sous-composants s’il définit un jeu de composants). La valeur n est retournée par IVssComponent ::GetDifferencedFilesCount.
[out] pbstrPath
Adresse d’une variable allouée par l’appelant qui reçoit une chaîne contenant le chemin des fichiers différentiels.
Les utilisateurs de cette méthode doivent case activée pour déterminer si ce chemin se termine par une barre oblique inverse (\).
[out] pbstrFilespec
Adresse d’une variable allouée par l’appelant qui reçoit une chaîne contenant la spécification de fichier des fichiers différentiels.
[out] pbRecursive
Adresse d’une variable allouée à l’appelant qui reçoit une valeur booléenne spécifiant si la spécification de fichier pour les fichiers différentiels doit être interprétée de manière récursive. Si la valeur est TRUE, l’ensemble de la hiérarchie de répertoires doit être recherché pour rechercher les fichiers correspondant à la spécification de fichier pbstrFilespec pour rechercher les fichiers à gérer en tant que fichiers différents lors des sauvegardes incrémentielles ou différentielles. Si la valeur est FALSE, seul le répertoire racine doit faire l’objet d’une recherche.
[out] pbstrLsnString
Réservé pour un usage futur.
[out] pftLastModifyTime
Adresse d’une variable allouée par l’appelant qui reçoit la spécification writer de l’heure de la dernière modification pour les fichiers de différence, exprimée sous la forme d’une structure FILETIME .
Valeur retournée
Voici les codes de retour valides pour cette méthode.
Valeur | Signification |
---|---|
|
La valeur de l’attribut a été retournée. |
|
L’une des valeurs de paramètre n’est pas valide. |
|
L’appelant n’a plus de mémoire ou d’autres ressources système. |
|
Aucun fichier différent correspondant à l’index fourni n’a été trouvé. |
|
Le document XML n’est pas valide. Pour plus d’informations, consultez le journal des événements. Pour plus d’informations, consultez Gestion des événements et des erreurs sous VSS. |
Remarques
GetDifferencedFile peut être appelé par un demandeur ou un writer pendant les opérations de sauvegarde ou de restauration.
Si l’appel à GetDifferencedFile réussit, l’appelant est chargé de libérer la chaîne retournée dans les paramètres pbstrPath et pbstrFilespec en appelant la fonction SysFreeString .
Comme les auteurs peuvent indiquer des fichiers différents avec des appels à IVssComponent ::AddDifferencedFilesByLastModifyTime à tout moment avant la sauvegarde réelle des fichiers, Généralement, lors de la gestion d’un événement PostSnapshot (CVssWriter ::OnPostSnapshot), pendant les sauvegardes , GetDifferencedFile n’est pas utilement appelé avant le retour de IVssBackupComponents ::D oSnapshotSet a été correctement retourné.
L’horodatage retourné par GetDifferencedFile s’applique à tous les fichiers qui correspondent au chemin d’accès retourné (pbstrPath) et à la spécification de fichier (pbstrFilespec).
Si la valeur d’horodatage retournée par GetDifferencedFile (pftLastModifyTime) est différente de zéro, un demandeur doit respecter cette valeur indépendamment de ses propres enregistrements et informations de système de fichiers et l’utiliser pour déterminer si le fichier différent doit être inclus dans une sauvegarde différentielle ou incrémentielle.
Si l’horodatage retourné par GetDifferencedFile est égal à zéro, le demandeur peut utiliser les informations du système de fichiers et ses propres enregistrements pour déterminer si les fichiers différents doivent être inclus dans une sauvegarde différentielle ou incrémentielle.
Les fichiers différentiels peuvent être l’un des éléments suivants :
- Membres du composant actuel ou, si le composant définit un jeu de composants, membres de ses sous-composants ajoutés au composant à l’aide de IVssCreateWriterMetadata ::AddFilesToFileGroup, IVssCreateWriterMetadata ::AddDatabaseFiles ou IVssCreateWriterMetadata ::AddDatabaseLogFiles
- Nouveaux fichiers ajoutés au composant par IVssComponent ::AddDifferencedFilesByLastModifyTime
Lorsque GetDifferencedFile retourne un nouveau fichier différent, le chemin d’accès de ce fichier (pbstrPath) doit correspondre ou se trouver en dessous d’un chemin déjà dans le composant, ou de l’un de ses sous-composants (si le composant définit un jeu de composants).
En outre, les fichiers retournés par GetDifferencedFile ne doivent pas déjà être gérés par le composant ou l’enregistreur.
Si l’un de ces critères est violé, ils constituent une erreur de la part de l’auteur et doivent être signalés.
Il n’existe aucune méthode dans l’interface IVssComponent permettant de modifier ou d’ajouter un autre mappage d’emplacement pour les nouveaux fichiers retournés par GetDifferencedFilesByLastModifyTime. Si un autre mappage d’emplacement correspond au nouveau fichier, cet autre emplacement est utilisé.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | vswriter.h (inclure Vss.h, VsWriter.h) |
Bibliothèque | VssApi.lib |
Voir aussi
IVssComponent ::AddDifferencedFilesByLastModifyTime