用于简化驱动程序安装的函数

安装应用程序可以使用以下函数来简化 PnP 驱动程序包的安装。

DiInstallDevice (Windows Vista 及更高版本的 Windows)

DiInstallDevice 函数在系统中存在的特定设备上安装预安装在驱动程序存储中的特定驱动程序包。

仅当以下两项都为 true 时,安装应用程序才应使用此函数:

  • 该应用程序包含多个同一类型的设备实例,即所有设备实例具有相同的硬件 ID 和兼容的 ID。

  • 应用程序要求在设备实例上安装特定于设备的驱动程序包。

否则,安装应用程序应使用 DiInstallDriverUpdateDriverForPlugAndPlayDevices 来安装与设备最匹配的驱动程序包。

调用方还可以调用 DiInstallDevice 执行以下操作:

  • 搜索与设备最匹配的预安装驱动程序包。

  • 在特定设备上安装 null 驱动程序。

  • 通知调用方是否需要重启系统才能完成安装。

DiInstallDriver (Windows Vista 及更高版本的 Windows)

DiInstallDriver 函数在驱动程序存储中预安装驱动程序包,然后在系统中具有与驱动程序包匹配的硬件 ID 或兼容 ID 的所有设备上安装驱动程序包。

调用 DiInstallDriverUpdateDriverForPlugAndPlayDevices 是安装应用程序为设备安装新驱动程序包的最简单方法。 DiInstallDriverUpdateDriverForPlugAndPlayDevices 执行相同的基本安装操作。 但是 ,UpdateDriverForPlugAndPlayDevices 支持其他安装选项。

默认情况下, DiInstallDriver 仅在驱动程序包与设备上当前安装的驱动程序包更匹配时,才会在设备上安装驱动程序包。 有关 Windows 如何为设备选择驱动程序包的信息,请参阅 Windows 如何选择驱动程序

调用方还可以调用 DiInstallDriver 执行以下操作:

  • 无论驱动程序包是否比设备上当前安装的驱动程序包更符合设备,都强制安装指定的驱动程序包。

    谨慎 强制安装驱动程序包可能会导致将更兼容的或较新的驱动程序包替换为不太兼容的或较旧的驱动程序包。

  • 向调用方指示是否需要重启系统才能完成安装。

DiRollbackDriver (Windows Vista 及更高版本的 Windows)

DiRollbackDriver 函数将设备上当前安装的驱动程序包替换为为设备设置的以前安装的备份驱动程序包。 如果设备在更新设备的驱动程序包后发生故障,则提供此函数主要用于将设备还原到工作状态。 此函数执行的操作与用户在 设备管理器 中的设备的“驱动程序”页上单击“回滚驱动程序”时执行的相同操作。

Windows 最多为设备维护一个备份驱动程序包。 在设备上成功安装驱动程序包后,Windows 立即将驱动程序包设置为设备的备份驱动程序,并且 Windows 确定设备正常运行。 但是,如果驱动程序包未在设备上成功安装,或者设备在安装后无法正常工作,则 Windows 不会将驱动程序包设置为设备的备份驱动程序。

调用方还可以调用 DiRollbackDriver 执行以下操作:

  • 禁止显示与驱动程序回滚关联的任何用户界面组件。

  • 向调用方指示是否需要重启系统才能完成安装。

有关驱动程序包回滚的详细信息,请参阅帮助和支持中心设备管理器。

UpdateDriverForPlugAndPlayDevices

UpdateDriverForPlugAndPlayDevices 函数在系统中具有与驱动程序包匹配的硬件 ID 或兼容 ID 的所有设备上安装驱动程序包。

调用此函数或 DiInstallDriver 是安装应用程序安装与系统中设备最匹配的新驱动程序包的最简单方法。 UpdateDriverForPlugAndPlayDevices 的基本操作类似于 DiInstallDriver 的操作。 但是 ,UpdateDriverForPlugAndPlayDevices 支持其他安装选项。

默认情况下, UpdateDriverForPlugAndPlayDevices 仅在驱动程序包与设备上当前安装的驱动程序包更匹配设备时,才会在设备上安装驱动程序包。

调用方还可以根据需要调用 UpdateDriverForPlugAndPlayDevices 来执行以下操作:

  • 无论驱动程序包是否比设备上当前安装的驱动程序包更符合设备,都强制安装指定的驱动程序包。

    谨慎 强制安装驱动程序包可能会导致将更兼容的或较新的驱动程序包替换为不太兼容的或较旧的驱动程序包。

  • 禁止复制、重命名或删除安装文件。

  • 禁止显示用户界面组件。

  • 向调用方指示是否需要重启系统才能完成安装。