Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Функция SetupDiInstallDevice является обработчиком по умолчанию для запроса на установку DIF_INSTALLDEVICE.
Синтаксис
WINSETUPAPI BOOL SetupDiInstallDevice(
[in] HDEVINFO DeviceInfoSet,
[in, out] PSP_DEVINFO_DATA DeviceInfoData
);
Параметры
[in] DeviceInfoSet
Дескриптор набора сведений об устройстве для локальной системы, который содержит элемент сведений об устройстве, представляющий устанавливаемое устройство.
[in, out] DeviceInfoData
Указатель на структуру SP_DEVINFO_DATA , указывающую элемент сведений об устройстве в DeviceInfoSet. Это параметр IN-OUT, так как DeviceInfoData.При возврате в DevInst может быть обновлено новое значение дескриптора.
Возвращаемое значение
Функция возвращает ЗНАЧЕНИЕ TRUE , если оно выполнено успешно. В противном случае возвращается значение FALSE , а зарегистрированная ошибка может быть получена с помощью вызова Метода GetLastError.
Комментарии
SetupDiInstallDevice устанавливает драйвер из INF-файла. Определение "драйвера" в SetupAPI на самом деле является "узлом драйвера". Поэтому, когда эта функция устанавливает драйвер, она также устанавливает элементы из следующего списка:
- Службы для устройства.
- Файлы драйверов.
- Совместные установщики для конкретных устройств (если таковые есть).
- Поставщики страниц свойств (если таковые есть).
- Апплеты панели управления (при наличии).
Успешная установка включает в себя, помимо прочего, следующие действия:
- Создайте раздел драйвера в реестре и запишите соответствующие записи (например , InfPath и ProviderName).
- Найдите и обработайте раздел INF DDInstall для устройства. Раздел может быть специфичным для ОС или архитектуры. Записи AddReg и DelReg раздела DDInstall направлены на программный ключ устройства. Найдите и обработайте DDInstall. Раздел HW , записи AddReg и DelReg которого направлены на аппаратный ключ устройства. Найдите и обработайте раздел INF DDInstall.LogConfigOverride, если он имеется, чтобы предоставить конфигурацию переопределения для устройства. Найдите и обработайте раздел INF DDInstall.Services , чтобы добавить службы для устройства (и, возможно, удалить все старые службы, которые больше не нужны).
- Скопируйте INF-файл в системный каталог INF.
-
Возможно, выполните другие операции с файлами на основе параметров флага в параметрах установки устройства.
Если флаг DI_NOFILECOPY и флаг DI_NOVCP снят, выполните любые операции с файлами, указанные в разделе DDInstall . Если установлен флаг DI_NOVCP, поставить все операции с файлами в очередь.
Если установлен флаг DI_NOFILECOPY, не копируйте файлы. Этот флаг может быть установлен, например, если для установки этого устройства уже была выполнена DIF_INSTALLDEVICEFILES операция.
- Загрузите драйверы для устройства. Сюда входит драйвер функции и все драйверы верхнего или нижнего фильтров.
- Вызовите процедуры AddDevice драйверов.
- Запустите устройство, отправив IRP_MN_START_DEVICE пакет запроса ввода-вывода (IRP).
Установщик класса должен возвращать ERROR_DI_DO_DEFAULT или вызывать эту функцию при обработке запроса DIF_INSTALLDEVICE . Эта функция выполняет множество задач для установки устройства, и этот список задач может быть расширен в будущих выпусках. Если установщик класса выполняет установку устройства без вызова этой функции, установщик класса может работать неправильно в будущих версиях операционной системы.
Если Windows не удается найти INF-файл для устройства, она отправит DIF_INSTALLDEVICE при попытке установить драйвер NULL. SetupDiInstallDevice устанавливает драйвер null только в том случае, если устройство поддерживает необработанный режим или является устройством без PnP (сообщает IoReportDetectedDevice). Дополнительные сведения см. в разделе DIF_INSTALLDEVICE.
Если флаг DI_FLAGSEX_SETFAILEDINSTALL задан в структуре SP_DEVINSTALL_PARAMS , SetupDiInstallDevice просто устанавливает флаг FAILEDINSTALL в значении реестра ConfigFlags устройства.
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Доступно в Microsoft Windows 2000 и более поздних версиях Windows. |
| Целевая платформа | Персональный компьютер |
| Верхняя часть | setupapi.h (включая Setupapi.h) |
| Библиотека | Setupapi.lib |
| DLL | Setupapi.dll |