适用于:Windows 10 神州网信政府版
1.概要:
用户反馈插入安全U盘会蓝屏,查看收集dump日志为Bugcheck 0x7e的蓝屏问题,即:系统线程生成错误处理程序未捕获的异常。要解释它,必须确定生成哪个异常。其错误类型为0xC0000005,STATUS_ACCESS_VIOLATION 表示发生内存访问冲突。具体bugcheck参数介绍如下:
2.操作步骤/更多信息:
用户实际测试情况为:当安装三方软件TSM后,插入安全U盘会发生蓝屏;卸载该软件,则问题不再复现。系统补丁更新情况未知,硬件驱动版本情况未知。
结合上述背景,查看call stack信息发现,蓝屏发生在HIDCLASS在处理删除设备对象时引发的pagefault。
HIDCLASS为系统默认输入设备类库,而usb设备插入主机之后会上报各种描述符,描述符通过bInterfaceProtocol来说明是键盘,鼠标还是其他设备。即HIDCLASS的子信息。首先应保证硬件驱动版本最新。
查看关键栈的寄存器信息:
可以看到,出现问题的HIDCLASS的内存地址是由UH3w分配的,即nt,属windows driver;这与堆栈信息及call stack描述一致。
查看此时nt加载module信息情况,发现TSM module参与。
!mex.mods /?
!mods (!m) - Displays modules loaded in a process
Usage:
!mods [-q] [-l] [-k | -u] [-i] [-info] [-v] [-3] [-n] [-s <SortString>] [-clr] [-net] [-r] [<Module Filter>]
-q : Don't display header
-l : Display unloaded modules
-k : Kernel modules only
-u : User module only
-i : Interesting modules only
-info : Displays FileInfo only
-v : Verbose mode. Adds extra columns.
-3 : Try to limit output to only 3rd party modules.
-n : Make the output note friendly.
-s <SortString> : Sorts by the specified column(s). Can specify more than one column at a time. (eg 'VBCT') (Default: B)
-clr : Display only CLR modules
-net : Search .NET for missing modules (using clrmd)
-r : Rotate output
Module Filter : Regex Module filter
!mods [-?]
-?|-help : Display this help text
Sort Options:
m | M : Module name
v | V : Version
b | B : Base address
c | C : Checksum
t | T : Timestamp
p | P : Path
n | N : CLR
f | F : Flags
Uppercase is Ascending, lowercase is Descending
'Third Party' is determined by lack of 'Microsoft' in the Company field and lack of private symbols.
Aliases:
!mu = '!mods -u' Usermode modules
!mk = '!mods -k' Kernel mode modules
查看HIDCLASS.sys文件的版本信息,在用户操作系统与安装最新系统补丁更新的操作系统上版本信息一致。但不排除在nt其他module在传输过程中导致该问题。
用户操作系统补丁信息:
HIDCLASS.sys信息:
综上,从操作系统最佳实践考虑:
- 系统补丁更新至最新版本。
- 硬件驱动更新至最新版本,尤其是usb驱动。
如上述操作无效,则需要联系TSM厂商进行排查分析。基于用户的实际测试情况,此次蓝屏的大概率原因是TSM软件的兼容性问题。