Share via


DiUninstallDriverA-Funktion (newdev.h)

Die DiUninstallDriver-Funktion entfernt ein Treiberpaket von allen Geräten, auf denen es installiert ist, indem diese Geräte mit einem anderen übereinstimmenden Treiberpaket installiert werden, sofern verfügbar, oder dem NULL-Treiber, wenn kein anderes übereinstimmendes Treiberpaket verfügbar ist. Anschließend wird das angegebene Treiberpaket aus dem Treiberspeicher entfernt.

Syntax

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

Parameter

[in, optional] hwndParent

Ein Handle für das Fenster der obersten Ebene, das DiUninstallDriver verwenden sollte, um alle Benutzeroberflächenkomponenten anzuzeigen, die der Deinstallation des Treibers zugeordnet sind. Dieser Parameter ist optional und kann auf NULL festgelegt werden.

[in] InfPath

Ein Zeiger auf eine NULL-beendete Zeichenfolge, die den vollqualifizierten Pfad der INF-Datei für das Treiberpaket angibt.

[in] Flags

Ein Wert vom Typ DWORD, der null oder mindestens eine der folgenden Flags angibt: DIURFLAG_NO_REMOVE_INF. In der Regel sollte dieses Flag auf 0 festgelegt werden.

Wenn dieses Flag null ist, entfernt DiUninstallDriver das Treiberpaket von allen Geräten, auf denen es installiert ist, indem diese Geräte mit einem anderen übereinstimmenden Treiberpaket installiert werden, sofern verfügbar, oder dem NULL-Treiber, wenn kein anderes übereinstimmendes Treiberpaket verfügbar ist. Wenn dieses Flag jedoch auf DIURFLAG_NO_REMOVE_INF festgelegt ist, entfernt DiUninstallDriver das Treiberpaket von allen Geräten, auf dem es installiert ist, aber das Treiberpaket nicht aus dem Treiberspeicher.

Vorsicht: Das Erzwingen der Deinstallation des Treiberpakets kann dazu führen, dass ein kompatibler oder neueres Treiberpaket durch einen weniger kompatiblen oder älteren Treiber ersetzt wird.
 

Informationen dazu, wie Windows ein Treiberpaket für ein Gerät auswählt, finden Sie unter So wählt Windows Treiber aus.

[out, optional] NeedReboot

Ein Zeiger auf einen Wert vom Typ BOOL, den DiUninstallDriver festlegt, um anzugeben, ob ein Systemneustart erforderlich ist, um die Deinstallation abzuschließen. Dieser Parameter ist optional und kann NULL sein. Wenn der Parameter angegeben wird und ein Neustart des Systems erforderlich ist, um die Deinstallation abzuschließen, legt DiUninstallDriver den Wert auf TRUE fest. In diesem Fall muss der Aufrufer den Benutzer auffordern, das System neu zu starten. Wenn dieser Parameter angegeben wird und kein Systemneustart erforderlich ist, um die Deinstallation abzuschließen, legt DiUninstallDriver den Wert auf FALSE fest. Wenn der Parameter NULL ist und ein Systemneustart erforderlich ist, um die Deinstallation abzuschließen, zeigt DiUninstallDriver ein Dialogfeld Systemneustart an. Weitere Informationen zu diesem Parameter finden Sie im abschnitt Hinweise .

Rückgabewert

DiUninstallDriver gibt TRUE zurück, wenn die Funktion das Treiberpaket erfolgreich von allen Geräten entfernt, auf dem es installiert ist, und erfolgreich aus dem Treiberspeicher des Systems entfernt wurde. Wenn das Treiberpaket nicht erfolgreich aus dem Treiberspeicher deinstalliert wurde, gibt DiUninstallDriverFALSE zurück, und der protokollierte Fehler kann durch einen Aufruf von GetLastError abgerufen werden. Einige der häufigeren Fehlerwerte, die GetLastError möglicherweise zurückgibt, sind wie folgt:

Rückgabecode Beschreibung
ERROR_ACCESS_DENIED
Der Aufrufer verfügt nicht über Administratorrechte. Standardmäßig erfordert Windows, dass der Aufrufer über Administratorrechte verfügt, um ein Treiberpaket aus dem Treiberspeicher zu deinstallieren.
ERROR_FILE_NOT_FOUND
Der Pfad der angegebenen INF-Datei ist nicht vorhanden.
ERROR_INVALID_FLAGS
Der für Flags angegebene Wert ist nicht gleich null oder DIURFLAG_NO_REMOVE_INF.
ERROR_IN_WOW64
Die aufrufende Anwendung ist eine 32-Bit-Anwendung, die versucht, in einer 64-Bit-Umgebung auszuführen, was nicht zulässig ist. Weitere Informationen finden Sie unter Installieren von Geräten auf 64-Bit-Systemen.

Hinweise

Im Allgemeinen sollte eine Deinstallationsanwendung NeedReboot auf NULL festlegen, um DiUninstallDriver anweisen, den Benutzer zum Neustart des Systems aufzufordern, wenn ein Neustart erforderlich ist, um die Entfernung abzuschließen. Eine Anwendung sollte einen NeedReboot-Zeiger nur in den folgenden Fällen bereitstellen:

  • Die Anwendung muss DiUninstallDriver mehrmals aufrufen, um eine Deinstallation abzuschließen. In diesem Fall sollte die Anwendung aufzeichnen, ob ein TRUENeedReboot-Wert von einem der Aufrufe von DiUninstallDriver zurückgegeben wird. Wenn dies der Fall ist, sollte der Benutzer aufgefordert werden, das System neu zu starten, nachdem der letzte Aufruf von DiUninstallDriver zurückgegeben wird.
  • Die Anwendung muss die erforderlichen Vorgänge ausführen, mit Ausnahme des Aufrufens von DiUninstallDriver, bevor ein Systemneustart erfolgen sollte. Wenn ein Systemneustart erforderlich ist, sollte die Anwendung die erforderlichen Vorgänge abschließen und den Benutzer dann auffordern, das System neu zu starten.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows 10 Version 1703 und höher von Windows.
Zielplattform Desktop
Kopfzeile newdev.h (include Newdev.h)
Bibliothek Newdev.lib

Weitere Informationen

DiUninstallDevice