背景
近期 Windows 11 更新后,Xbox App 彻底罢工,打开直接报错 0x80070426。 打开系统服务 (services.msc),发现里面躺着两个同名的 Gaming Services:一个所有按钮灰显无法点击,另一个点击启动报 错误 1060: 指定的服务未安装。
折腾了一圈:
- 常规的 PowerShell
Remove-AppxPackage清理和商店重装,无解。 - 运行微软官方的专用修复工具
GamingRepairTool.exe,毫无反应,依然无解。 - 动用 PsExec 提权到
SYSTEM级别执行sc delete试图强删该服务,竟然报Error 5: 拒绝访问。 - 进入 WinRE 物理强删了 WindowsApps 下的文件,甚至“保留应用”的系统重装(In-place Upgrade)都没救,重启后该服务原样复活。
这就很诡异了:连 SYSTEM 权限都无权删除,且重装系统(保留配置)都洗不掉。 其实问题根本不在文件权限,也不在 AppX 部署引擎,而在于 Windows 的内核驱动状态。排查过程见下。
排查思路
既然连 SYSTEM 都报 Error 5,且覆盖安装无效(说明损坏的状态库被当做合法配置继承了),必须绕过 UWP 机制,直接通过硬编码向系统注入该服务。
使用 sc.exe create 强行写入物理路径并执行启动后。 现象很明确:系统抛出 [SC] StartService 失败 1056: 服务的实例已在运行中。 查看具体状态,显示为 STATE : 2 START_PENDING (启动挂起)。
这就解释了之前的 Error 5:进程在后台无限期卡在“启动中”状态。Windows 内核保护机制绝对禁止修改或删除一个正在 Pending 的服务,导致它获得了系统级的“无敌护盾”。
根源分析
为什么会无限挂起?Gaming Services 不是一个普通的后台程序,它深度依赖系统底层的文件系统微过滤驱动(Minifilter Driver)来挂载 Xbox 的虚拟磁盘(XVD)。
顺藤摸瓜检查底层驱动,发现基础块设备驱动 xvdd.sys 正常,但专用的游戏过滤驱动 gameflt.sys 报 1060 未安装。 似乎是Windows 更新时意外弄丢了 gameflt 驱动的注册信息。服务启动时向内核请求调用该过滤驱动,得不到回应,陷入了无限期的阻塞死循环。
解决方案
既然死因是缺驱动导致的进程挂起,对症下药即可:
- 打破死锁释放句柄:强制杀掉卡死的进程。
taskkill /F /IM GamingServices.exe /T taskkill /F /IM GamingServicesNet.exe /T - 从系统驱动坟墓中挖出原生驱动: 定位到
C:\Windows\System32\DriverStore\FileRepository,搜索gameflt.inf。 使用自带的包管理工具强行将其重新注入内核:pnputil /add-driver "你的gameflt.inf绝对路径" /install - 唤醒内核驱动并重启服务:
sc start gameflt sc start GamingServicesNet sc start GamingServices
打开 Xbox App,正常秒进。
总结
当 SYSTEM 权限操作服务报 Error 5 时,多半是卡在了 START_PENDING。遇到深度绑定系统的 UWP 应用(如带虚拟磁盘逻辑的 Xbox 组件)陷入死锁,与其在应用层面上重装或纠结权限,不如直接向下查它的 .sys 内核驱动依赖。


