SetupDiSelectBestCompatDrv 函数 (setupapi.h)

SetupDiSelectBestCompatDrv 函数是DIF_SELECTBESTCOMPATDRV安装请求的默认处理程序。

语法

WINSETUPAPI BOOL SetupDiSelectBestCompatDrv(
  [in]      HDEVINFO         DeviceInfoSet,
  [in, out] PSP_DEVINFO_DATA DeviceInfoData
);

参数

[in] DeviceInfoSet

设备信息集的句柄,其中包含表示要为其选择最佳兼容驱动程序的设备的设备信息元素。

[in, out] DeviceInfoData

指向 SP_DEVINFO_DATA 结构的指针,该结构指定 DeviceInfoSet 中的设备信息元素。 SetupDiSelectBestCompatDrv 从指定设备的兼容驱动程序列表中选择设备信息元素的最佳驱动程序。

返回值

如果操作成功, SetupDiSelectBestCompatDrv 返回 TRUE。 否则,该函数返回 FALSE ,并且可以通过调用 GetLastError 来检索记录的错误。

注解

如果 SetupDiSelectBestCompatDrv 的调用方是 Administrators 组的成员,并且设备的类与所选驱动程序的类不同, 则 SetupDiSelectBestCompatDrv 会将设备的类设置为驱动程序的类。 如果不需要此行为,请在较低特权级别调用此函数。

注意 只有类安装程序应调用 SetupDiSelectBestCompatDrv ,并且仅在类安装程序必须在 SetupDiSelectBestCompatDrv 完成默认驱动程序选择操作后执行驱动程序选择操作的情况下调用。 在这种情况下,当安装程序处理DIF_SELECTBESTCOMPATDRV请求时,类安装程序必须直接调用 SetupDiSelectBestCompatDrv 。 有关调用默认处理程序的详细信息,请参阅 调用默认 DIF 代码处理程序
 
SetupDiSelectBestCompatDrv 主要用于为本地计算机上的设备信息元素选择最兼容的驱动程序。 尽管如果设备信息集用于远程计算机, 则 SetupDiSelectBestCompatDrv 不会失败,但结果是有限的,因为设备信息集随后不能用作不支持远程计算机的操作的 DIF_Xxx 安装请求或 SetupDiXxx 函数的输入。 具体而言,设备信息集随后不能用作DIF_INSTALLDEVICE安装请求的输入,以在远程计算机上安装设备。

有关如何选择最佳驱动程序的信息,请参阅 Windows 如何选择驱动程序

若要获取设备的所选驱动程序,请调用 SetupDiGetSelectedDriver

要求

要求
最低受支持的客户端 在 Windows 2000 和更高版本的 Windows 中可用。
目标平台 桌面
标头 setupapi.h (包括 Setupapi.h)
Library Setupapi.lib
DLL Setupapi.dll

另请参阅

DIF_SELECTBESTCOMPATDRV

SP_DEVINFO_DATA