Angepasste Druckereinrichtungsvorgänge
Wichtig
Die moderne Druckplattform ist die bevorzugte Methode von Windows für die Kommunikation mit Druckern. Wir empfehlen die Verwendung des Microsoft IPP-Treibers für die Posteingangsklasse zusammen mit Print Support Apps (PSA), um das Druckverhalten in Windows 10 und 11 für die Entwicklung von Druckergeräten anzupassen.
Weitere Informationen finden Sie unter Moderne Druckplattform und im Designhandbuch für die Drucksupport-App.
Um angepasste Druckereinrichtungsvorgänge für Drucker bereitzustellen, die mit Ntprint.dll installiert sind, können Sie standardmäßig das Installationsprogramm für Windows 2000 und höher für Druckerklassen einen VendorSetup INF-Eintrag in die INF-Datei des Druckers einfügen.
Achtung
Beachten Sie, dass VendorSetup jetzt veraltet ist und nicht von neuen v3- oder v4-Treibern verwendet werden sollte, die Sie entwickeln. Dieses Thema wird nur als Referenz oder für die Wartung vorhandener v3-Treiber bereitgestellt, die diese INF-Direktive bereits verwenden.
Wenn Sie beabsichtigen, Benutzeroberflächenelemente während der Installation eines Druckertreibers anzuzeigen, müssen Sie einen VendorSetup INF-Eintrag verwenden. Sie sollten jedoch nur dann einen VendorSetup INF-Eintrag verwenden, wenn dies erforderlich ist. Ein erheblicher Nachteil besteht darin, dass die Verwendung verhindert, dass ein normaler Benutzer einen Drucker mit Plug & Play installiert (der Benutzer muss in diesem Fall ein Administrator sein).
Es ist nicht möglich, ein Gerät mithilfe einer serverseitigen Installation zu installieren, wenn entweder der Gerätetreiber nicht signiert ist oder wenn die INF-Datei des Treibers (signiert oder nicht signiert) einen VendorSetup INF-Eintrag enthält. Wenn der Treiber nicht signiert ist, fügt Setup 0x8000 der Rangfolge hinzu, die der Treiber hätte, wenn er ein signierter Treiber wäre. Wenn die INF-Datei des Treibers einen VendorSetup-Eintrag enthält, bestimmt Setup, dass die Geräteinstallation eine Benutzerinteraktion erfordert (die in einer serverseitigen Installation nicht auftreten kann) und hält die Installation an.
Setup stoppt auch eine serverseitige Installation, wenn der Rang des Treibers 0x8000 oder größer ist. Die Installation kann fortgesetzt werden, wenn sich ein Benutzer mit Administratorrechten anmeldet, zu dem Setup die Geräteinstallation als clientseitige Installation neu startet. Für einen Treiber, dessen Rang 0x1000 oder größer ist und daher keine Hardware-ID-Übereinstimmung ist, startet Setup den Assistenten „Neue Hardware gefunden” in der DLL für neue Geräte, der den Benutzer auffordert, einen Treiber zu installieren.
Wenn die INF-Datei für einen signierten Treiber einen VendorSetup-Eintrag enthält und der Rang des Treibers kleiner als 0x1000 ist, startet Setup den Assistenten für gefundene neue Hardware nicht. Weitere Informationen finden Sie unter Auswählen von Treibern durch Setup.
Das Format für den VendorSetup-Eintrag lautet wie folgt:
VendorSetup= FileName, FunctionName
Dabei ist FileName der Name einer DLL, die eine Setupfunktion enthält, und FunctionName ist der Name der Funktion. Die DLL muss im Verzeichnis %windir%\system32 installiert sein. Das Druckerklassen-Installationsprogramm ruft die Setupfunktion in dieser DLL nur auf, wenn der Drucker von Plug & Play oder vom Assistenten zum Hinzufügen von Druckern installiert wird. Die Setupfunktion wird nicht aufgerufen, wenn nur ein Treiber installiert wird (z. B. mithilfe des Assistenten zum Hinzufügen von Druckertreibern).
Um eine oder mehrere Dateien in das Verzeichnis %windir%\system32 zu kopieren, können Sie den Namen eines INF-Writer-definierten Abschnitts zum Abschnitt INF DestinationDirs hinzufügen. Im folgenden Beispiel werden im Abschnitt OEMVendorFiles alle zu kopierenden Dateien aufgelistet.
[DestinationDirs]
OEMVendorFiles = 11
...
[OEMVendorFiles]
vendor.dll
Die von FunctionName angegebene Funktion muss mit dem folgenden Prototyp übereinstimmen:
VOID WINAPI
FunctionName (HWND hWnd, HINSTANCE hInstance, LPSTR lpszCmdLine, UINT nCmdShow);
Dabei ist FunctionName der Name der Setupfunktion. Die Parameter der Funktion und ihre Beschreibungen sind in der folgenden Tabelle aufgeführt.
Parameter | Beschreibung |
---|---|
hWnd | Gibt das Handle des übergeordneten Fensters an. |
hInstance | Gibt das Instanzhandle des aufrufenden Prozesses an. |
lpszCmdLine | Gibt eine ANSI-Zeichenfolge an, die den Namen des Druckers enthält, der installiert wurde. Diese Zeichenfolge wird von FunctionName analysiert. |
nCmdShow | Gibt an, wie das Fenster angezeigt werden soll. Die Flags, die steuern, wie das Fenster angezeigt wird, werden in Winuser.h definiert. |
Das Druckerklassen-Installationsprogramm ruft die Setupfunktion als eines der letzten Schritte im Installationsvorgang auf.