Функция DiUninstallDriverA (newdev.h)
Функция DiUninstallDriver удаляет пакет драйверов с любых устройств, на которых он установлен, устанавливая эти устройства с другим пакетом соответствующего драйвера (если он доступен) или драйвер null, если другой пакет соответствующего драйвера недоступен. Затем указанный пакет драйверов удаляется из хранилища драйверов.
Синтаксис
BOOL DiUninstallDriverA(
[in, optional] HWND hwndParent,
[in] LPCSTR InfPath,
[in] DWORD Flags,
[out, optional] PBOOL NeedReboot
);
Параметры
[in, optional] hwndParent
Дескриптор окна верхнего уровня, который diUninstallDriver должен использовать для отображения любого компонента пользовательского интерфейса, связанного с удалением драйвера. Этот параметр является необязательным и может иметь значение NULL.
[in] InfPath
Указатель на строку, завершающуюся значением NULL, которая предоставляет полный путь к INF-файлу для пакета драйвера.
[in] Flags
Значение типа DWORD, указывающее ноль или один или несколько следующих флагов: DIURFLAG_NO_REMOVE_INF. Как правило, этот флаг должен быть равен нулю.
Если этот флаг равен нулю, DiUninstallDriver удаляет пакет драйверов с любых устройств, на которых он установлен, устанавливая эти устройства с другим пакетом соответствующего драйвера , если он доступен, или драйвер NULL, если другой соответствующий пакет драйверов недоступен. Однако если для этого флага задано значение DIURFLAG_NO_REMOVE_INF, DiUninstallDriver удаляет пакет драйверов с любых устройств, на которые он установлен, но не удаляет пакет драйверов из хранилища драйверов.
Сведения о том, как Windows выбирает пакет драйверов для устройства, см. в разделе Выбор драйверов в Windows.
[out, optional] NeedReboot
Указатель на значение типа BOOL, заданное DiUninstallDriver , чтобы указать, требуется ли перезагрузка системы для завершения удаления. Этот параметр является необязательным и может иметь значение NULL. Если указан параметр и для завершения удаления требуется перезагрузка системы, DiUninstallDriver задает значение TRUE. В этом случае вызывающий объект должен предложить пользователю перезапустить систему. Если этот параметр указан и для завершения удаления не требуется перезапуск системы, DiUninstallDriver устанавливает значение FALSE. Если параметр имеет значение NULL и для завершения удаления требуется перезагрузка системы, DiUninstallDriver отображает диалоговое окно перезагрузки системы. Дополнительные сведения об этом параметре см. в следующем разделе Примечания .
Возвращаемое значение
DiUninstallDriver возвращает значение TRUE , если функция успешно удаляет пакет драйверов с любых устройств, на которые он установлен, и успешно удаляется из хранилища драйверов системы. Если пакет драйвера не удален из хранилища драйверов, DiUninstallDriver возвращает значение FALSE , а зарегистрированную ошибку можно получить, выполнив вызов GetLastError. Ниже приведены некоторые из наиболее распространенных значений ошибок, которые может возвращать GetLastError .
Код возврата | Описание |
---|---|
|
Вызывающий объект не имеет прав администратора. По умолчанию Windows требует, чтобы вызывающий объект был иметь права администратора для удаления пакета драйверов из хранилища драйверов. |
|
Путь к указанному INF-файлу не существует. |
|
Значение, указанное для параметра Флаги , не равно нулю или DIURFLAG_NO_REMOVE_INF. |
|
Вызывающее приложение — это 32-разрядное приложение, которое пытается выполнить в 64-разрядной среде, что запрещено. Дополнительные сведения см. в разделе Установка устройств в 64-разрядных системах. |
Комментарии
Как правило, приложение удаления должно задать для параметра NeedRebootзначение NULL , чтобы направить DiUninstallDriver , чтобы предложить пользователю перезапустить систему, если для завершения удаления требуется перезагрузка. Приложение должно предоставлять указатель NeedReboot только в следующих случаях:
- Чтобы завершить удаление, приложение должно вызвать DiUninstallDriver несколько раз. В этом случае приложение должно записать, возвращается ли значение TRUENeedReboot любым из вызовов DiUninstallDriver , и, если да, предложите пользователю перезапустить систему после возврата последнего вызова DiUninstallDriver .
- Приложение должно выполнять необходимые операции, кроме вызова DiUninstallDriver, прежде чем произойдет перезагрузка системы. Если требуется перезагрузка системы, приложение должно завершить необходимые операции, а затем предложить пользователю перезапустить систему.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows 10 версии 1703 и более поздних версиях Windows. |
Целевая платформа | Персональный компьютер |
Верхняя часть | newdev.h (включая Newdev.h) |
Библиотека | Newdev.lib |