Partager via


SRSetRestorePointA, fonction (srrestoreptapi.h)

Spécifie le début et la fin d’un ensemble de modifications afin que la restauration du système puisse créer un point de restauration.

Pour obtenir un équivalent scriptable, consultez CreateRestorePoint.

Syntaxe

BOOL SRSetRestorePointA(
  [in]  PRESTOREPOINTINFOA pRestorePtSpec,
  [out] PSTATEMGRSTATUS    pSMgrStatus
);

Paramètres

[in] pRestorePtSpec

Pointeur vers une structure RESTOREPOINTINFO qui spécifie le point de restauration.

[out] pSMgrStatus

Pointeur vers une structure STATEMGRSTATUS qui reçoit les informations d’état.

Valeur de retour

Si la fonction réussit, la valeur de retour est TRUE. Le llSequenceNumber membre de pSMgrStatus reçoit le numéro de séquence du point de restauration.

Si la fonction échoue, la valeur de retour est FALSE. Le membre nStatus de pSMgrStatus reçoit des informations d’erreur.

Remarques

Vous devez initialiser la sécurité COM pour autoriser NetworkService, LocalService et System à effectuer un rappel dans n’importe quel processus qui utilise SRSetRestorePoint. Cela est nécessaire pour que SRSetRestorePoint fonctionne correctement. Pour plus d’informations sur la configuration des appels COM vers CoInitializeEx et CoInitializeSecurity, consultez Using System Restore.

Cette fonction ne peut pas être appelée en mode sans échec. Elle échoue également si la restauration du système a été désactivée (voir Désactiver).

Lorsque vous appelez cette fonction, La restauration du système prend un instantané complet du Registre et d’autres bases de données système.

Les applications ne doivent pas appeler les fonctions de restauration du système à l’aide d’une liaison dynamique au moment du chargement. Utilisez plutôt la fonction LoadLibrary pour charger SrClient.dll et GetProcAddress pour appeler la fonction.

Créez des points de restauration juste avant la modification du système en appelant SRSetRestorePoint avec le membre dwEventType de la structure RESTOREPOINTINFO définie sur BEGIN_SYSTEM_CHANGE. Une fois les modifications apportées au système terminées, 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 appelez 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.

Veillez à effectuer des appels imbriqués à SRSetRestorePoint. Pour plus d’informations, consultez appels imbriqués à SRSetRestorePoint.

Windows 8 :

Une nouvelle clé de Registre permet aux développeurs d’applications de modifier la fréquence de création du point de restauration.

Les applications doivent créer cette clé pour l’utiliser, car elles n’existent pas dans le système. Le code suivant s’applique par défaut si la clé n’existe pas. Si une application appelle la fonction SRSetRestorePoint pour créer un point de restauration, Windows ignore la création de ce point de restauration si des points de restauration ont été créés au cours des 24 dernières heures. La restauration système définit la structure 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 sur ERROR_SUCCESS.

La fonction SRSetRestorePoint retourne TRUE.

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.

Si l’application appelle SRSetRestorePoint pour créer un point de restauration et que la valeur de clé de Registre est 0, la restauration du système n’ignore pas la création du nouveau point de restauration.

Si l’application appelle SRSetRestorePoint pour créer un point de restauration et que 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.

Windows 8 :

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 système exécutée sur Windows 8 peuvent être supprimés si l’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 DWORDScopeSnapshots sous la clé de Registre HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore. Si cette valeur de clé de Registre est 0, la restauration système crée des instantanés 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 en cours d’exécution 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.

Exemples

Pour obtenir un exemple, consultez Using System Restore.

Note

L’en-tête srrestoreptapi.h définit SRSetRestorePoint comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau uniquement]
serveur minimum pris en charge Aucun pris en charge
plateforme cible Windows
d’en-tête srrestoreptapi.h
DLL SrClient.dll

Voir aussi

SRRemoveRestorePoint