SRSetRestorePointA 函数 (srrestoreptapi.h)

指定一组更改的开始和结束,以便系统还原可以创建还原点。

有关可编写脚本的等效项,请参阅 CreateRestorePoint

语法

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

参数

[in] pRestorePtSpec

指向指定还原点的 RESTOREPOINTINFO 结构的指针。

[out] pSMgrStatus

指向接收状态信息的 STATEMGRSTATUS 结构的指针。

返回值

如果函数成功,则返回值 TRUEllSequenceNumberpSMgrStatus 的成员 接收还原点的序列号。

如果函数失败,则返回值 FALSEnStatuspSMgrStatus 的成员 接收错误信息。

言论

必须初始化 COM 安全性,以允许 NetworkService、LocalService 和 System 回调使用 SRSetRestorePoint的任何进程。 这是 SRSetRestorePoint 正常运行所必需的。 有关设置对 CoInitializeExCoInitializeSecurity的 COM 调用的信息,请参阅 使用系统还原

此函数不能在安全模式下调用。 如果系统还原已禁用(请参阅 禁用),也会失败。

调用此函数时,系统还原会获取注册表和其他系统数据库的完整快照。

应用程序不应使用加载时动态链接调用系统还原函数。 请改用 LoadLibrary 函数来加载 SrClient.dll,GetProcAddress 来调用该函数。

在系统更改前创建还原点,方法是调用 SRSetRestorePoint并将 RESTOREPOINTINFO 结构设置为BEGIN_SYSTEM_CHANGE的 dwEventType 成员。 完成对系统的更改后,调用 SRSetRestorePoint,并将 dwEventType 设置为END_SYSTEM_CHANGE。

如果用户取消应用程序安装,安装程序可能会删除安装开始时创建的还原点。 删除还原点是可选的,可以阻止用户在取消期间从安装程序进行的意外更改中恢复。 如果安装程序要删除还原点,它可以调用 SRRemoveRestorePoint 函数, 或调用 SRSetRestorePointdwRestorePointType 设置为CANCELLED_OPERATION,dwEventType 设置为END_SYSTEM_CHANGE,llSequenceNumber 设置为初始调用 SRSetRestorePoint返回的值。

SRSetRestorePoint进行嵌套调用时,请小心。 有关详细信息,请参阅 对 SRSetRestorePoint的嵌套调用。

Windows 8:

新的注册表项使应用程序开发人员能够更改还原点创建的频率。

应用程序应创建此密钥以使用它,因为它不会在系统中存在。 如果密钥不存在,则默认适用以下内容。 如果应用程序调用 SRSetRestorePoint 函数来创建还原点,则 Windows 会跳过创建此新还原点(如果在过去 24 小时内创建了任何还原点)。 系统还原将 STATEMGRSTATUS 结构的 IISequenceNumber 成员设置为之前在当天创建的还原点的序列号,并将 nStatus 成员的值设置为 ERROR_SUCCESS

SRSetRestorePoint 函数返回 true

开发人员可以在注册表项 HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestoreSystemRestorePointCreationFrequency 创建 DWORD 值的应用程序。 此注册表项的值可以更改还原点创建的频率。

如果应用程序调用 SRSetRestorePoint 来创建还原点,并且注册表项值为 0,则系统还原不会跳过创建新还原点。

如果应用程序调用 SRSetRestorePoint 来创建还原点,并且注册表项值为整数 N,则系统还原会跳过在前 N 分钟内创建任何还原点时创建新的还原点。

Windows 8:

在 Windows 8 上运行的系统还原监视仅与系统还原相关的启动卷中的文件。 如果快照随后由早期版本的 Windows 公开,则可能会删除在 Windows 8 上运行的系统还原创建的启动卷的快照。 请注意,虽然只有一个系统卷,但多启动系统中每个操作系统都有一个启动卷。

开发人员可以在注册表项 HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestoreScopeSnapshots 创建 DWORD 值的应用程序。 如果此注册表项值为 0,则系统还原会以与早期版本的 Windows 相同的方式创建启动卷的快照。 如果删除此值,则 Windows 8 上运行的系统还原将恢复创建快照,这些快照监视仅与系统还原相关的启动卷中的文件。

例子

有关示例,请参阅 使用系统还原

注意

srrestoreptapi.h 标头将 SRSetRestorePoint 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows XP [仅限桌面应用]
支持的最低服务器 不支持
目标平台 窗户
标头 srrestoreptapi.h
DLL SrClient.dll

另请参阅

SRRemoveRestorePoint