如何在 Windows XP 客户端计算机上彻底删除驱动程序?

如何在 Windows XP 客户端计算机上彻底删除驱动程序?

我有一台客户端(XP SP3)机器,其中安装了较新的驱动程序。

不幸的是,虽然这些(音频)驱动程序修复了麦克风增强功能,但它们也带来了一些问题,例如在选择音频设备的应用程序中没有输入工作和随机未命名的设备。我需要恢复驱动程序。

但是,回滚不起作用(驱动程序没有备份),手动选择较旧的驱动程序也是徒劳的,因为 XP 只是忽略它,并以其无穷的智慧说当前驱动程序更好,所以我没有理由要使用较旧的驱动程序。

我知道我可以直接删除打印机驱动程序 - 有没有其他驱动程序的选项?

顺便说一句。我做了一些研究,但似乎找不到明确的答案,所以我认为这对其他人也会有帮助。

答案1

Windows 使用多种因素来决定什么是“最佳”驱动程序,例如硬件 ID 匹配(与更具体的硬件 ID 匹配的 INF 是“更好的”)、驱动程序日期、驱动程序版本以及驱动程序是否经过签名。安装程序如何选择驱动程序如果你有兴趣的话,这里有详细信息。

至于如何删除较新的驱动程序,如果在“添加/删除程序”中列出了安装程序,则一定要使用它。如果没有,您应该能够通过右键单击设备管理器中的设备,选择“更新驱动程序...”、“从列表或特定位置安装”、“不要搜索。我将选择要安装的驱动程序”等来手动选择较旧的驱动程序。或者您已经尝试过了吗?(以及选择“卸载...”?)

如果其他方法都失败了,你可能会使用devcon命令随 Windows 驱动程序工具包一起提供。您可以使用devcon dp_delete或强制 Windows 选择其他驱动程序devcon update. 还有一个旧版本的 devcon可直接下载(WDK 相当大)。

如果您决定手动.inf从中删除驱动程序的文件%SystemRoot%\inf,请确保也删除相应的.pnf文件,因为 Windows 使用该文件来缓存部分/全部.inf信息。

答案2

答案3

已经尝试过 devcon,但它说没有 dp_delete 命令,在调查事情时我发现了一种更简单的方法。

有些人说,你可以删除 .inf 和 pnf。但他们没有告诉你如何找到它们。

首先,以管理员身份打开设备管理器,右键单击设备并选择属性,在驱动程序选项卡上,单击详细信息,您将获得驱动程序的.sys 文件名。

然后您必须找到正确的 .inf 和 pnf 进行删除,它们与 .sys 的名称不同。

按照以下指示http://winhlp.com/node/199,简而言之:

  • 以管理员身份运行 cmd,cd 到 inf 文件夹:cd %windir%\inf
  • 使用 .sys 文件的名称(不带扩展名)而不是“WG311T”,查找 inf 文件:
    • 对于 (oem*.inf) 中的 %a,请查找 /i "WG311T" %a >>out.txt
  • 用记事本打开out.txt,看看哪个oem*.inf文件是你的驱动程序。
  • 删除 .inf 和 .pnf oem 文件(用“oemXX”替换找到您的驱动程序的 oem 文件的名称):
    • 属性-h-r-s oemXX.*
    • del oem12.* 重启

关注原文链接http://winhlp.com/node/199了解详细说明。

如何知道要查找的驱动程序的名称并未在此处解释,请记住它与 .sys 文件相同(没有扩展名)。

已测试成功从 Broadcom wifi 中删除 bcmwl6.sys 驱动程序。

答案4

知识库文章l0c0b0x提到的包括一个可以在 Windows XP 及更高版本上使用的 API 调用的链接(在 Windows 2000 上,您可以手动删除 .pnf 和 .inf 文件)。

SetupUninstallOEMInf()

SetupUninstallOEMInf 函数卸载指定的 .inf 文件和任何关联的 .pnf 文件。如果 .inf 文件是使用用于签名驱动程序的目录安装的,则还会删除该目录。此函数的调用者必须具有管理权限,否则该函数将失败。

相关内容