Функция SRSetRestorePointA (srrestoreptapi.h)

Указывает начало и окончание набора изменений, чтобы восстановление системы я создал точку восстановления.

Эквивалент, доступный для сценариев, см. в разделе CreateRestorePoint.

Синтаксис

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

Параметры

[in] pRestorePtSpec

Указатель на структуру RESTOREPOINTINFO , задающую точку восстановления.

[out] pSMgrStatus

Указатель на структуру STATEMGRSTATUS , которая получает сведения о состоянии.

Возвращаемое значение

Если функция выполняется успешно, возвращается значение TRUE. Член llSequenceNumberpSMgrStatus получает порядковый номер точки восстановления.

Если функция завершается сбоем, возвращается значение FALSE. Член nStatuspSMgrStatus получает сведения об ошибке.

Комментарии

Необходимо инициализировать безопасность COM, чтобы разрешить NetworkService, LocalService и System обратный вызов в любой процесс, использующий SRSetRestorePoint. Это необходимо для правильной работы SRSetRestorePoint . Сведения о настройке COM-вызовов CoInitializeEx и CoInitializeSecurity см. в статье Использование восстановления системы.

Эту функцию нельзя вызывать в безопасном режиме. Он также завершается ошибкой, если восстановление системы было отключено (см. раздел Отключить).

При вызове этой функции восстановление системы принимает полный snapshot реестра и других системных баз данных.

Приложения не должны вызывать функции восстановления системы с помощью динамической компоновки во время загрузки. Вместо этого используйте функцию LoadLibrary для загрузки SrClient.dll и GetProcAddress для вызова функции.

Создайте точки восстановления непосредственно перед изменением системы, вызвав SRSetRestorePoint с элементом dwEventType структуры RESTOREPOINTINFO , для BEGIN_SYSTEM_CHANGE. После внесения изменений в систему вызовите SRSetRestorePoint с параметром dwEventType , для END_SYSTEM_CHANGE.

Если пользователь отменит установку приложения, установщик может удалить точку восстановления, созданную при начале установки. Удаление точки восстановления является необязательным и может помешать пользователю восстановиться после непреднамеренных изменений, внесенных установщиком во время отмены. Если установщик удаляет точку восстановления, он может вызвать функцию SRRemoveRestorePoint или вызвать SRSetRestorePoint с параметром dwRestorePointType, для параметра dwRestorePointType задано значение CANCELLED_OPERATION, dwEventType — END_SYSTEM_CHANGE, а для параметра llSequenceNumber — значение, возвращаемое начальным вызовом SRSetRestorePoint.

Будьте внимательны при выполнении вложенных вызовов SRSetRestorePoint. Дополнительные сведения см. в разделе Вложенные вызовы SRSetRestorePoint.

Windows 8:

Новый раздел реестра позволяет разработчикам приложений изменять частоту создания точек восстановления.

Приложения должны создать этот ключ, чтобы использовать его, так как он не будет существовать в системе. Следующее применяется по умолчанию, если ключ не существует. Если приложение вызывает функцию SRSetRestorePoint для создания точки восстановления, Windows пропускает создание этой новой точки восстановления, если за последние 24 часа были созданы какие-либо точки восстановления. Восстановление системы устанавливает для элемента IISequenceNumber структуры STATEMGRSTATUS порядковый номер для точки восстановления, созданной ранее в день, и задает значение элемента nStatusERROR_SUCCESS.

Функция SRSetRestorePoint возвращает значение TRUE.

Разработчики могут создавать приложения, создающие значение DWORD SystemRestorePointCreationFrequency в разделе реестра HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore. Значение этого раздела реестра может изменить частоту создания точек восстановления.

Если приложение вызывает SRSetRestorePoint для создания точки восстановления и значение раздела реестра равно 0, восстановление системы не пропускает создание новой точки восстановления.

Если приложение вызывает SRSetRestorePoint для создания точки восстановления и значением раздела реестра является целое число N, восстановление системы пропускает создание новой точки восстановления, если какие-либо точки восстановления были созданы за предыдущие N минут.

Windows 8:

Восстановление системы, работающее в Windows 8, отслеживает файлы на загрузочном томе, которые относятся только к восстановлению системы. Моментальные снимки загрузочного тома, созданного при восстановлении системы под управлением Windows 8, могут быть удалены, если snapshot впоследствии предоставляется более ранней версией Windows. Обратите внимание, что хотя существует только один системный том, для каждой операционной системы в многозагрузочной системе существует один загрузочный том.

Разработчики могут создавать приложения, которые создают значение DWORDScopeSnapshots в разделе реестра HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore. Если это значение раздела реестра равно 0, восстановление системы создает моментальные снимки загрузочного тома так же, как и в более ранних версиях Windows. Если это значение удалено, восстановление системы в Windows 8 возобновляет создание моментальных снимков, отслеживающих файлы в загрузочном томе, относящиеся только к восстановлению системы.

Примеры

Пример см. в разделе Использование восстановления системы.

Примечание

Заголовок srrestoreptapi.h определяет SRSetRestorePoint в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Ни одна версия не поддерживается
Целевая платформа Windows
Header srrestoreptapi.h
DLL SrClient.dll

См. также раздел

SRRemoveRestorePoint