似乎并非所有 Windows 事件消息扩展字符串都在“EventMessageFile”注册表值中指定。例如,对于 Windows 2008 服务器上的“Microsoft-Windows-TerminalServices-RemoteConnectionManager”,EventMessageFile DLL %SystemRoot%\system32\termsrv.dll”不包含消息表:
这意味着将 DLL 句柄设置为 termsrv.dll 的 FormatMessageW 不起作用 :( 我在哪里可以获得正确的消息字符串?
最佳答案
带有 MUI resource 的 Windows PE 文件将特定于语言的资源存储在扩展名为 .MUI 的外部 PE 文件中。在这种情况下,对于英语资源,文件将是 %SystemRoot%\system32\en-us\termsrv.dll.mui
。
大多数 Windows API 在加载资源时自动遵循 MUI 重定向...
关于c - 当 EventLogProvider 不包含消息表时如何读取 Windows 事件消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45991260/