Forum Discussion
[GSOD]SYSTEM_SERVICE_EXCEPTION in win32kfull!SetMagnificationInputTransform when a process exits
问题概述
Windows 11 Insider Experimental 26H2 Build 26340.9233 连续发生两次绿屏崩溃。
两份 minidump 经 WinDbg 分析后指向完全相同的故障函数、调用栈、触发进程及故障哈希。崩溃发生在 Windows 销毁进程关联的桌面对象,并清理屏幕放大输入变换状态时。
系统环境
- 操作系统:Windows 11 Pro for Workstations
- Insider 通道:Experimental
- 显示版本:26H2
- 完整系统版本:26340.9233
- BuildLabEx:26100.6.amd64fre.ge_release_flt.260716-1700
- 系统架构:x64
- win32kfull.sys 版本:10.0.26100.9233
- BIOS Revision:1.42.0.0
- Hyper-V:已启用
故障现象
系统显示绿色停止错误画面并自动重启:
- Stop code:SYSTEM_SERVICE_EXCEPTION
- Bugcheck:0x0000003B
- Exception code:0xC0000005
- What failed:win32kfull.sys
该问题在同一天连续发生两次,并分别生成以下转储:
- 082226-21906-01.dmp
- 082226-21734-01.dmp
WinDbg 分析结果
两份转储的分析结果一致:
BUGCHECK_CODE: 3b BUGCHECK_P1: c0000005 PROCESS_NAME: codex-command-runner-0.149.0-alpha.4.1.exe FAILURE_BUCKET_ID: AV_win32kfull!SetMagnificationInputTransform FAILURE_ID_HASH: {527223d9-4b8b-e502-e7e6-16fc4649fd38} SYMBOL_NAME: win32kfull!SetMagnificationInputTransform+39 IMAGE_NAME: win32kfull.sys IMAGE_VERSION: 10.0.26100.9233
故障指令:
win32kfull!SetMagnificationInputTransform+0x39: mov rbx, qword ptr [rax+1F0h] RAX = 0000000000000000
这表明内核代码尝试通过空指针读取内存,从而触发 0xC0000005 访问冲突。
关键调用栈
nt!NtTerminateProcess nt!PspExitThread nt!PspExitLastThread nt!PspRundownSingleProcess nt!ObKillProcess nt!ExSweepHandleTable nt!ExpWin32CloseProcedure win32k!W32CalloutDispatchThunk win32kbase!W32CalloutDispatch win32kfull!UnmapDesktop win32kfull!DestroyDesktop win32kfull!zzzDecomposeDesktop win32kfull!MagpDecomposeDesktop win32kfull!MagpRevokeInputTransfrom win32kfull!CancelMagnificationInputTransform win32kfull!SetMagnificationInputTransform+0x39
从调用栈判断,崩溃发生在以下过程中:
- codex-command-runner 进程退出;
- Windows 清理该进程及其桌面对象;
- win32kfull.sys 撤销 Magnification Input Transform;
- SetMagnificationInputTransform 解引用空指针;
- 系统触发 SYSTEM_SERVICE_EXCEPTION。
重复性
两次崩溃均具有以下共同点:
- 相同停止代码和异常类型;
- 相同故障函数及函数偏移;
- 相同的空指针访问方式;
- 相同触发进程及版本;
- 相同桌面销毁和放大输入变换清理调用栈;
- 相同 Failure ID Hash。
因此,该问题具有较强的可重复性,不像随机硬件错误。
目前尚未完全确定具体的用户操作序列,但两次均发生在 Codex 桌面应用的本地命令运行器退出期间。该进程看起来是触发场景;实际非法访问发生在 Windows 内核的 win32kfull.sys 中。
预期行为
任何普通用户态进程退出或其桌面对象被销毁时,Windows 都应安全清理 Magnification Input Transform 状态。即使相关状态不存在、已经释放或不完整,也不应发生内核空指针访问或导致整个系统崩溃。
实际行为
win32kfull!SetMagnificationInputTransform 在桌面销毁路径中收到或获取了空对象,但没有在访问对象偏移 0x1F0 前进行有效性检查,最终导致系统级崩溃。
希望微软协助调查
请重点检查 Build 26340.9233 中以下方面:
- SetMagnificationInputTransform 的对象生命周期和空指针检查;
- CancelMagnificationInputTransform 与 MagpRevokeInputTransfrom 的重复撤销或竞态条件;
- 临时桌面、隔离桌面或进程退出时的 DestroyDesktop 清理路径;
- Experimental 26340 系列中 Magnifier 相关改动是否影响输入变换状态;
- 短时间内创建并销毁桌面的应用是否能够稳定触发该问题。
English engineering summary
Two independent minidumps from Windows 11 Insider Experimental Build 26340.9233 show an identical SYSTEM_SERVICE_EXCEPTION (0x3B) with 0xC0000005.
The crash occurs at:
win32kfull!SetMagnificationInputTransform+0x39 mov rbx, qword ptr [rax+1F0h] RAX = 0
Both dumps have the same process, stack, failure bucket and failure hash:
PROCESS_NAME: codex-command-runner-0.149.0-alpha.4.1.exe FAILURE_BUCKET_ID: AV_win32kfull!SetMagnificationInputTransform FAILURE_ID_HASH: {527223d9-4b8b-e502-e7e6-16fc4649fd38}
The process is terminating, Windows destroys its associated desktop, and the kernel crashes while revoking the Magnification Input Transform:
NtTerminateProcess → PspRundownSingleProcess → ExpWin32CloseProcedure → UnmapDesktop → DestroyDesktop → MagpDecomposeDesktop → MagpRevokeInputTransfrom → CancelMagnificationInputTransform → SetMagnificationInputTransform → NULL pointer dereference
Please investigate the object lifetime, synchronization and null validation in the Magnification Input Transform cleanup path when a temporary or isolated desktop is destroyed.
1 Reply
The two matching dumps make this a reproducible kernel-path regression rather than a random application crash. Bug check 0x3B with 0xC0000005 confirms an access violation in privileged code, but the stack does not prove that the terminating Codex process caused the defect; it may only trigger the cleanup path. Update to the newest available build in your Insider channel and install current display, input, and accessibility drivers, then test the same process-exit sequence again. If it reproduces, submit a Feedback Hub problem from that build, start “Recreate my problem” immediately before reproduction, and include both dump hashes, stack, build number, and steps. Upload dumps only through Feedback Hub or a private Microsoft support channel because they can contain sensitive data. Also share the Feedback Hub collection link here. Until Microsoft confirms a fix, disable the triggering workflow or move the affected machine to a stable Windows build.