Partager via


DiUninstallDriverW, fonction (newdev.h)

La fonction DiUninstallDriver supprime un package de pilotes des appareils sur utilisant lequel il est installé en installant ces appareils avec un autre package de pilotes correspondant, le cas échéant, ou le pilote Null si aucun autre package de pilote correspondant n’est disponible. Ensuite, le package de pilotes spécifié est supprimé du magasin de pilotes .

Syntaxe

BOOL DiUninstallDriverW(
  [in, optional]  HWND    hwndParent,
  [in]            LPCWSTR InfPath,
  [in]            DWORD   Flags,
  [out, optional] PBOOL   NeedReboot
);

Paramètres

[in, optional] hwndParent

Handle vers la fenêtre de niveau supérieur qui DiUninstallDriver doit utiliser pour afficher tout composant d’interface utilisateur associé à la désinstallation du pilote. Ce paramètre est facultatif et peut être défini sur NULL.

[in] InfPath

Pointeur vers une chaîne terminée par NULL qui fournit le chemin complet du fichier INF pour le package de pilotes .

[in] Flags

Valeur de type DWORD qui spécifie zéro ou un ou plusieurs des indicateurs suivants : DIURFLAG_NO_REMOVE_INF. En règle générale, cet indicateur doit être défini sur zéro.

Si cet indicateur est égal à zéro, DiUninstallDriver supprime le package de pilotes des appareils sur utilisant lequel il est installé en installant ces appareils avec un autre package de pilotes correspondant, le cas échéant, ou le pilote Null si aucun autre package de pilote correspondant n’est disponible. Toutefois, si cet indicateur est défini sur DIURFLAG_NO_REMOVE_INF, DiUninstallDriver supprime le package de pilotes des appareils sur lequel il est installé, mais ne supprime pas le package de pilotes du magasin de pilotes.

Attention : Forcer la désinstallation du package de pilotes peut entraîner le remplacement d’un package de pilotes plus compatible ou plus récent par un pilote moins compatible ou plus ancien.
 
Pour plus d’informations sur la façon dont Windows sélectionne un package de pilotes pour un appareil, consultez Comment Windows sélectionne les pilotes.

[out, optional] NeedReboot

Pointeur vers une valeur de type BOOL qui DiUninstallDriver définit pour indiquer si un redémarrage système est nécessaire pour terminer la désinstallation. Ce paramètre est facultatif et peut être NULL. Si le paramètre est fourni et qu’un redémarrage du système est nécessaire pour terminer la désinstallation, DiUninstallDriver définit la valeur sur TRUE. Dans ce cas, l’appelant doit inviter l’utilisateur à redémarrer le système. Si ce paramètre est fourni et qu’un redémarrage du système n’est pas nécessaire pour terminer la désinstallation, DiUninstallDriver définit la valeur sur FALSE. Si le paramètre est NULL et qu’un redémarrage du système est nécessaire pour terminer la désinstallation, DiUninstallDriver affiche une boîte de dialogue de redémarrage du système. Pour plus d’informations sur ce paramètre, consultez la section remarques suivante.

Valeur de retour

DiUninstallDriver retourne TRUE si la fonction supprime correctement le package de pilotes des appareils sur lequel il est installé et est correctement supprimé du magasin de pilotes du système. Si le package de pilotes n’est pas correctement désinstallé du magasin de pilotes, DiUninstallDriver retourne FAUX et l’erreur journalisée peut être récupérée en effectuant un appel à GetLastError. Voici quelques-unes des valeurs d’erreur les plus courantes qui GetLastError peuvent retourner :

Retourner le code Description
ERROR_ACCESS_DENIED
L’appelant n’a pas de privilèges d’administrateur. Par défaut, Windows exige que l’appelant dispose de privilèges d’administrateur pour désinstaller un package de pilotes à partir du magasin de pilotes .
ERROR_FILE_NOT_FOUND
Le chemin d’accès du fichier INF spécifié n’existe pas.
ERROR_INVALID_FLAGS
La valeur spécifiée pour indicateurs n’est pas égale à zéro ou DIURFLAG_NO_REMOVE_INF.
ERROR_IN_WOW64
L’application appelante est une application 32 bits qui tente d’s’exécuter dans un environnement 64 bits, qui n’est pas autorisé. Pour plus d’informations, consultez Installation d’appareils sur des systèmes 64 bits.

Remarques

En règle générale, une application de désinstallation doit définir NeedReboot sur NULL pour diriger DiUninstallDriver pour inviter l’utilisateur à redémarrer le système si un redémarrage est nécessaire pour terminer la suppression. Une application doit fournir un pointeur NeedReboot uniquement dans les cas suivants :

  • L’application doit appeler DiUninstallDriver plusieurs fois pour terminer une désinstallation. Dans ce cas, l’application doit enregistrer si une valeur TRUENeedReboot est retournée par l’un des appels à DiUninstallDriver et, le cas échéant, inviter l’utilisateur à redémarrer le système après l’appel final à DiUninstallDriver.
  • L’application doit effectuer des opérations requises, autres que l’appel de DiUninstallDriver, avant qu’un redémarrage du système ne se produise. Si un redémarrage du système est nécessaire, l’application doit terminer les opérations requises, puis inviter l’utilisateur à redémarrer le système.

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows 10 version 1703 et versions ultérieures de Windows.
plateforme cible Bureau
d’en-tête newdev.h (include Newdev.h)
bibliothèque Newdev.lib

Voir aussi

DiUninstallDevice