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


Функция SetupDiRestartDevices (setupapi.h)

Функция SetupDiRestartDevices перезапускает указанное устройство или, при необходимости, перезапускает все устройства, управляемые той же функцией и драйверами фильтров, которые работают с указанным устройством.

Синтаксис

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

Параметры

[in] DeviceInfoSet

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

[in, out] DeviceInfoData

Указатель на структуру SP_DEVINFO_DATA для элемента сведений об устройстве, представляющего устройство для перезапуска. Этот параметр также является выходным, так как SetupDiRestartDevices обновляет параметры установки устройства для этого элемента сведений об устройстве, а также состояние и код проблемы соответствующего экземпляра устройства. Дополнительные сведения об этих обновлениях см. в следующем разделе Примечаний .

Возвращаемое значение

Если операция выполнена успешно, SetupDiRestartDevices возвращает значение TRUE; В противном случае функция возвращает значение FALSE , а зарегистрированную ошибку можно получить путем вызова Метода GetLastError.

Комментарии

SetupDiRestartDevices должен вызываться только установщиком класса, когда установщик класса обрабатывает запрос DIF_INSTALLDEVICE, и только в редких случаях, когда установщик класса должен выполнять операции после завершения всех операций установки по умолчанию, кроме запуска устройства. Дополнительные сведения о вызове SetupDiRestartDevices в таких ситуациях см. в разделе DIF_INSTALLDEVICE.

SetupDiRestartDevices перезапускает только указанное устройство, если перезагрузка может быть выполнена, не влияя на установку других устройств, управляемых тем же драйвером функций или драйверами фильтров, которые управляют устройством. В частности, если при перезапуске указанного устройства не копируются новые файлы или не изменяются файлы, установленные ранее для устройства, SetupDiRestartDevices перезапускает только указанное устройство. В противном случае функция перезапускает все устройства, управляемые той же функцией, и драйверами фильтров, которые работают с указанным устройством.

SetupDiRestartDevices обновляет параметры установки устройства и состояние устройства в соответствии с результатами операции перезапуска. Пример:

  • Если устройство запущено, SetupDiRestartDevices устанавливает состояние устройства в DN_STARTED.
  • Если для запуска устройства требуется перезагрузка системы, SetupDiRestartDevices устанавливает флаг DI_NEEDREBOOT в элементе Flags структуры SP_DEVINSTALL_PARAMETER, связанной с элементом сведений об устройстве, и задает код проблемы для устройства CM_PROB_NEED_RESTART.
Функция CM_Get_DevNode_Status извлекает состояние и код проблемы для экземпляра устройства, а функция SetupDiGetDeviceInstallParams получает параметры установки устройства для элемента сведений об устройстве, представляющего экземпляр устройства.

Требования

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

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

CM_Get_DevNode_Status

DIF_INSTALLDEVICE

SP_DEVINFO_DATA

SetupDiGetDeviceInstallParams