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


DIF_DETECT

Запрос DIF_DETECT направляет установщик на обнаружение устройств, не относящихся к PnP, определенного класса, и добавляет устройства в набор сведений об устройствах. Этот запрос используется для устройств, отличных от PnP.

При отправке

Если мастер добавления оборудования обнаруживает устройства, не относящиеся к PnP.

Кто обрабатывает

Совместный установщик класса

Может обрабатывать

Совместный установщик устройств

Не обрабатывает

Установщик классов

Может обрабатывать

Входные данные установщика

DeviceInfoSet
Предоставляет дескриптор набору сведений об устройстве. Существует класс настройки устройства , связанный с DeviceInfoSet.

DeviceInfoData
Нет

Параметры установки устройства
С DeviceInfoSet связаны параметры установки устройства.

Параметры установки класса
Структура SP_DETECTDEVICE_PARAMS связана с DeviceInfoSet. Параметры содержат подпрограмму обратного вызова, которую установщик класса вызывает для указания хода выполнения операции обнаружения.

Выходные данные установщика

DeviceInfoSet
Установщик добавляет элемент сведений об устройстве в DeviceInfoSet для каждого обнаруженного устройства, независимо от того, было ли устройство ранее обнаружено и установлено.

Параметры установки устройства
Установщик может изменить параметры установки устройства для DeviceInfoSet или новых элементов сведений об устройстве, которые он создает.

Возвращаемое значение установщика

Если совместный установщик не обнаруживает устройства, он возвращает NO_ERROR из своего прохода предварительной обработки. Если совместный установщик обнаруживает устройства, он может сделать это во время предварительной или постобработки и вернуть NO_ERROR или код ошибки Win32.

Если установщик класса обнаруживает устройства, он возвращает NO_ERROR или соответствующий код ошибки Win32. Если установщик класса не обрабатывает этот запрос DIF, он возвращает ERROR_DI_DO_DEFAULT.

Обработчик кода DIF по умолчанию

Нет

Операция установщика

В ответ на запрос DIF_DETECT установщик может обнаружить устройства своего класса установки.

Если установщик обнаруживает устройства, он должен сделать по крайней мере следующее:

  • Вызовите подпрограмму обратного вызова DetectProgressNotify в параметрах установки класса SP_DETECTDEVICE_PARAMS , если обнаружение может занять заметное время.

  • Для каждого устройства, которое обнаруживает установщик, оно должно:

    • Создайте элемент сведений об устройстве (SetupDiCreateDeviceInfo).

    • Укажите сведения о выборе драйвера.

      Установщик может вручную выбрать драйвер для устройства или установить идентификатор оборудования устройства, который Windows будет использовать для поиска INF-файла для устройства. Установщик задает идентификатор оборудования, вызывая SetupDiSetDeviceRegistryProperty со значением Свойства SPDRP_HARDWAREID.

    • Можно задать некоторые параметры установки устройства.

  • Возвращает NO_ERROR для успешного обнаружения или возвращает код ошибки Win32.

Если один или несколько установщиков обнаруживают устройства в ответ на этот код DIF, Windows сравнивает список обнаруженных устройств с текущим списком устройств. Если установщики обнаружили новое устройство, Windows пытается установить устройство. Если установщики опустили устройство, которое отображается в списке программы установки, Windows обычно удаляет устройство.

Для обнаружения устройств, не относящихся к PnP, во время настройки режима графического пользовательского интерфейса установщик должен обработать запрос DIF_FIRSTTIMESETUP . Настройка режима графического пользовательского интерфейса не отправляет DIF_DETECT запрос установщику.

Дополнительные сведения о кодах DIF см. в разделе Обработка кодов DIF.

Требования

Версия

Поддерживается в Microsoft Windows 2000 и более поздних версиях Windows.

Заголовок

Setupapi.h (включая Setupapi.h)

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

DIF_DETECT

DIF_FIRSTTIMESETUP

SetupDiCreateDeviceInfo

SP_DETECTDEVICE_PARAMS

SP_DEVINSTALL_PARAMS