Operazioni di configurazione della stampante personalizzate
Importante
La piattaforma di stampa moderna è il mezzo preferito di Windows per comunicare con le stampanti. Ti consigliamo di usare il driver di classe IPP di Microsoft, insieme a Print Support Apps (PSA), per personalizzare l'esperienza di stampa in Windows 10 e 11 per lo sviluppo di dispositivi per stampanti.
Per altre informazioni, vedere Piattaforma di stampa moderna e guida alla progettazione dell'app di supporto per la stampa.
Per fornire operazioni di installazione personalizzate della stampante per le stampanti installate utilizzando Ntprint.dll, il programma di installazione predefinito della classe della stampante Windows 2000 e versioni successive, è possibile includere una voce VendorSetup INF nel file INF della stampante.
Attenzione
Tenere presente che VendorSetup è ora deprecato e non deve essere usato da nuovi driver v3 o v4 sviluppati. Questo argomento viene fornito solo per riferimento o per la manutenzione dei driver v3 esistenti che usano già questa direttiva INF.
Se si prevede di visualizzare gli elementi dell'interfaccia utente durante l'installazione di un driver della stampante, è necessario usare una voce VENDORSetup INF. Tuttavia, è consigliabile usare una voce VendorSetup INF solo se necessario. Uno svantaggio significativo è che il suo uso impedisce a un utente comune di installare una stampante con Plug and Play (l'utente deve essere un amministratore in questo caso).
Non è possibile installare un dispositivo usando un'installazione lato server quando il driver di dispositivo non è firmato o quando il file INF del driver (firmato o non firmato) contiene una voce VendorSetup INF. Quando il driver non è firmato, il programma di installazione aggiunge 0x8000 alla classificazione che il driver avrebbe se fosse un driver firmato. Se il file INF del driver contiene una voce VendorSetup , il programma di installazione determina che l'installazione del dispositivo richiede l'interazione dell'utente (che non può verificarsi in un'installazione lato server) e interrompe l'installazione.
Il programma di installazione arresta anche un'installazione lato server se la classificazione del driver è 0x8000 o superiore. L'installazione può procedere quando un utente con privilegi amministrativi accede, in cui il programma di installazione riavvia l'installazione del dispositivo come installazione lato client. Per un driver il cui rango è 0x1000 o maggiore e non è, pertanto, una corrispondenza con l'ID hardware, il programma di installazione avvia la Creazione guidata nuovo hardware nella DLL del nuovo dispositivo, che richiede all'utente di installare un driver.
Se il file INF per un driver firmato contiene una voce VendorSetup e la classificazione del driver è inferiore a 0x1000, il programma di installazione non avvia la Creazione guidata nuovo hardware trovato. Per altre informazioni, vedere How Setup Selects Drivers.For more information, see How Setup Selects Drivers.
Il formato per la voce VendorSetup è il seguente:
VendorSetup= FileName, FunctionName
dove FileName è il nome di una DLL contenente una funzione di installazione e FunctionName è il nome della funzione. La DLL deve essere installata nella directory %windir%\system32. Il programma di installazione della classe della stampante chiama la funzione di installazione in questa DLL solo quando la stampante viene installata da Plug and Play o dalla Procedura guidata Aggiungi stampante. La funzione di installazione non viene chiamata quando viene installato solo un driver, ad esempio tramite l'Aggiunta guidata driver stampante.
Per copiare uno o più file nella directory %windir%\system32, è possibile aggiungere il nome di una sezione definita dal writer INF alla sezione INF DestinationDirs . Nell'esempio seguente la sezione OEMVendorFiles elenca tutti i file da copiare.
[DestinationDirs]
OEMVendorFiles = 11
...
[OEMVendorFiles]
vendor.dll
La funzione specificata da FunctionName deve corrispondere al prototipo seguente:
VOID WINAPI
FunctionName (HWND hWnd, HINSTANCE hInstance, LPSTR lpszCmdLine, UINT nCmdShow);
dove FunctionName è il nome della funzione di installazione. I parametri della funzione e le relative descrizioni sono illustrati nella tabella seguente.
Parametro | Descrizione |
---|---|
hWnd | Specifica l'handle della finestra padre. |
hInstance | Specifica l'handle di istanza del processo chiamante. |
lpszCmdLine | Specifica una stringa ANSI contenente il nome della stampante installata. Questa stringa viene analizzata da FunctionName. |
nCmdShow | Specifica la modalità di visualizzazione della finestra. I flag che controllano la modalità di visualizzazione della finestra sono definiti in Winuser.h. |
Il programma di installazione della classe della stampante chiama la funzione di installazione come uno dei passaggi finali dell'operazione di installazione.