HOWTO: 解决 Windows 启动时发生 0xC0000428 故障问题
当企业 IT 人员为标准化映像注入了驱动,或通过部署平台在安装过程中动态注入驱动后,设备首次初始化(Specialized phase)时可能会遇到 0xC0000428 的故障问题,如下图所示:
从提示来看,是在加载某个驱动程序时发生了异常,报出了 0xC0000428 的 error code。看描述是说文件的数字签名依赖关系无法验证。查了一下代码可确认与签名证书有关!
由于无法进入安全模式,便无法从系统 UI 下卸载此驱动,此外也想验证一下是否还有其他驱动存在文件,唯一的办法是脱机对当前实例执行离线的驱动维护。具体办法如下:
找一个 PE 引导设备进入脱机环境,然后使用 DISM 获取当前实例的驱动存储列表,参考命令如下:
如果驱动较多可以加载“| more”,或直接“> drivers.txt”导出用记事本查阅。当找到报错的驱动程序后,确定其“已发布的名称”,类似“OEM.inf”命令方式。
然后,执行下面的命令,将驱动从实例中删除。
最后,退出 PE 重启设备测试是否可以正常初始化。
有关 DISM 维护驱动程序的官方文档可参考:https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/dism-driver-servicing-command-line-options-s14?view=windows-11