Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 ulteriori informazioni, consultare la guida alla progettazione dell'app di supporto alla stampa .
Le code di stampa con i driver di stampante XPSDrv sono ospitate nel processo spoolsv.exe. A differenza dei driver di stampante basati su GDI, tuttavia, i filtri di un driver di stampante XPSDrv sono ospitati nel processo di printfilterpipelinesvc.exe, che è separato da spoolsv.exe. Di conseguenza, è necessario collegare il debugger al processo di printfilterpipelinesvc.exe per eseguire il debug dei filtri in un driver della stampante XPSDrv.
Configurazione del timeout del processo printfilterpipelinesvc.exe
Il processo di printfilterpipelinesvc.exe viene avviato quando un processo di stampa viene inviato a una coda di stampa con un driver di stampante XPSDrv. Il processo viene chiuso dopo che è stato inattivo per un periodo di tempo definito da un valore nel Registro di sistema. La natura intermittente del processo di printfilterpipelinesvc.exe rende difficile collegare un debugger a printfilterpipelinesvc.exe per eseguire il debug dei filtri in un driver di stampante XPSDriv.
Tuttavia, è possibile configurare il periodo di timeout di inattività nel Registro di sistema. Il valore PipelineHostTimeout nella sottochiave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print nel Registro di sistema definisce il timeout del processo printfilterpipelinesvc.exe in millisecondi. È possibile aumentare questo valore per semplificare il debug di un driver di stampante XPSDrv. Si noti che il processo di printfilterpipelinesvc.exe viene avviato per analizzare il file di configurazione in modo che, anche se non sono definiti filtri per il driver, il processo verrà comunque avviato.
Configurazione del sistema per il debug
Per eseguire il debug di un driver di stampante XPSDrv, è necessario:
Assegnare la coda di stampa che usa il driver di cui si vuole eseguire il debug a una porta di file.
Impostare il valore PipelineHostTimeout su un valore che darà tempo sufficiente per eseguire il debug del problema.
Invia un lavoro di stampa alla coda di stampa creata nel passaggio 1 per avviare il processo Printfilterpipelinesvc.exe.
Collegare il debugger al processo di Printfilterpipelinesvc.exe e avviare il debug.
Dopo aver collegato il debugger, è possibile impostare punti di interruzione nei moduli di filtro e avviare il debug del driver della stampante.
Se il driver della stampante di cui si vuole eseguire il debug determina la chiusura del processo di printfilterpipelinesvc.exe prima di poter collegare il debugger, è possibile eseguire le operazioni seguenti:
Creare un driver di stampante XPSDrv che non dispone di filtri definiti nel file di configurazione.
Creare una coda di stampa con il driver della stampante creato nel passaggio precedente.
Assegnare la coda di stampa che usa il driver di cui si vuole eseguire il debug per stampare in una porta file.
Impostare il valore PipelineHostTimeout su un valore che darà tempo sufficiente per eseguire il debug del problema.
Invia un processo di stampa alla coda di stampa che hai creato nel passaggio 2.
Collegare il debugger al processo di Printfilterpipelinesvc.exe.
Impostare i punti di interruzione nel driver della stampante di cui si vuole eseguire il debug.
Stampare nella coda di stampa con il driver di cui si vuole eseguire il debug.