共用方式為


驅動程式控制和裝置控制

重要

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

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

如果驅動程式或印表機硬體提供色彩管理控制件,驅動程式的印表機圖形 DLL 必須在 DEVINFO 結構中設定GCAPS_ICM旗標。

驅動程序必須指出 CMYK 色彩空間的支援(如果適當),如支援 CMYK 色彩空間中所述

印表機圖形 DLL 必須定義下列三個函式:

GDI 會呼叫 DrvIcmCreateColorTransform 函式,為驅動程式提供 列印作業的 ICC 設定檔 。 根據這些配置檔,函式可以建立內部色彩轉換,以在更正色彩資訊時使用。 色彩轉換是驅動程式特定的內部定義,從一個色彩空間對應到另一個色彩空間。 函式會傳回轉換的句柄,GDI 會儲存此句柄。

BRUSHOBJ 和 XLATEOBJ 結構內的旗標會指出色彩管理是由系統或應用程式或驅動程式執行(或裝置)。 在接收這些結構的每個驅動程序實作圖形 DDI 繪圖函式中,必須檢查旗標。 如果系統或應用程式目前正在處理色彩管理,則驅動程式或裝置不得。 如果啟用驅動程式或裝置色彩管理,圖形 DDI 函式必須呼叫BRUSHOBJ_hGetColorTransformXLATEOBJ_hGetColorTransform(或兩者),才能取得要使用的色彩轉換句柄。 句柄將是驅動程序針對其 DrvIcmCreateColorTransform 函式先前呼叫所提供的句柄。

處理專屬色彩管理

對於某些裝置,不論 ICM 是否已啟用,都會執行專屬色彩管理(由驅動程式或硬體執行)。 如果已更正收到的影像數據,這類裝置的驅動程式不得允許執行色彩更正。 如果下列專案可以接收預先更正的數據:

  • 應用程式已將影像色彩更正為「DC 外部」(請參閱 Microsoft Windows SDK 檔)。

  • 系統正在處理色彩管理。

針對上述任一案例,將會設定 brushOBJ 之 flColorType 成員中的 BR_HOST_ICM 旗標和 XLATEOBJ 之 flXlate 成員中的XO_HOST_ICM旗標。 即使 DEVMODEWdmICMMethod 成員DMICMMETHOD_NONE,也可以設定這些旗標。