ARM64 计算机上 Windows 驱动程序移植:常見問題及解決方案
2024-03-02 20:26:45
ARM64 计算机上的 Windows 驱动程序移植
简介
随着技术不断发展,在不同架构的计算机上部署 Windows 驱动程序变得越来越普遍。特别是,从 Intel x86 架构向 ARM64 架构的移植引起了越来越多的关注。本文将探讨将 Windows 驱动程序移植到 ARM64 机器(例如 Apple 芯片 M2)的常见问题及其解决方法。
常见问题
1. ARM64 架构:
ARM64 架构与 Intel x86 架构不同,需要特定的驱动程序版本才能正常工作。未指定 ARM64 驱动程序版本的 .inf 文件可能会导致兼容性问题。
2. usbrndis6.ndi 缺少:
usbrndis6.ndi 文件是 Windows 驱动程序正常运行的必要组件。如果没有此文件或该文件不可访问,驱动程序将无法正常安装或运行。
3. 编译器版本:
较早版本的 Windows 编译器可能不支持 ARM64 架构。使用较早版本编译的 .inf 文件可能存在与 ARM64 计算机不兼容的问题。
4. 注册表项丢失:
某些必需的注册表项对于 Windows 驱动程序在 ARM64 机器上正常工作至关重要。缺少这些注册表项会导致安装失败或运行时问题。
解决方案
1. 更新 .inf 文件:
在 .inf 文件中添加一个 [MyCoolDevice.NTarm64.10.0] 部分,并指定 ARM64 驱动程序的版本。确保版本与计算机上安装的 Windows 版本兼容。
2. 确保 usbrndis6.ndi 文件可用:
将 usbrndis6.ndi 文件复制到计算机上的适当位置,例如 C:\Windows\System32。或者,可以从 Microsoft 下载中心下载该文件。
3. 使用支持 ARM64 架构的编译器:
使用支持 ARM64 架构的最新版本 Windows 编译器编译 .inf 文件。这将确保生成的驱动程序与 ARM64 计算机兼容。
4. 创建必要的注册表项:
使用 regedit.exe 创建以下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rndis
并添加以下值:
- 名称:ImagePath
- 类型:REG_EXPAND_SZ
- 数据:指向 usbrndis6.ndi 文件的路径
5. 其他提示:
- 验证驱动程序是否经过 WHQL(Windows 硬件质量实验室)认证,以确保其兼容性。
- 仔细检查 .inf 文件是否存在语法或拼写错误。
- 重新启动计算机以应用更改。
结论
将 Windows 驱动程序移植到 ARM64 计算机需要解决一些特定问题。通过更新 .inf 文件,确保 usbrndis6.ndi 文件可用,使用支持 ARM64 架构的编译器,并创建必要的注册表项,可以成功移植驱动程序。遵循本文中概述的步骤,可以有效地解决这些问题,并确保您的 Windows 驱动程序在 ARM64 机器上正常运行。
常见问题解答
1. 我的驱动程序已经经过 WHQL 认证,为什么它仍然无法在 ARM64 机器上工作?
WHQL 认证并不保证与所有 ARM64 机器兼容。验证驱动程序是否经过专门针对您的 ARM64 计算机的架构认证。
2. 我找不到 usbrndis6.ndi 文件。在哪里可以找到它?
usbrndis6.ndi 文件通常位于 C:\Windows\System32 中。如果找不到,可以从 Microsoft 下载中心下载该文件。
3. 我创建了注册表项,但我的驱动程序仍然无法工作。为什么?
检查注册表项中的值是否正确。确保 ImagePath 值指向 usbrndis6.ndi 文件的正确路径。
4. 我可以使用 x86 驱动程序在 ARM64 机器上运行吗?
不,x86 驱动程序与 ARM64 架构不兼容。您需要专门为 ARM64 机器构建的驱动程序。
5. 我在移植驱动程序时遇到其他问题。该怎么办?
建议查阅 Microsoft 文档或联系 Microsoft 支持以获得进一步的帮助。