原创 如何删除系统中的 .inf 文件

2011-2-27 19:32 3630 11 11 分类: 工程师职场

概要

本文列出了一些步骤和提示,可帮助 OEM 驱动程序开发人员编写能从系统中安全删除 .inf 文件的“卸载”程序包。您需要具有管理凭据才能完成这些步骤。

要删除 .inf 文件,请按照下列步骤操作:

注意:Microsoft 建议尽量将驱动程序文件保留在原位,即使在删除增值应用程序和 .inf 文件后也是如此。如果删除了这些驱动程序文件,系统中引用该驱动程序的其他设备和驱动程序将无法正常运行。

1,检索 .inf 文件的路径和文件名:

  • .inf 文件位于 %Windir%\Inf 文件夹中,并伴有系统维护且根名相同的 .pnf 文件。在正确安装第三方驱动程序后,.inf 将重命名为 Oemxx.inf(其中,xx 是序列号),以确保产品附带的驱动程序与其他第三方驱动程序之间不存在名称冲突。通过使用带 SP_COPY_REPLACEONLY 标志的 SetupCopyOEMInf 函数以及原始 .inf 文件的完整路径名,可以找到驱动程序的安装名称(SetupCopyOEMInf 记录在操作系统的 SDK 中)。
  • 如果原始 .inf 文件已被移动,则应使用 .inf 文件所在新位置的完整路径名。如果系统中不存在原始 .inf,则必须枚举所有的 Oemxx.inf 文件。在每个 .inf 文件中,需要检查 Provider、DriverVer、Hardware ID 以及其他属性,以确定必须删除的 .inf 文件。在 DevCon 示例代码(位于 Windows Driver Development Kit 的 Src\Setup\Devcon 下)的 Dump.cpp 中,其 FindCurrentDriver 例程中的代码可执行枚举和详细信息检索。
  • 此外,您还可以在删除关联设备之前,从该设备的 driver 项下的“InfPath”REG_SZ 值中检索 Oemxx.inf 名称。 对于 Windows XP 和更高版本,请使用 DeviceInstallParams.FlagsEx 设置为 DI_FLAGSEX_INSTALLEDDRIVER 的 SetupDiBuildDriverInfoList 来获取有关已安装驱动程序的详细信息。

          。  对于 Windows XP 和更高版本,请使用 DeviceInstallParams.FlagsEx 设置为DI_FLAGSEX_INSTALLEDDRIVER 的 SetupDiBuildDriverInfoList 来获取有关已安装驱动程序的详细信息。

          。  对于 Windows 2000,请使用 SetupDiOpenDevRegKey 查找该项。

2,删除 .inf 文件以及关联文件。

  • 在 Windows XP 和更高版本的操作系统中,如果您获取了 \Inf 文件夹下的 .inf 文件的实际名称,即可使用 SetupUninstallOEMInf 正确删除该文件。

  • 在 Windows 2000 中,请按照下列步骤操作:

       。枚举所有设备,并确保它们均未使用您的驱动程序。

       。先使用 DeleteFile 仅删除 %Windir%\Inf 文件夹中的 .pnf 文件。

       。最后使用 DeleteFile 从 %Windir%\Inf 文件夹中删除 .inf 文件。

这篇文章中的信息适用于:

  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional Edition
  • Microsoft Windows Server 2003 Service Pack 1
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /3 下一条