Windows 7 驱动程序通过以太网连接到设备,阻止设备管理器

Windows 7 驱动程序通过以太网连接到设备,阻止设备管理器

首先,我知道我无法得到我的问题的正确答案,但我正在寻找方法来开始调试它和/或检查某些 Windows 进程是否卡住或运行故障。

我正在开发一个通过以太网连接到智能卡打印机的应用程序。问题是:我正在使用打印机制造商的 SDK,但他们似乎拒绝帮助解决我的问题,或者只是不太了解。(打印机:Zebra ZXP Series 3)打印机有内置智能卡编码器(用于接触式和非接触式卡)。尝试连接到这些编码器后,我的程序(对 SDK 函数的简单调用)每次在驱动程序初始安装后重新启动计算机时都会抛出 System.AccessViolation 异常。

我知道该问题与驱动程序有关,并且可能无法解决该问题,但我正在尝试收集有关如何分析此异常引起的问题的信息。

当然,连接失败了。但之后 Windows 开始出现异常,即设备管理器有点损坏:尝试通过 USB 连接任何设备都会失败,设备管理器不会有任何变化。如果我尝试停用设备管理器中的任何其他驱动程序,它会冻结,并会mmc.exe占用我所有的 CPU 资源。(我排除了 mmc.exe 以查找与我的问题有任何共同之处)

我的假设是,SDK 调用 Windows 函数/服务来连接设备,但 Windows 在连接失败时无法从该函数/服务返回。我想是的,因为发生这种情况后我无法正确终止我的程序,而必须通过任务管理器终止它(否则程序会继续运行)。

此外,如果我重新启动 PC,Windows 会卡在关机屏幕上。这也让我认为 Windows 进程无法正常结束。

现在回答我的问题是:是否有任何 Windows 服务/进程涉及管理驱动程序/设备连接?您是否知道任何可能有助于获取有关当前连接的设备和错误日志的信息的 Windows 工具?或者只是有人知道一些调试驱动程序问题的方法。

通用的最新驱动程序没有帮助。

答案1

在系统启动的早期阶段之后,服务管理器进程 (services.exe) 和即插即用服务(位于其中一个 svchost 进程中)都会参与启动和停止驱动程序。这适用于注册表项中“Start”值为 2 或 3 的驱动程序。

您的“无法连接 USB”问题听起来好像可疑驱动程序尚未与即插即用管理器完成即插即用或电源管理序列,从而阻止它识别任何其他新设备。

您可以通过仔细阅读 %windir%\inf\setupaup.dev.log 来查看即插即用事件。

相关内容