C++ 获取Windows还原点列表

本来是用WMI就可以搞定的,但是不知道什么时候开始,WMI貌似没效果了,

SELECT * from SystemRestore

结果是空的,但是系统程序rstrui.exe里面能成功找出还原点,这就很神奇了。。。决定研究一下。
每次创建还原点都会有一个系统进程特别占硬盘:
C++ 获取Windows还原点列表_第1张图片
翻阅资料后了解到这是一个Volume Shadow Copy Service,看来系统还原就是基于此功能来实现的。
使用API Monitor,监视VSS相关API:
C++ 获取Windows还原点列表_第2张图片
发现有一个遍历的过程,此时遍历了5次,最后一次是失败的,成功了4次,正好本机上有四个还原点:
C++ 获取Windows还原点列表_第3张图片
说明正好是这个遍历得到了还原点数据,感觉妥妥的。
我照着API调用顺序写了一个demo获取到了还原点的信息(只展示其中一个):
C++ 获取Windows还原点列表_第4张图片

你可能感兴趣的:(Windows,小Demo)