我一直在调试由我们公司开发的PCI-Express卡的软件。有时,软件开始“滞后”,收集的样本更少,甚至停止收集一段时间。 (大约半秒,不是恒定值)
我们有一个内核模式驱动程序,在软件和PCI卡之间起作用。我开始查看驱动程序,并在收集停止时,在调试器(VS调试器立即窗口)中看到一条奇怪的消息,我没有放在那里。它也不在驱动程序的完整源代码中,因此必须由某些Windows内核功能发送。消息:
核心EH:设备0请求8EE6EA58 [0x35]在活动状态= 0x0时在插槽(0x6)上超时。
我在Google上找不到任何可用的东西。有没有人遇到此错误消息?我需要找出它的含义和原因。
PCI-E卡使用PLX8311芯片,这可能与问题有关,因为带有不同芯片的卡的先前版本(PLX9056)不会产生此问题。但是我不确定,这就是为什么我不将其放在他们的论坛上。
不确定是否有帮助,但是: 我使用以下代码从内核发送消息:
#define LocalDebugPrint(l, ...) DbgPrintEx(DPFLTR_IHVDRIVER_ID, l, __VA_ARGS__)
侧面问题:是否可以在Visual Studio调试器立即窗口中获取组件名称(此处为DPFLTR_IHVDRIVER_ID)?