此浏览器不再受支持。
请升级到 Microsoft Edge 以使用最新的功能、安全更新和技术支持。
环境:
现象:
分析:
问题:
这是已知 bug 吗?如何进一步定位?
原本是想用.outmask调整掩码,发现COM2接口默认是FF7,网络(KDNET)是3F7,outmask /d变为3F7后用0x8变为3FF时会显示驱动列表,怀疑是FF7触发AMD处理器JTAG冲突
在 Windows 11 Build 29531 中,kdcom.sys 在初始化过程中错误地将 HalPrivateDispatchTable+0x80 填充为 nt!KscpCopyFromUser(一个内存拷贝函数),而非预期的硬件访问函数。
kdcom.sys
HalPrivateDispatchTable+0x80
nt!KscpCopyFromUser
当 PnP 或 ETW 路径通过该表调用时,实际执行的是内存拷贝,导致 CPU 检测到非法指令,触发 JTAG 异常,最终引发 NMI 0x80 蓝屏。
我这里似乎发现了原因
可能性一:目标地址计算错误
rax 本应指向某个驱动对象的内存区域,但因为某个偏移计算错误,指向了 HAL 表
rax
可能性二:源数据错误
rbx 指向的源结构体中,某个字段正好是 KscpCopyFromUser 的地址,而它被错误地当成了要拷贝的数据。
rbx
KscpCopyFromUser
比如某个函数指针表被误当作普通数据拷贝
可能性三:结构体大小或布局错误
如果某个驱动结构体的大小定义错误,导致拷贝时越界,写到了后面的内存(正好是 HAL 表)
可能性四:链表或数组遍历错误
在遍历驱动列表时,指针计算错误,写到了错误的位置。
在 MiReloadBootLoadedDrivers 过程中,内核遍历启动时加载的驱动列表,为每个驱动分配或拷贝配置结构体。由于某个驱动的配置结构体大小计算错误、或链表指针偏移错误,导致本该写到驱动对象内存的数据,写到了 HalPrivateDispatchTable+0x80 的位置。
MiReloadBootLoadedDrivers
你可以按下 win+f 进行反馈,该问题非常专业不在我的能力范围内
由于我并非此领域的专业人员,你或许可以考虑将其移动到相关的技术 Parent 但是对于 Windows 预览体验计划是没有办法给到如此专业的回复的。
请登录以评价此答案。
我这边提交过反馈了
提交反馈后微软会查看并进行修复,社区无法干预。
个人认为你的提问非常专业了
可以去哪里问这类问题
可以尝试一下 Windows 开发,因为它描述的是一组工具和技术,使开发人员能够在 Windows 生态系统中生成、优化和部署应用程序和服务。
个人想要了解一下您是如何分析的,想要学习一下。
deepseek+windbg,问了AI说这个蓝屏参数涉及AMD处理器本身的问题,你能不能给一下地址我去问问
希望有个人可以用intel处理器尝试一下
您好,如果怀疑是 AMD 处理器问题可以去 AMD 相关社区或支持链接提问。