Поделиться через


Функция 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 является членом группы Администраторы и класс устройства отличается от класса выбранного драйвера, SetupDiSelectBestCompatDrv присваивает классу устройства класс драйвера. Если такое поведение нежелательно, вызовите эту функцию на более низком уровне привилегий.

Примечание Только установщик класса должен вызывать SetupDiSelectBestCompatDrv и только в тех ситуациях, когда установщик класса должен выполнять операции выбора драйверов после того , как SetupDiSelectBestCompatDrv завершит операцию выбора драйвера по умолчанию. В таких ситуациях установщик класса должен напрямую вызывать SetupDiSelectBestCompatDrv , когда установщик обрабатывает запрос DIF_SELECTBESTCOMPATDRV. Дополнительные сведения о вызове обработчика по умолчанию см. в разделе Вызов обработчиков кода DIF по умолчанию.
 
SetupDiSelectBestCompatDrv в первую очередь предназначен для выбора наилучшего совместимого драйвера для элемента сведений об устройстве на локальном компьютере. Хотя SetupDiSelectBestCompatDrv не завершится ошибкой, если набор сведений об устройствах предназначен для удаленного компьютера, это приведет к ограниченному использованию, так как набор сведений об устройстве впоследствии не может использоваться в качестве входных данных с запросами на установку DIF_Xxx илифункциями SetupDiXxx , которые не поддерживают операции для удаленного компьютера. В частности, набор сведений об устройстве впоследствии не может использоваться в качестве входных данных с запросом на установку DIF_INSTALLDEVICE для установки устройства на удаленном компьютере.

Сведения о том, как выбрать лучший драйвер, см. в разделе Выбор драйверов в Windows.

Чтобы получить выбранный драйвер для устройства, вызовите SetupDiGetSelectedDriver.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows 2000 и более поздних версиях Windows.
Целевая платформа Персональный компьютер
Верхняя часть setupapi.h (включая Setupapi.h)
Библиотека Setupapi.lib
DLL Setupapi.dll

См. также раздел

DIF_SELECTBESTCOMPATDRV

SP_DEVINFO_DATA