Partager via


DiUninstallDriverA, fonction (newdev.h)

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

Syntaxe

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

Paramètres

[in, optional] hwndParent

Handle vers la fenêtre de niveau supérieur que 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 de tous les appareilssurux en installant ces appareils avec un autre package de pilotes correspondant, le cas échéant, ou le pilote Null si aucun autre package de pilotes correspondant n’est disponible. Toutefois, si cet indicateur est défini sur DIURFLAG_NO_REMOVE_INF, DiUninstallDriver supprime le package de pilotes de tous les 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 définie par DiUninstallDriver pour indiquer si un redémarrage du 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 a la valeur 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 retournée

DiUninstallDriver retourne TRUE si la fonction supprime correctement le package de pilotes de tous les appareils sur lequel il est installé et qu’il est 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 FALSE 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 que GetLastError peut retourner :

Code de retour 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 du magasin de pilotes.
ERROR_FILE_NOT_FOUND
Le chemin du fichier INF spécifié n’existe pas.
ERROR_INVALID_FLAGS
La valeur spécifiée pour Flags n’est pas égale à zéro ou DIURFLAG_NO_REMOVE_INF.
ERROR_IN_WOW64
L’application appelante est une application 32 bits qui tente de s’exécuter dans un environnement 64 bits, ce qui n’est pas autorisé. Pour plus d’informations, consultez Installation d’appareils sur des systèmes 64 bits.

Remarques

En général, une application de désinstallation doit définir NeedReboot sur NULL pour indiquer à DiUninstallDriver d’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 le retour de l’appel final à DiUninstallDriver .
  • L’application doit effectuer les 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 requis, l’application doit terminer les opérations requises, puis inviter l’utilisateur à redémarrer le système.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows 10 version 1703 et versions ultérieures de Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête newdev.h (include Newdev.h)
Bibliothèque Newdev.lib

Voir aussi

DiUninstallDevice