RECKY 发表于 2017-2-25 15:21:48

万象计费环境下乾坤版不出游戏盘

本帖最后由 RECKY 于 2017-2-25 15:24 编辑

环境:乾坤版:2.1.6.0计   费:万象V2016.12.17

问题描述:      客户反应在客户机中打开资源管理器,看不到挂载的盘,只有一个C盘。只有重启explorer.exe或者关闭swacapp.exe进程,游戏盘才会显示出来。

分析:0x1:      对explorer.exe抓了一个dump,看一下堆栈的情况。将近40个线程,其中并没有发现某些线程卡死的情况。我试着在本机模拟了下资源管理器在磁盘插拔的情况,了解了资源管理器其中的过程。0x2:在资源管理器中,各个系统组件都有自己的一套窗口,当有设备变化的时候,系统会发出相应的消息给各个窗口。比如上图的winmm.dll,在自己的消息循环中做处理。然后在资源管理器中显示出来。我们去看一下dump中的信息,各个组件的消息过程都存在,那是什么原因让这些组件没有收到消息呢?
0x3:      我们开始监听消息,然后关闭swacapp.exe进程,发现关闭后组件收到了磁盘创建的消息,于是资源管理器上就显示出来了挂载出来的游戏盘。我们把swacapp.exe给dump下来,看一下它的窗口线程。可以看到swdcapp+0x1719的地方是一个死循环,不进行任何消息交互,当有别的人给它发消息就会堵塞住。让我们来过一遍系统的过程:虚拟盘开始挂载-系统开始给每个窗口通知-通知到LaunchApp的时候,由于没有回应,导致堵塞,也就不通知其它窗口了,就导致虚拟盘没有显示出来。

解决方案:1.   重启explorer.exe[]2.   结束swdcapp进程3.   远程关闭导致卡死的窗口4.   swdcapp.exe这个进程是万象的也可以联系万象处理




页: [1]
查看完整版本: 万象计费环境下乾坤版不出游戏盘