共用方式為


印表機圖形 DLL 簡介

重要

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

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

印表機圖形 DLL 會實作使用圖形 DDI 中所述 的Drv前置圖形 DDI 函式。 這些 DLL 有下列兩個責任:

  • 協助 GDI 轉譯列印作業。

    印表機圖形 DLL 可以提供圖形 DDI 繪圖函式來處理必須以裝置特定方式執行的繪圖作業,因此無法由 GDI 的轉譯引擎獨佔處理。

  • 將轉譯的數據流傳遞至多任務緩衝處理器。

    印表機圖形 DLL 通常會在 RAW 資料類型(包括命令順序)中產生輸出資料流,而多任務緩衝處理器可以透過印表監視器傳送至印表機硬體。

印表機圖形 DLL 必須提供的轉譯協助量是印表機類型特定的,視硬體的繪圖功能而定,並包含下列案例:

  • GDI 轉譯引擎會使用 GDI 管理的介面來執行所有轉譯。 圖形 DLL 不提供任何 DDI 繪圖函式。

  • 圖形 DLL 提供一些圖形 DDI 繪圖函式,以搭配 GDI 的轉譯引擎使用 GDI 管理的介面運作。 圖形 DLL 所提供的圖形 DDI 繪圖函式可以選擇性地回呼 GDI 轉譯引擎的 GDI 支援服務

  • 圖形 DLL 會提供圖形 DDI 繪圖函式並使用裝置管理的介面,以執行所有轉譯。

例如, Microsoft通用印表機驅動程式 (Unidrv) 使用 GDI 管理的介面,並提供一些圖形 DDI 繪圖功能,而 Microsoft PostScript 印表機驅動程式 會使用裝置管理的介面。

如需在圖形驅動程式中提供轉譯協助的詳細資訊,請參閱 Surface TypesUsing the Graphics DDI

下圖說明當應用程式使用 GDI 建立列印作業時所發生的數據流。 EMF 錄製和播放會結合在這些數位中。

第一張圖表描述使用者模式印表機圖形 DLL。

注意 在 Windows Vista 印表機圖形 DLL 中,只能在使用者模式中執行。 如需詳細資訊,請參閱 選擇使用者模式或核心模式

說明使用者模式印表機圖形 dll 的圖表。

第二個圖表描述內核模式印表機圖形 DLL。

使用內核模式印表機圖形 dll 印表作業數據流。

請注意,在這些圖表中,如果 GDI 的輸出格式是 增強型元檔 (EMF),則除非 EMF 列印處理器播放 EMF 記錄,否則列印機圖形 DLL 不會收到工作。 另請注意,EMF 列印處理器會將輸出格式變更為非EMF。

圖表說明完全本機環境。 如果印表機連線到伺服器,則 EMF 記錄通常是由用戶端 GDI 轉譯引擎 (GRE) 複本所產生,然後多任務緩衝處理至傳送至伺服器的本機檔案。 伺服器多任務緩衝處理器的複本會讀取檔案,並將記錄傳送至伺服器的EMF印表處理器,而伺服器的 GRE 複本會呼叫伺服器的印表機圖形 DLL。