Compartilhar via


Chamando SRSetRestorePoint

Um aplicativo pode criar um ponto de restauração antes de causar uma alteração significativa no sistema, como uma instalação, desinstalação ou atualização.

Os instaladores devem criar um ponto de restauração antes da instalação chamando a função SRSetRestorePoint com o dwEventType RESTOREPOINTINFO membro da estrutura definido como BEGIN_SYSTEM_CHANGE. Para notificar a Restauração do Sistema de que a instalação foi concluída, chame SRSetRestorePoint com dwEventType definido como END_SYSTEM_CHANGE.

Se o usuário cancelar a instalação do aplicativo, o instalador poderá remover o ponto de restauração criado quando a instalação começou. A remoção do ponto de restauração é opcional e pode impedir que o usuário se recupere de alterações não intencionais feitas pelo instalador durante o cancelamento. Se o instalador for remover um ponto de restauração, ele poderá chamar a função SRRemoveRestorePoint ou chamar SRSetRestorePoint com dwRestorePointType set como CANCELLED_OPERATION, dwEventType set como END_SYSTEM_CHANGE, e llSequenceNumber definir como o valor retornado pela chamada inicial para SRSetRestorePoint.

A partir do Windows 8, os desenvolvedores podem escrever aplicativos que criam o valor DWORD SystemRestorePointCreationFrequency na chave do HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore Registro. O valor dessa chave do Registro pode alterar a frequência de criação do ponto de restauração. Por padrão, essa chave não existe.

Quando um aplicativo chama a função SRSetRestorePoint para criar um ponto de restauração, uma das seguintes situações acontece dependendo do conteúdo da chave:

  • Se a chave não existir (padrão) e quaisquer pontos de restauração tiverem sido criados nas últimas 24 horas, o Windows ignorará a criação desse novo ponto de restauração. A Restauração do Sistema define o IISequenceNumber STATEMGRSTATUS membro da estrutura como o número de sequência do ponto de restauração criado anteriormente no dia e define o valor do nStatus membro como ERROR_SUCCESS. A função SRSetRestorePoint retorna TRUE.

  • Se o valor da chave do Registro for 0, a restauração do sistema não ignorará a criação do novo ponto de restauração.

  • Se o valor da chave do Registro for o inteiro N, a restauração do sistema ignorará a criação de um novo ponto de restauração se algum ponto de restauração tiver sido criado nos N minutos anteriores.

A Restauração do Sistema em execução no Windows 8 monitora os arquivos no volume de inicialização que são relevantes apenas para a restauração do sistema. Os instantâneos do volume de inicialização criado pela Restauração do Sistema em execução no Windows 8 podem ser excluídos se o instantâneo for exposto subsequentemente por uma versão anterior do Windows. Observe que, embora haja apenas um volume de sistema, há um volume de inicialização para cada sistema operacional em um sistema de inicialização múltipla.

Os desenvolvedores podem escrever aplicativos que criam o valor DWORD ScopeSnapshots sob a chave do HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore Registro. Se esse valor de chave do Registro for 0, a Restauração do Sistema criará instantâneos do volume de inicialização da mesma forma que em versões anteriores do Windows. Se esse valor for excluído, a Restauração do Sistema em execução no Windows 8 continuará a criar instantâneos que monitoram arquivos no volume de inicialização que são relevantes apenas para a restauração do sistema.

Para obter um exemplo, consulte Usando a Restauração do Sistema.