Функция SetupDiCallClassInstaller (setupapi.h)
Функция SetupDiCallClassInstaller вызывает соответствующий установщик класса и все зарегистрированные совместные установщики с указанным запросом на установку (код DIF).
Синтаксис
WINSETUPAPI BOOL SetupDiCallClassInstaller(
[in] DI_FUNCTION InstallFunction,
[in] HDEVINFO DeviceInfoSet,
[in, optional] PSP_DEVINFO_DATA DeviceInfoData
);
Параметры
[in] InstallFunction
Запрос на установку устройства (ЗАПРОС DIF), который необходимо передать совместно установщикам и установщику класса. Коды DIF имеют формат DIF_XXX и определены в Setupapi.h. Дополнительные сведения см. в разделе Коды функций установки устройств .
[in] DeviceInfoSet
Дескриптор набора сведений об устройстве для локального компьютера. Этот набор содержит элемент установки устройства, который представляет устройство, для которого выполняется указанная функция установки.
[in, optional] DeviceInfoData
Указатель на структуру SP_DEVINFO_DATA , задающую элемент сведений об устройстве в DeviceInfoSet , представляющий устройство, для которого выполняется указанная функция установки. Этот параметр является необязательным и может иметь значение NULL. Если указан этот параметр, SetupDiCallClassInstaller выполняет указанную функцию для элемента DeviceInfoData . Если DeviceInfoData имеет значение NULL, SetupDiCallClassInstaller вызывает установщики для класса установки, связанного с DeviceInfoSet.
Возвращаемое значение
Функция возвращает ЗНАЧЕНИЕ TRUE , если оно выполнено успешно. В противном случае возвращается значение FALSE , а зарегистрированная ошибка может быть получена путем вызова Метода GetLastError.
Когда GetLastError возвращает ERROR_IN_WOW64, это означает, что вызывающее приложение является 32-разрядным приложением, которое пытается выполнить в 64-разрядной среде, что запрещено.
Комментарии
SetupDiCallClassInstaller вызывает установщик класса и любые другие установщики, зарегистрированные для устройства или класса установки устройства. Эта функция загружает установщики, если они еще не загружены. Функция также вызывает обработчик по умолчанию для запроса DIF, если имеется обработчик по умолчанию и если установщики возвращают состояние, указывающее, что обработчик по умолчанию должен быть вызван.
Приложения установки устройств вызывают эту функцию с различными кодами функций установки устройств (DIF). Функция гарантирует, что все соответствующие установщики и обработчики по умолчанию вызываются в правильном порядке для заданного запроса DIF. Дополнительные сведения см. в разделе Обработка кодов DIF.
После того как SetupDiCallClassInstaller возвращает значение TRUE, приложение установки устройства должно вызвать SetupDiGetDeviceInstallParams , чтобы получить структуру SP_DEVINSTALL_PARAMS . Если установлен флаг DI_NEEDREBOOT или DI_NEEDRESTART структуры, вызывающий объект должен предложить пользователю перезапустить систему. Например, вызывающий объект может сделать это, вызвав SetupPromptReboot.
Однако имейте в виду, что приложение установки устройства должно запрашивать перезагрузку системы не более одного раза. Поэтому любое приложение установки устройства, которое создает несколько вызовов SetupDiCallClassInstaller и SetupDiGetDeviceInstallParams , должно сохранять DI_NEEDREBOOT и DI_NEEDRESTART флаги после каждого вызова. Однако он должен запрашивать пользователя только после того, как будет возвращен последний вызов.
В ответ на код DIF, предоставленный SetupDiCallClassInstaller, установщики классов и совместное установщики могут выполнять операции, требующие перезапуска системы. В таких ситуациях установщик или совместный установщик должны выполнять следующие действия.
- Вызовите метод SetupDiGetDeviceInstallParams , чтобы получить структуру SP_DEVINSTALL_PARAMS .
- Установите флаг DI_NEEDREBOOT или DI_NEEDRESTART в элементе Flags структуры.
- Вызовите метод SetupDiSetDeviceInstallParams, указав обновленную структуру SP_DEVINSTALL_PARAMS , чтобы сохранить измененный элемент Flags .
Набор сведений об устройстве, указанный в DeviceInfoSet , должен содержать только элементы для устройств на локальном компьютере.
Сведения о проектировании и работе совместного установщика см. в статье Создание совместного установщика.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Microsoft Windows 2000 и более поздних версиях Windows. |
Целевая платформа | Персональный компьютер |
Верхняя часть | setupapi.h (включая Setupapi.h) |
Библиотека | Setupapi.lib |
DLL | Setupapi.dll |
Набор API | ext-ms-win-setupapi-classinstallers-l1-1-0 (представлено в Windows 8) |