windows - RegisterEventSource 方法在 Windows 关闭时返回 'null'

标签 windows winapi

我在服务停止期间调用了 RegisterEventSource() 函数。但它在系统关闭期间返回 null。这种行为有什么原因吗?

错误:我在 GetLastError() 上收到错误代码 0x800706b5 谷歌搜索后,我才知道这与缺少注册表数据有关。

另外,如何查看系统是否已经开始关机? (即相当于 C# 中的 HasShutdownStarted())

最佳答案

服务可以指定在系统关闭时是否通知它们。使用 SERVICE_ACCEPT_SHUTDOWN 标志调用 SetServiceStatus()。然后,您将在服务控制消息处理程序中收到 SERVICE_CONTROL_SHUTDOWN 消息。

编辑:如果确实如 Zach 所建议的那样,您在使用 RegisterEventSource 时遇到的问题是因为事件服务已经关闭,那么为响应此通知而写入事件日志也可能会解决该问题。

关于windows - RegisterEventSource 方法在 Windows 关闭时返回 'null',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1193835/

相关文章:

c++ - 导入位图使我的窗口滞后

c - 使用 Windows api 的另一个进程 c 的堆栈跟踪

windows - 为什么 WriteFile 调用 ReadFile 以及如何避免它?

windows - Electron、 Electron 构建器、nsis、卸载时删除 SchTasks

c++ - Windows WiFi 网络设备

windows - 使用参数从 PowerShell 启动批处理文件

c - 如何从窗口获取 OpenGL 上下文?

python - windows下交互式matplotlib

Windows:如何更改显示器的背光亮度

c++ - 阴影的窗口样式?