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.
3 Replies
- jmtella_1Copper Contributor
Windows 11 Insider Experimental build 26340.9233 reproducibly crashes on sign-out/restart with SYSTEM_SERVICE_EXCEPTION 0x3B.
WinDbg bucket: AV_win32kfull!SetMagnificationInputTransform
Faulting function: win32kfull!SetMagnificationInputTransform+0x39
Failure hash: {527223d9-4b8b-e502-e7e6-16fc4649fd38}
The crash occurs during desktop teardown:
DestroyDesktop -> MagpDecomposeDesktop -> MagpRevokeInputTransfrom -> CancelMagnificationInputTransform -> SetMagnificationInputTransform
Workaround found and reproduced on two physical machines:
vivetool /enable /id:27829265
vivetool /enable /id:61457898
Feature 61457898 is FindMyMouse_Prototype; 27829265 is the prerequisite mouse pointer/crosshair feature.
Important: the first restart after enabling 61457898 still crashes, because the current session was apparently created with the old state. After that reboot, subsequent sign-outs and restarts no longer crash.
A/B confirmation:
vivetool /reset /id:61457898 -> crash returns on sign-out/restart.
vivetool /enable /id:61457898 -> after one crashing reboot, subsequent sign-outs/restarts are stable.
This has been reproduced on two separate physical machines. Some other physical headless machines do not reproduce the crash even with 61457898 undefined, so the feature appears to be a workaround rather than the sole trigger.
- quarrelCopper Contributor
I can confirm an apparently identical crash on 24 August 2026.
Environment:
- Windows build: 26340.9233
- ChatGPT package: OpenAI.Codex 26.818.5229.0
- Process: codex-command-runner-0.149.0-alpha.4.1.exe
- Bugcheck: SYSTEM_SERVICE_EXCEPTION (0x3B)
- Exception: 0xC0000005
- Faulting module: win32kfull.sys
- Faulting RVA: win32kfull.sys+0x23c941
The faulting RVA matches the reported win32kfull!SetMagnificationInputTransform+0x39 location. The captured kernel stack likewise contains win32kfull.sys, win32kbase.sys and win32k.sys addresses.
The crash occurred while using ChatGPT Work locally to inspect C:\Windows\Temp. The Codex command runner was the current process when Windows bugchecked. After reboot, the ChatGPT desktop app opened to a blank, unresponsive window.
Minidump SHA-256:
c261cef0ef12784e0d3a766c0c9ed9386179a01f802f62557d9574168b237cc0
I will not attach the minidump publicly because inspection confirms that it contains local paths, configuration and fragments of user-process memory. I can provide it privately through Feedback Hub or another appropriate Microsoft diagnostic channel.
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.