返回

ARM64 计算机上 Windows 驱动程序移植:常見問題及解決方案

windows

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 支持以获得进一步的帮助。