Partager via


Appeler SRSetRestorePoint

Une application peut créer un point de restauration avant d’entraîner une modification système importante, telle qu’une installation, une désinstallation ou une mise à jour.

Les installateurs doivent créer un point de restauration avant l’installation en appelant la fonction SRSetRestorePoint avec le membre dwEventType de la structure RESTOREPOINTINFO défini sur BEGIN_SYSTEM_CHANGE. Pour notifier la restauration du système que l’installation est terminée, appelez SRSetRestorePoint avec dwEventType défini sur END_SYSTEM_CHANGE.

Si l’utilisateur annule l’installation de l’application, le programme d’installation peut supprimer le point de restauration qu’il a créé lors du démarrage de l’installation. La suppression du point de restauration est facultative et peut empêcher l’utilisateur de récupérer des modifications involontaires apportées par le programme d’installation pendant l’annulation. Si le programme d’installation doit supprimer un point de restauration, il peut appeler la fonction SRRemoveRestorePoint ou appeler SRSetRestorePoint avec dwRestorePointType défini sur CANCELLED_OPERATION, dwEventType défini sur END_SYSTEM_CHANGE et llSequenceNumber défini sur la valeur retournée par l’appel initial à SRSetRestorePoint.

À compter de Windows 8, les développeurs peuvent écrire des applications qui créent la valeur DWORDSystemRestorePointCreationFrequency sous la clé de registre HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore. La valeur de cette clé de registre peut modifier la fréquence de création du point de restauration. Par défaut, cette clé n’existe pas.

Lorsqu’une application appelle la fonction SRSetRestorePoint pour créer un point de restauration, l’une des opérations suivantes se produit en fonction du contenu de la clé :

  • Si la clé n’existe pas (valeur par défaut) et que des points de restauration ont été créés au cours des dernières 24 heures, Windows ignore la création de ce nouveau point de restauration. La restauration du système définit le membre IISequenceNumber de la structure STATEMGRSTATUS sur le numéro de séquence du point de restauration créé précédemment dans le jour et définit la valeur du membre nStatus à ERROR_SUCCESS. La fonction SRSetRestorePoint retourne TRUE.

  • Si la valeur de la clé de registre est 0, la restauration du système n’ignore pas la création du nouveau point de restauration.

  • Si la valeur de clé de registre est l’entier N, la restauration du système ignore la création d’un point de restauration si des points de restauration ont été créés au cours des dernières minutes N.

La restauration du système en cours d’exécution sur Windows 8 surveille les fichiers dans le volume de démarrage qui sont pertinents uniquement pour la restauration du système. Les instantanés du volume de démarrage créé par la restauration du système exécutée sur Windows 8 peuvent être supprimés si le instantané est ensuite exposé par une version antérieure de Windows. Notez que bien qu’il n’existe qu’un seul volume système, il existe un volume de démarrage pour chaque système d’exploitation dans un système de plusieurs démarrages.

Les développeurs peuvent écrire des applications qui créent la valeur DWORD ScopeSnapshots sous la clé de registre HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore. Si cette valeur de clé de registre est 0, la restauration du système crée des instantané du volume de démarrage de la même façon que dans les versions antérieures de Windows. Si cette valeur est supprimée, la restauration du système exécutée sur Windows 8 reprend la création d’instantanés qui surveillent les fichiers dans le volume de démarrage qui sont pertinents pour la restauration du système uniquement.

Pour obtenir un exemple, consultez Utilisation de la restauration du système.