Вызов SRSetRestorePoint
Приложение может создать точку восстановления перед тем, как это приведет к значительному изменению системы, например установке, удалению или обновлению.
Установщики должны создать точку восстановления перед установкой, вызвав функцию SRSetRestorePoint с dwEventType
членом RESTOREPOINTINFO
набора BEGIN_SYSTEM_CHANGE
структуры. Чтобы уведомить системное восстановление о завершении установки, вызовите SRSetRestorePoint с заданным dwEventType
значением END_SYSTEM_CHANGE
.
Если пользователь отменяет установку приложения, установщик может удалить точку восстановления, созданную при начале установки. Удаление точки восстановления является необязательным и может предотвратить восстановление пользователя от непреднамеренных изменений, внесенных установщиком во время отмены. Если установщику требуется удалить точку восстановления, она может вызвать функцию SRRemoveRestorePoint или вызвать SRSetRestorePoint с dwRestorePointType
заданным значением , задать CANCELLED_OPERATION
значение и задать значение, llSequenceNumber
dwEventType
END_SYSTEM_CHANGE
возвращаемое начальным вызовом SRSetRestorePoint.
Начиная с Windows 8 разработчики могут создавать приложения, создающие значение DWORD SystemRestorePointCreationFrequency в HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore
разделе реестра. Значение этого раздела реестра может изменить частоту создания точки восстановления. По умолчанию этот ключ не существует.
Когда приложение вызывает функцию SRSetRestorePoint для создания точки восстановления, одно из следующих действий происходит в зависимости от содержимого ключа:
Если ключ не существует (по умолчанию) и какие-либо точки восстановления были созданы за последние 24 часа, Windows пропускает создание этой точки восстановления. Системное восстановление задает
IISequenceNumber
элементSTATEMGRSTATUS
структуры порядковым номером для точки восстановления, созданной ранее в день, и задает значениеnStatus
элементаERROR_SUCCESS
. ВозвращаетсяTRUE
функция SRSetRestorePoint.Если значение раздела реестра равно 0, восстановление системы не пропускает создание новой точки восстановления.
Если значение раздела реестра является целым числом N, системное восстановление пропускает создание новой точки восстановления, если какие-либо точки восстановления были созданы за предыдущие N минуты.
Восстановление системы, работающее в Windows 8, отслеживает файлы в томе загрузки, которые относятся только к восстановлению системы. Моментальные снимки тома загрузки, созданного системой восстановления, запущенного в Windows 8, могут быть удалены, если моментальный снимок впоследствии предоставляется более ранней версией Windows. Обратите внимание, что хотя существует только один системный том, существует один загрузочный том для каждой операционной системы в многозагрузочной системе.
Разработчики могут создавать приложения, создающие значение DWORD ScopeSnapshots в HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore
разделе реестра. Если это значение раздела реестра равно 0, восстановление системы создает моментальные снимки тома загрузки так же, как и в более ранних версиях Windows. Если это значение удалено, восстановление системы, работающее в Windows 8, возобновляет создание моментальных снимков, отслеживающих файлы в томе загрузки, которые относятся только к восстановлению системы.
Пример см. в разделе "Использование системного восстановления".