我试图定义一些自定义事件查看器事件。我一直在按照MSDN和其他一些在线资源中的说明进行操作,但事件查看器无法找到相关的文本数据。
这就是我所做的:
NdisWriteErrorLogEntry
API从包含的头文件中使用新ID编写事件。HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll; %%SystemRoot%%\System32\drivers\MyDriver.sys"
HKR, , TypesSupported, 0x00010001, 7
除了事件查看器显示的字符串外,一切正常。它似乎无法识别它们并显示" 消息资源存在但消息未在字符串/消息表中找到"在事件描述中。 与WDK示例的唯一显着区别是使用NDIS API而不是通用WDM API。 我也非常确信文本包含在驱动程序二进制文件中,因为当用编辑器打开.sys文件时,我清楚地看到了我的字符串。 非常感谢有关这个问题的任何建议。
答案 0 :(得分:0)
好吧,经过一年半的时间我发现了问题。显然,如果前面有空格,则事件查看器注册表字符串解析器无法正确提取第二个消息文件名。
因此,为了解决它,所有需要的是移除空格。即,而不是:
HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll; %%SystemRoot%%\System32\drivers\MyDriver.sys"
将其写入inf文件:
HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll;%%SystemRoot%%\System32\drivers\MyDriver.sys"