共用方式為


如何在印表機驅動程式的 INF 檔案中使用裝飾

重要

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

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

使用SP1和更新版本在Windows Server 2003 上執行的印表機驅動程式,或在64位版本的Windows XP 和更新版本上執行,且該目標 x64 架構必須包含裝飾的 INF模型一節 ,如下列範例所示。 不過,由於驅動程式可能會在 Windows Server 2003 SP1 之前的 Windows 版本上安裝為其他驅動程式,因此 INF 檔案也必須提供未編碼的 INF 模型區段。 也建議使用裝飾來安裝Itanium型驅動程式。

下列範例示範如何撰寫可用於安裝單一處理器架構驅動程式的 INF 檔案。

x64 驅動程式範例

第一個範例示範如何使用未編碼的 INF 模型區段,在執行 Windows XP 或 Windows Server 2003 的 x86 或 Itanium 型機器上安裝 x64 驅動程式。 第二個 INF Models 區段中的 NTamd64 裝飾會導致 x64 驅動程式安裝在任何執行 Windows Server 2003 SP1 或更新版本的處理器架構的電腦上。

[MANUFACTURER]
%Acme Corp.% = Acme, NTamd64
...

[Acme]
"Acme LaserWhiz 100 PS" = Acme100_x64.PPD, <hardware IDs and compatible IDs for this printer>

[Acme.NTamd64]
"Acme LaserWhiz 100 PS" = Acme100_x64.PPD, <hardware IDs and compatible IDs for this printer>

Itanium 型驅動程式範例

下一個範例示範如何使用未編碼的 INF 模型區段,在 Windows XP 之前或執行 Windows XP 或 Windows Server 2003 的 x86 計算機上,於 WINDOWS XP 之前的版本上安裝 Itanium 型驅動程式。 第二個 INF Models 區段中的 NTia64 裝飾會導致 Itanium 型驅動程式安裝在任何執行 Windows Server 2003 SP1 或更新版本的處理器架構的電腦上。

[MANUFACTURER]
%Acme Corp.% = Acme, NTia64
...

[Acme]
"Acme LaserWhiz 100 PS" = Acme100_ia64.PPD, <hardware IDs and compatible IDs for this printer>

[Acme.NTia64]
"Acme LaserWhiz 100 PS" = Acme100_ia64.PPD, <hardware IDs and compatible IDs for this printer>

x86 驅動程式範例

在下一個範例中,INF Models 區段不需要裝飾。 因為假設未編碼的區段參考 x86 驅動程式,所以不需要指定處理器架構。 允許新增具有 NTx86 裝飾的 INF 模型區段,但請記住,在 Windows Server 2003 與 SP1 之前,您也應該包含 Windows 版本未編碼的 INF 模型區段。

[MANUFACTURER]
%Acme Corp.% = Acme
...

[Acme]
"Acme LaserWhiz 100 PS" = Acme100_x86.PPD, <hardware IDs and compatible IDs for this printer>

在單一 INF 檔案中支援多個架構

本節說明如何撰寫可用於為多個處理器架構安裝印表機驅動程式的 INF 檔案。

若要建立可用於安裝多個架構驅動程式的 INF 檔案,請撰寫 INF 模型區段,然後視需要製作多個複本,讓支援的每個架構都有自己的 INF 模型區段。 將每個處理器架構的適當裝飾新增至每個產生的 INF 模型區段,如下列範例所示。

[MANUFACTURER]
%Acme Corp% = Acme, NTamd64, NTia64
...

;; Used to install
;;    - a driver of any architecture type, on a machine running Windows 2000
;;    - a driver of any architecture type, on an x86 machine running Windows XP or Windows Server 2003
;;    - an x86 driver on a machine of any architecture type, running Windows Server 2003 with SP1
[Acme]
%Acme Model 1% = Acme100PS, <hardware IDs and compatible IDs for this printer>

;; Used to install
;;    - an x64 driver on a machine of any architecture type, running Windows Server 2003 with SP1
[Acme.NTamd64]
%Acme Model 1% = Acme100PS, <hardware IDs and compatible IDs for this printer>

;; Used to install
;;    - a driver of any architecture type, on an Itanium-based machine running Windows XP or Windows Server 2003
;;    - an Itanium-based driver on a machine of any architecture type, running Windows Server 2003 with SP1
[Acme.NTia64]
%Acme Model 1% = Acme100PS, <hardware IDs and compatible IDs for this printer>

;; DDInstall Section. 
;; This sample assumes that all three versions of the driver 
;; use the same DDInstall section.
[Acme100PS]
CopyFiles = MyDriverFile.dll, ...

[DestinationDirs]
DefaultDestDir=66000

[SourceDisksNames.x86]
1= %Location%,,,

[SourceDisksFiles.x86]
MyDriverFile.dll = 1,\i386
...

[SourceDisksNames.amd64]
1= %Location%,,,

[SourceDisksFiles.amd64]
MyDriverFile.dll = 1,\amd64
...

[SourceDisksNames.ia64]
1= %Location%,,,

[SourceDisksFiles.ia64]
MyDriverFile.dll = 1,\ia64
...

[Strings]
Acme Corp = "Acme Corporation"
Acme Model 1 = "Acme LaserWhiz 100 PS"
Location = "Acme CD ROM"