共用方式為


偵錯 XPSDrv 印表機驅動程式

重要

新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。

如需詳細資訊,請參閱 新式列印平臺列印支援應用程式設計指南

具有 XPSDrv 印表機驅動程式的列印佇列會裝載於spoolsv.exe程式中。 不過,不同於以 GDI 為基礎的印表機驅動程式,XPSDrv 印表機驅動程式的篩選會裝載於printfilterpipelinesvc.exe程式中,這與spoolsv.exe分開。 因此,您必須將調試程式附加至printfilterpipelinesvc.exe進程,以偵錯 XPSDrv 印表機驅動程式中的篩選。

設定printfilterpipelinesvc.exe處理逾時

當列印作業傳送至具有 XPSDrv 印表機驅動程式的列印佇列時,printfilterpipelinesvc.exe程式就會啟動。 進程會在登錄中的值所定義的一段時間內處於非使用中狀態之後結束。 printfilterpipelinesvc.exe程式的間歇性本質使得調試程式難以將調試程式附加至printfilterpipelinesvc.exe,以偵錯 XPSDriv 印表機驅動程式中的篩選。

不過,您可以在登錄中設定閑置逾時期間。 登錄中 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Print 子機碼下的 PipelineHostTimeout 值會定義printfilterpipelinesvc.exe進程逾時毫秒。 您可以增加此值,以便更輕鬆地偵錯 XPSDrv 印表機驅動程式。 請注意,printfilterpipelinesvc.exe程式已啟動來剖析組態檔,因此即使驅動程式沒有定義任何篩選條件,程式仍會啟動。

設定系統以進行偵錯

若要偵錯 XPSDrv 印表機驅動程式,您必須:

  1. 指派使用您要偵錯以列印到檔案埠之驅動程式的列印佇列。

  2. 將 PipelineHostTimeout 值設定為值,讓您有足夠的時間來偵錯問題。

  3. 將列印作業傳送至您在步驟 1 中建立的列印佇列,以啟動Printfilterpipelinesvc.exe程式。

  4. 將調試程式附加至Printfilterpipelinesvc.exe進程並開始偵錯。

附加調試程序之後,您可以在篩選模組中設定斷點,並開始偵錯印表機驅動程式。

如果您想要偵錯的印表機驅動程式會導致printfilterpipelinesvc.exe進程結束,然後才能附加除錯程式,您可以執行下列動作:

  1. 建立未在組態檔中定義任何篩選條件的 XPSDrv 印表機驅動程式。

  2. 使用在上一個步驟中建立的印表機驅動程式建立列印佇列。

  3. 指派使用您要偵錯以列印到檔案埠之驅動程式的列印佇列。

  4. 將 PipelineHostTimeout 值設定為值,讓您有足夠的時間來偵錯問題。

  5. 將列印作業傳送至您在步驟 2 中建立的列印佇列。

  6. 將調試程式附加至Printfilterpipelinesvc.exe進程。

  7. 在您要偵錯的印表機驅動程式中設定斷點。

  8. 使用您要偵錯的驅動程式,列印至列印佇列。