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


Функция DiShowUpdateDevice (newdev.h)

Функция DiShowUpdateDevice отображает мастер обновления оборудования для указанного устройства.

Синтаксис

BOOL DiShowUpdateDevice(
  [in, optional]  HWND             hwndParent,
  [in]            HDEVINFO         DeviceInfoSet,
  [in]            PSP_DEVINFO_DATA DeviceInfoData,
  [in]            DWORD            Flags,
  [out, optional] PBOOL            NeedReboot
);

Параметры

[in, optional] hwndParent

Дескриптор окна верхнего уровня, которое DiShowUpdateDevice использует для отображения всех компонентов пользовательского интерфейса, связанных с обновлением указанного устройства. Этот параметр является необязательным и может иметь значение NULL.

[in] DeviceInfoSet

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

[in] DeviceInfoData

Указатель на структуру SP_DEVINFO_DATA , представляющую устройство, для которого будет отображаться мастер обновления оборудования.

[in] Flags

Для этого параметра необходимо задать нулевое значение.

[out, optional] NeedReboot

Указатель на значение типа BOOL, заданное DiShowUpdateDevice , чтобы указать, требуется ли перезагрузка системы для завершения обновления драйвера. Этот параметр является необязательным и может иметь значение NULL. Если указан параметр и для завершения обновления драйвера требуется перезагрузка системы, DiShowUpdateDevice задает значение TRUE. В этом случае вызывающий объект должен предложить пользователю перезапустить систему. Если этот параметр указан и для завершения установки не требуется перезапуск системы, DiShowUpdateDevice устанавливает значение FALSE. Если параметр имеет значение NULL и для завершения обновления драйвера требуется перезагрузка системы, DiShowUpdateDevice отображает диалоговое окно перезагрузки системы. Дополнительные сведения об этом параметре см. в следующем разделе Примечания .

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

DiShowUpdateDevice возвращает значение TRUE , если мастер обновления оборудования успешно обновил драйвер для указанного устройства. В противном случае DiShowUpdateDevice возвращает значение FALSE , и зарегистрированную ошибку можно получить, выполнив вызов GetLastError. Ниже приведены некоторые из наиболее распространенных значений ошибок, которые может возвращать GetLastError .

Код возврата Описание
ERROR_ACCESS_DENIED
Вызывающий объект не имеет прав администратора. По умолчанию Windows требует, чтобы вызывающий процесс был иметь права администратора для обновления пакета драйверов.
ERROR_CANCELLED
Пользователь отменил работу мастера обновления оборудования.
ERROR_IN_WOW64
Вызывающее приложение — это 32-разрядное приложение, которое пытается выполнить в 64-разрядной среде, что запрещено. Дополнительные сведения см. в разделе Установка устройств в 64-разрядных системах.
ERROR_INVALID_FLAGS
Значение, указанное для параметра Флаги, не равно нулю.

Комментарии

DiShowUpdateDevice отображает мастер обновления оборудования для указанного экземпляра устройства. Сведения об обновлении драйверов устройств с помощью мастера обновления оборудования см. в разделе Центр справки и поддержки.

Как правило, приложения установки должны задать для параметра NeedRebootзначение NULL , чтобы система автоматически инициировала перезагрузку системы, если перезагрузка требуется для завершения обновления оборудования. Приложение должно предоставлять указатель NeedReboot только в следующих случаях:

  • Приложение установки должно несколько раз вызывать DiShowUpdateDevice для завершения обновлений оборудования. В этом случае приложение должно записать, возвращается ли значение TRUENeedReboot любым из вызовов DiShowUpdateDevice , и, если да, предложите пользователю перезапустить систему после окончательного вызова DiShowUpdateDevice .
  • Приложение должно выполнять необходимые операции, кроме вызова DiShowUpdateDevice, прежде чем произойдет перезагрузка системы. Если требуется перезагрузка системы, приложение должно завершить необходимые операции, а затем предложить пользователю перезапустить систему.
Чтобы откатить драйвер для устройства вместо вызова мастера обновления оборудования, вызовите DiRollbackDriver.

Чтобы установить новый драйвер для устройства вместо вызова мастера обновления оборудования, вызовите Метод DiInstallDriver или UpdateDriverForPlugAndPlayDevices.

Требования

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

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

DiInstallDriver

DiRollbackDriver

UpdateDriverForPlugAndPlayDevices