在 Windows 8 上安装设备驱动程序失败并出现以下错误:
0xe000022d -536870355 ERROR_NON_WINDOWS_NT_DRIVER
十进制数是我在错误日志 ( C:\Intel\Logs\IntelGFX.log
) 中找到的,网络搜索发现了错误符号名称。
当我直接从英特尔(适用于 Windows* XP 的英特尔® 图形媒体加速器驱动程序)下载驱动程序时,我相信它是一个 NT 驱动程序。只是不适用于 Win7 或 Win8,而是适用于 XP 并且可能适用于 Vista。
有问题的设备不做 Aero,但我不需要 Aero,所以把它关了。但是,我希望拥有原生分辨率和硬件加速。这就是为什么我希望这个安装能够成功。
我的假设是驱动程序安装例程(英特尔驱动程序安装程序)以某种方式与操作系统交互以确定如何准确地安装驱动程序,并且出于谨慎考虑,它在第一眼看到错误时就会失败;因此,理论上认为自己更了解的用户应该能够强制安装。(它只是一个预览系统,目前没有真实数据或功能,所以为什么不玩一点。)
- (1) 知道这个错误的真正含义是什么吗?
- (2) 有什么方法可以绕过常规的驱动程序安装?强制安装驱动程序的排序?
- (3) 作为对#1 和#2 的后备,也欢迎像“每个程序员需要了解的关于设备驱动程序的内容”这样的指针。
我在请求页面的 SetupAPI 中DIF_ALLOW_INSTALL
发现了这个错误代码,但我对这个 API 几乎一无所知。
好的,Ken 认为这不是一个编程问题,他可能有道理。麻烦的是:由于我在驱动部门缺乏知识,我很难做出编程点。我知道的很多:Win32 API 允许您注册代码以在调用 API 例程时运行。这在程序员术语中称为“钩子”,这是我熟悉的概念。这个想法是您可以以某种方式在操作系统和驱动程序设置例程之间插入一些代码以返回“一切都好,继续”而不是ERROR_NON_WINDOWS_NT_DRIVER
. 但我从未在系统/驱动程序级别这样做过。
确实,这不是一个具体的编程问题。我要去那里的路。
我在 stackoverflow 上发布了这个,因为我认为对于超级用户来说太难了,而对于 serverfault 来说,离题太难了。如果您可以建议一个更好的论坛,那也会有所帮助。
硬件背景: 有问题的驱动程序适用于具有 Intel 915GM/GMS、910GML 芯片组的 2005 年老式硬件(三星 X20 笔记本电脑)。不享受硬件支持而依赖某些 VGA 驱动程序显然对整体用户体验有些不利。
(我为这篇文章中的过度大写辩解 - 这是由于IE10 中的新拼写检查器,我还没有设法禁用它。)