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

安装应用程序可以使用以下功能来简化 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 函数将当前安装在设备上的驱动程序包替换为为设备设置的以前安装的备份驱动程序包。 如果设备在更新设备的驱动程序包后失败,则此函数主要用于将设备还原到工作条件。 如果用户在 Device Manager 中的设备的“驱动程序”页上单击了“ 回退驱动程序 ”,则此函数将执行相同的作。

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

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

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

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

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

UpdateDriverForPlugAndPlayDevices (更新即插即用设备驱动程序)

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

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

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

调用方还可以选择调用 UpdateDriverForPlugAndPlayDevices 执行以下作:

  • 强制安装指定的驱动程序包,而不考虑驱动程序包是否与设备更匹配,而不是设备上当前安装的驱动程序包。

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

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

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

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