Freigeben über


DeletePrinterDriverEx-Funktion

Die Funktion DeletePrinterDriverEx entfernt den angegebenen Druckertreibernamen aus der Liste der unterstützten Treiber auf einem Server und löscht die dem Treiber zugeordneten Dateien. Diese Funktion kann auch bestimmte Versionen des Treibers löschen.

Syntax

BOOL DeletePrinterDriverEx(
  _In_ LPTSTR pName,
  _In_ LPTSTR pEnvironment,
  _In_ LPTSTR pDriverName,
  _In_ DWORD  dwDeleteFlag,
  _In_ DWORD  dwVersionFlag
);

Parameter

pName [in]

Ein Zeiger auf eine null-beendete Zeichenfolge, die den Namen des Servers angibt, von dem der Treiber gelöscht werden soll. Wenn dieser Parameter NULL ist, löscht die Funktion den Druckertreiber vom lokalen Computer.

pEnvironment [in]

Ein Zeiger auf eine null-beendete Zeichenfolge, die die Umgebung angibt, aus der der Treiber gelöscht werden soll (z. B. Windows NT x86, Windows IA64 oder Windows x64). Wenn dieser Parameter NULL ist, wird der Treibername aus der aktuellen Umgebung der aufrufenden Anwendung und des Clientcomputers (nicht der Zielanwendung und des Druckservers) gelöscht.

pDriverName [in]

Ein Zeiger auf eine NULL-Zeichenfolge, die den Namen des zu löschenden Treibers angibt.

dwDeleteFlag [in]

Die Optionen zum Löschen von Dateien und Versionen des Treibers. Dieser Parameter kann einen oder mehrere der folgenden Werte aufweisen.

Wert Bedeutung
DPD_DELETE_SPECIFIC_VERSION
Löscht die in dwVersionFlag angegebene Version. Dadurch wird nicht sichergestellt, dass der Treiber aus der Liste der unterstützten Treiber für den Server entfernt wird.
DPD_DELETE_UNUSED_FILES
Entfernt alle nicht verwendeten Treiberdateien.
DPD_DELETE_ALL_FILES
Löscht den Treiber nur, wenn alle zugehörigen Dateien entfernt werden können. Der Löschvorgang schlägt fehl, wenn eine der Dateien des Treibers von einem anderen installierten Treiber verwendet wird.

Wenn DPD_DELETE_SPECIFIC_VERSION nicht angegeben ist, löscht die Funktion alle Versionen des Treibers, sofern keine davon verwendet wird. Wenn weder DPD_DELETE_UNUSED_FILES noch DPD_DELETE_ALL_FILES angegeben ist, löscht die Funktion keine Treiberdateien.

dwVersionFlag [in]

Die Version des zu löschenden Treibers. Dieser Parameter kann 0, 1, 2 oder 3 sein. Dieser Parameter wird nur verwendet, wenn dwDeleteFlag das flag DPD_DELETE_SPECIFIC_VERSION enthält.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Nichtzero-Wert.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null.

Bemerkungen

Hinweis

Dies ist eine blockierende oder synchrone Funktion und wird möglicherweise nicht sofort zurückgegeben. Wie schnell diese Funktion zurückgibt, hängt von Laufzeitfaktoren wie Netzwerk-status, Druckserverkonfiguration und Druckertreiberimplementierungsfaktoren ab, die beim Schreiben einer Anwendung schwer vorherzusagen sind. Wenn Sie diese Funktion über einen Thread aufrufen, der die Interaktion mit der Benutzeroberfläche verwaltet, kann die Anwendung nicht reagieren.

Bevor die Funktion die Treiberdateien löscht, ruft sie die DrvDriverEvent-Funktion des Treibers auf, sodass der Treiber alle privaten Dateien entfernen kann, die nicht verwendet werden. Weitere Informationen zu DrvDriverEvent finden Sie im Microsoft Windows Driver Development Kit (DDK).

Wenn die Treiberdateien derzeit geladen werden, verschiebt die Funktion sie in ein temporäres Verzeichnis und markiert sie zum Löschen beim Neustart.

Bevor Sie DeletePrinterDriverEx aufrufen, müssen Sie alle Druckerobjekte löschen, die den Druckertreiber verwenden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Winspool.h (einschließlich Windows.h)
Bibliothek
Winspool.lib
DLL
Winspool.drv
Unicode- und ANSI-Name
DeletePrinterDriverExW (Unicode) und DeletePrinterDriverExA (ANSI)

Siehe auch

Drucken

Druckspooler-API-Funktionen

AddPrinterDriverEx