Anpassade utskriftsinstallationsåtgärder
Viktig
Den moderna utskriftsplattformen är Windows bästa sätt att kommunicera med skrivare. Vi rekommenderar att du använder Microsofts IPP-drivrutin för inkorgsklass tillsammans med Print Support Apps (PSA) för att anpassa utskriftsupplevelsen i Windows 10 och 11 för enhetsutveckling av skrivare.
Mer information finns i designguiden för Print-supportappen.
Om du vill tillhandahålla anpassade utskriftsinstallationsåtgärder för skrivare som installeras med Ntprint.dll, standardinstallationsprogrammet för Windows 2000 och senare skrivarklass, kan du inkludera en VendorSetup- INF-post i skrivarens INF-fil.
Försiktighet
Tänk på att VendorSetup nu är inaktuell och bör inte användas av några nya v3- eller v4-drivrutiner som du utvecklar. Det här avsnittet tillhandahålls endast som referens eller för underhåll av befintliga v3-drivrutiner som redan använder det här INF-direktivet.
Om du planerar att visa användargränssnittselement under installationen av en skrivardrivrutin måste du använda en VendorSetup- INF-post. Du bör dock endast använda en VendorSetup- INF-post om det är nödvändigt. En betydande nackdel är att dess användning hindrar en vanlig användare från att installera en skrivare med Plug and Play (användaren måste vara administratör i det här fallet).
Det går inte att installera en enhet med hjälp av en installation på serversidan när enhetsdrivrutinen antingen är osignerad eller när INF-filen (signerad eller osignerad) innehåller en VendorSetup- INF-post. När drivrutinen är osignerad lägger installationsprogrammet till 0x8000 till den rangordning som drivrutinen skulle ha om det var en signerad drivrutin. Om drivrutinens INF-fil innehåller en VendorSetup- post avgör installationsprogrammet att enhetsinstallationen kräver användarinteraktion (vilket inte kan ske i en installation på serversidan) och stoppar installationen.
Installationen stoppar också en installation på serversidan om drivrutinsrankningen är 0x8000 eller större. Installationen kan fortsätta när en användare med administratörsbehörighet loggar in, då installationsprogrammet startar om enhetsinstallationen som en installation på klientsidan. För en drivrutin vars rangordning är 0x1000 eller större, och därför inte är en maskinvaru-ID-matchning, startar installationsprogrammet guiden Hitta ny maskinvara i DLL för ny enhet, som uppmanar användaren att installera en drivrutin.
Om INF-filen för en signerad drivrutin innehåller en VendorSetup post, och drivrutinens rangordning är mindre än 0x1000, startar installationsprogrammet inte guiden Hitta ny maskinvara. Mer information finns i Hur installation väljer drivrutiner.
Formatet för posten VendorSetup är följande:
VendorSetup= FileName, FunctionName
där FileName är namnet på en DLL som innehåller en installationsfunktion och FunctionName är namnet på funktionen. DLL-filen måste installeras i katalogen %windir%\system32. Installationsprogrammet för skrivarklassen anropar installationsfunktionen i den här DLL-filen endast när skrivaren installeras av Plug and Play eller av guiden Lägg till skrivare. Installationsfunktionen anropas inte när endast en drivrutin är installerad (till exempel med hjälp av guiden Lägg till skrivardrivrutin).
Om du vill kopiera en eller flera filer till katalogen %windir%\system32 kan du lägga till namnet på ett INF-skrivardefinierat avsnitt i avsnittet INF DestinationDirs. I följande exempel visar avsnittet OEMVendorFiles alla filer som ska kopieras.
[DestinationDirs]
OEMVendorFiles = 11
...
[OEMVendorFiles]
vendor.dll
Funktionen som anges av FunctionName måste matcha följande prototyp:
VOID WINAPI
FunctionName(HWND hWnd, HINSTANCE hInstance, LPSTR lpszCmdLine, UINT nCmdShow);
där FunctionName är namnet på installationsfunktionen. Funktionens parametrar och deras beskrivningar visas i följande tabell.
Parameter | Beskrivning |
---|---|
hWnd | Anger handtaget för förälderfönstret. |
hInstance | Anger instanshandtaget för anropsprocessen. |
lpszCmdLine | Anger en ANSI-sträng som innehåller namnet på den skrivare som installerades. Den här strängen parsas av FunctionName. |
nCmdShow | Anger hur fönstret ska visas. Flaggorna som styr hur fönstret visas definieras i Winuser.h. |
Installationsprogrammet för skrivarklassen anropar installationsfunktionen som ett av de sista stegen i installationsåtgärden.