Partager via


Fonction SRSetRestorePointA (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 pouvant faire l’objet d’un script, 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 status.

Valeur retournée

Si la fonction réussit, la valeur de retour est TRUE. Le membre llSequenceNumber 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 permettre à NetworkService, LocalService et System de rappeler 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 à CoInitializeEx et CoInitializeSecurity, consultez Utilisation de la restauration du système.

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 une instantané complète 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 de la 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 une modification du système, en appelant SRSetRestorePoint avec le membre dwEventType de la structure RESTOREPOINTINFO défini 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éé au début de l’installation. La suppression du point de restauration est facultative et peut empêcher l’utilisateur de récupérer après 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.

Soyez prudent lorsque vous effectuez 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 elle n’existera pas dans le système. Les éléments suivants s’appliquent 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 nouveau point de restauration si des points de restauration ont été créés au cours des dernières 24 heures. 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 la journée et définit la valeur du membre nStatussur 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 la 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 système ignore la création d’un point de restauration si des points de restauration ont été créés au cours des N minutes précédentes.

Windows 8 :

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

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é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 uniquement pour la restauration du système.

Exemples

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

Notes

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. La combinaison 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.

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Aucun pris en charge
Plateforme cible Windows
En-tête srrestoreptapi.h
DLL SrClient.dll

Voir aussi

SRRemoveRestorePoint