串行鼠标设备使用虚拟桌面崩溃

时间:2015-10-19 03:05:40

标签: windows crash serial-port driver hang

我有一些旧的基于串行的USB触摸屏系统,用新硬件替换会很昂贵。

它们以下列方式连接:

串行鼠标 - >串口转USB适配器 - >瘦客户端 - >虚拟机

一个问题一切都很好。我遇到一个驱动程序崩溃所有用户注销,关闭或重新启动。当前的解决方法是在注销之前禁用串行鼠标设备,这是一个真正的痛苦。只要设备被禁用,一切都很好。

我通过对崩溃虚拟机进行内存转储对此问题进行了大量研究。

似乎用户注销时,USB设备突然断开连接,然后Windows尝试正常禁用设备并等待它确认,因此永远挂起。在汇编中,它似乎调用一个永不返回的.sys文件。

对于像这样的问题,有什么可以做的吗?你能改变设备停机订单吗?或者告诉Windows不确保即插即用设备关闭?我怀疑供应商愿意改变他们的驱动程序。

1 个答案:

答案 0 :(得分:0)

我为这个问题编写了一个自定义解决方案。

该应用程序使用ShutdownBlockReasonCreate API调用来阻止Windows关闭。然后,它使用WM_QUERYENDSESSION API调用侦听重新启动或注销。当它得到它时,它禁用了设备,然后销毁创建的关闭块。

真正的痛苦,但它的作用