Condividi tramite


Funzione SRSetRestorePointA (srrestoreptapi.h)

Specifica l'inizio e la fine di un set di modifiche in modo che Ripristino di sistema possa creare un punto di ripristino.

Per un equivalente scriptable, vedere CreateRestorePoint.

Sintassi

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

Parametri

[in] pRestorePtSpec

Puntatore a una struttura RESTOREPOINTINFO che specifica il punto di ripristino.

[out] pSMgrStatus

Puntatore a una struttura STATEMGRSTATUS che riceve le informazioni sullo stato.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è TRUE. Il llSequenceNumber membro di pSMgrStatus riceve il numero di sequenza del punto di ripristino.

Se la funzione non riesce, il valore restituito viene FALSE. Il membro nStatus di pSMgrStatus riceve informazioni sull'errore.

Osservazioni

È necessario inizializzare la sicurezza COM per consentire a NetworkService, LocalService e System di richiamare in qualsiasi processo che usa SRSetRestorePoint. Questa operazione è necessaria affinché SRSetRestorePoint funzioni correttamente. Per informazioni sulla configurazione delle chiamate COM a CoInitializeEx e CoInitializeSecurity, vedere Using System Restore.

Questa funzione non può essere chiamata in modalità provvisoria. Ha esito negativo anche se ripristino di sistema è stato disabilitato (vedere Disabilitare).

Quando si chiama questa funzione, Ripristino di sistema crea uno snapshot completo del Registro di sistema e di altri database di sistema.

Le applicazioni non devono chiamare funzioni di ripristino di sistema usando il collegamento dinamico in fase di caricamento. Usare invece la funzione loadLibrary per caricare SrClient.dll e GetProcAddress per chiamare la funzione.

Creare punti di ripristino subito prima di una modifica del sistema chiamando SRSetRestorePoint con il membro dwEventType della struttura RESTOREPOINTINFO impostata su BEGIN_SYSTEM_CHANGE. Al termine delle modifiche apportate al sistema, chiamare SRSetRestorePoint con dwEventType impostato su END_SYSTEM_CHANGE.

Se l'utente annulla l'installazione dell'applicazione, il programma di installazione può rimuovere il punto di ripristino creato all'avvio dell'installazione. La rimozione del punto di ripristino è facoltativa e può impedire all'utente di eseguire il ripristino da modifiche involontarie apportate dal programma di installazione durante l'annullamento. Se il programma di installazione deve rimuovere un punto di ripristino, può chiamare la funzione SRRemoveRestorePoint , oppure chiamare SRSetRestorePoint con dwRestorePointType impostato su CANCELLED_OPERATION, dwEventType impostato su END_SYSTEM_CHANGE e llSequenceNumber impostato sul valore restituito dalla chiamata iniziale a SRSetRestorePoint.

Prestare attenzione quando si effettuano chiamate annidate a SRSetRestorePoint. Per altre informazioni, vedere chiamate annidate a SRSetRestorePoint.

Windows 8:

Una nuova chiave del Registro di sistema consente agli sviluppatori di applicazioni di modificare la frequenza di creazione del punto di ripristino.

Le applicazioni devono creare questa chiave per usarla perché non saranno preesistenti nel sistema. Il codice seguente si applica per impostazione predefinita se la chiave non esiste. Se un'applicazione chiama la funzione SRSetRestorePoint per creare un punto di ripristino, Windows ignora la creazione di questo nuovo punto di ripristino se sono stati creati punti di ripristino nelle ultime 24 ore. System Restore imposta il membro iiSequenceNumber della struttura STATEMGRSTATUS al numero di sequenza per il punto di ripristino creato in precedenza nel giorno e imposta il valore del membro nStatus su ERROR_SUCCESS.

La funzione SRSetRestorePoint restituisce TRUE.

Gli sviluppatori possono scrivere applicazioni che creano il valore DWORD SystemRestorePointCreationFrequency nella chiave del Registro di sistema HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore. Il valore di questa chiave del Registro di sistema può modificare la frequenza di creazione del punto di ripristino.

Se l'applicazione chiama SRSetRestorePoint per creare un punto di ripristino e il valore della chiave del Registro di sistema è 0, il ripristino di sistema non ignora la creazione del nuovo punto di ripristino.

Se l'applicazione chiama SRSetRestorePoint per creare un punto di ripristino e il valore della chiave del Registro di sistema è l'intero N, il ripristino di sistema ignora la creazione di un nuovo punto di ripristino se nei N minuti precedenti sono stati creati punti di ripristino.

Windows 8:

Il ripristino di sistema in esecuzione in Windows 8 monitora i file nel volume di avvio rilevanti solo per il ripristino di sistema. Gli snapshot del volume di avvio creato da Ripristino di sistema in esecuzione in Windows 8 possono essere eliminati se lo snapshot viene successivamente esposto da una versione precedente di Windows. Si noti che, anche se è presente un solo volume di sistema, è presente un volume di avvio per ogni sistema operativo in un sistema con più avvio.

Gli sviluppatori possono scrivere applicazioni che creano il valore DWORD ScopeSnapshots nella chiave del Registro di sistema HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore. Se questo valore della chiave del Registro di sistema è 0, Ripristino di sistema crea snapshot del volume di avvio nello stesso modo delle versioni precedenti di Windows. Se questo valore viene eliminato, Ripristino di sistema in esecuzione in Windows 8 riprende la creazione di snapshot che monitorano i file nel volume di avvio rilevanti solo per il ripristino di sistema.

Esempi

Per un esempio, vedere Using System Restore.

Nota

L'intestazione srrestoreptapi.h definisce SRSetRestorePoint come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows XP [solo app desktop]
server minimo supportato Nessuna supportata
piattaforma di destinazione Finestre
intestazione srrestoreptapi.h
dll SrClient.dll

Vedere anche

SRRemoveRestorePoint