我有一个 Windows 7 嵌入式设备,它经常像这样重新启动:本地应用程序将一个条目写入应用程序事件日志,几秒钟后它命令自定义电源重新启动。无法执行干净的 Windows 关闭。设备重新启动后,我检查了 Windows 事件日志并注意到最后一个条目丢失了。
有没有什么方法可以将 Windows 事件日志刷新到磁盘,这样我就不会错过最后一个条目?该应用程序是用 C++ 编写的。
谢谢, 阿德南
最佳答案
您遇到了硬件问题,因此最好的解决方案是在硬件上解决它。但继续前进。
使用 BIOS 确保计算机在电源循环后始终启动
你有一个硬件工具来执行重启。您能否重新配置它,而不是在计算机运行时执行硬电源循环,您:
- 通知硬件电源循环工具,
- 执行有序关机,然后
- 使用硬件电源开关重新启动计算机?
通常有一个 bios 设置允许您指定电源循环后的操作,例如
- 关闭电脑,
- 打开它,
- 仅在断电时打开它。
如果你能做到这一点,那么你仍然可以进行有序关机并等待关机完成,然后再重新开机。
软件解决方案:关闭磁盘写入缓存
目前还不清楚是什么导致了您的问题,但以下内容似乎是相关的。
这很可能是磁盘 Controller 硬件或操作系统对磁盘写入缓存的结果。
您可以通过磁盘管理工具关闭此功能:
软件解决方案:以编程方式刷新磁盘
或者,您可以通过编程方式刷新磁盘缓存。此工具可能会有所帮助:
或者确实使用 WMI 和 PowerShell:
关于c++ - 如何将 Windows 事件日志刷新到磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41960623/