DiUninstallDriverW-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 der NULL-Treiber, wenn kein anderes übereinstimmendes Treiberpaket verfügbar ist. Anschließend wird das angegebene Treiberpaket aus dem Treiberspeicher entfernt.

Syntax

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

Parameter

[in, optional] hwndParent

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

[in] InfPath

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

[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 Null festgelegt werden.

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

Achtung: Das Erzwingen der Deinstallation des Treiberpakets kann dazu führen, dass ein kompatibleres 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 How Windows Selects Drivers.

[out, optional] NeedReboot

Ein Zeiger auf einen Wert vom Typ BOOL, der DiUninstallDriver festgelegt, um anzugeben, ob ein Systemneustart erforderlich ist, um die Deinstallation abzuschließen. Dieser Parameter ist optional und kann NULL-werden. Wenn der Parameter angegeben wird und ein Systemneustart erforderlich ist, um die Deinstallation abzuschließen, legt DiUninstallDriver den Wert auf TRUEfest. 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 FALSEfest. Wenn der Parameter NULL- ist und ein Systemneustart erforderlich ist, um die Deinstallation abzuschließen, zeigt DiUninstallDriver ein Dialogfeld für den Systemneustart an. Weitere Informationen zu diesem Parameter finden Sie im folgenden abschnitt Anmerkungen.

Rückgabewert

DiUninstallDriver- gibt TRUE zurück, wenn die Funktion das Treiber paket erfolgreich aus allen Geräten entfernt, auf dem es installiert ist und erfolgreich aus dem Treiberspeicher des Systems entfernt wird. Wenn das Treiberpaket nicht erfolgreich aus dem Treiberspeicher deinstalliert wurde, gibt DiUninstallDriver FALSE zurück, und der protokollierte Fehler kann durch einen Aufruf von GetLastErrorabgerufen werden. Einige der häufigeren Fehlerwerte, die GetLastError- möglicherweise zurückgegeben werden, 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 Treiberspeicherzu 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, die nicht zulässig ist. Weitere Informationen finden Sie unter Installieren von Geräten auf 64-Bit-Systemen.

Bemerkungen

Im Allgemeinen sollte eine Deinstallationsanwendung NeedReboot- auf NULL- festlegen, um DiUninstallDriver zu leiten, um den Benutzer aufzufordern, das System neu zu starten, wenn ein Neustart erforderlich ist, um die Entfernung abzuschließen. Eine Anwendung sollte nur in den folgenden Fällen einen NeedReboot Zeiger 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 an DiUninstallDriver zurückgegeben wird, und in diesem Fall den Benutzer auffordern, das System nach dem letzten Aufruf von DiUninstallDriver neu zu starten.
  • Die Anwendung muss erforderliche Vorgänge ausführen, die nicht DiUninstallDriver-aufrufen, bevor ein Systemneustart erfolgen soll. Wenn ein Systemneustart erforderlich ist, sollte die Anwendung die erforderlichen Vorgänge abschließen und den Benutzer auffordern, das System neu zu starten.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows 10, Version 1703 und neueren Versionen von Windows.
Zielplattform- Desktop
Header- newdev.h (include Newdev.h)
Library Newdev.lib

Siehe auch

DiUninstallDevice