印表機 INF 檔案專案
重要
新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。
如需詳細資訊,請參閱 新式列印平臺 和 列印支援應用程式設計指南。
若要讓安裝應用程式在印表伺服器上安裝印表機,它必須呼叫多任務緩衝處理器的 AddPrinterDriverEx 函式以載入驅動程式檔案,然後呼叫多任務緩衝處理器的 AddPrinter 函式,讓印表機可在伺服器上使用。
AddPrinterDriverEx 函式需要DRIVER_INFO_3結構做為輸入,AddPrinter 函式需要PRINTER_INFO_2結構做為輸入。 默認印表機類別安裝程式Ntprint.dll讀取印表機 INF 檔案,以取得在呼叫函式之前必須放在這些結構中的字串值。
已定義Ntprint.dll辨識之印表機驅動程式的一組 INF 檔案專案。 這些專案格式如下:
EntryName = 值
其中 EntryName 是識別專案且 Value 是指派給專案的字串值。
下表列出應該包含在印表機 INF 檔案中的 INF 檔案專案。 針對每個項目,數據表包含下列專案:
應指派給專案的值。
如果未定義專案,則Ntprint.dll使用的預設值。
結構成員,Ntprint.dll放置專案值的指標。
INF 檔案專案 | 值 | 預設值(如果未指定項目) | 結構成員 |
---|---|---|---|
ConfigFile | 驅動程式印表機 介面 DLL 的名稱。 | 為 DriverFile 指定的值。 | DRIVER_INFO_3 結構的 pConfigFile 成員 |
DataFile | 驅動程式相關聯數據檔的名稱,例如PPD檔案。 | INF 檔案內的驅動程式區段名稱。 | DRIVER_INFO_3 結構的 pDataFile 成員 |
DefaultDataType | 不適用於 NT 型作業系統。 | ||
DriverCategory | 請參閱 附注 1,請遵循下表。 | 如果 INF 檔案未指定驅動程式類別(例如大部分 v3 驅動程式),則假設驅動程式的類別是 PrintFax.Printer。 | 無 |
DriverFile | 驅動程式印表機 圖形 DLL 的名稱。 | INF 檔案內的驅動程式區段名稱。 | DRIVER_INFO_3 結構的 pDriverPath 成員 |
ExcludeFromSelect | 請參閱 下表後面的附註 2。 | 無 | 無 |
HelpFile | 介面 DLL 說明檔的名稱。 | 無。 未指定說明檔。 | DRIVER_INFO_3 結構的 pHelpFile 成員 |
LanguageMonitor | 要與印表機驅動程式相關聯的語言監視器名稱。 請參閱 LanguageMonitor 值格式一節。 | 無。 未指定語言監視器。 | DRIVER_INFO_3 結構的 pMonitorName 成員 |
PrintProcessor | 要與印表機佇列相關聯的印表處理器名稱。 請參閱 PrintProcessor 值格式一節。 | 會使用預設列印處理器 (WinPrint)。 | DRIVER_INFO_2 結構的 pPrintProcessor 成員 |
VendorSetup | 廠商提供的 DLL 內函式的名稱,可處理 自訂的印表機安裝作業。 | 無。 請參閱 附注 3,請遵循下表。 | 無 |
InboxVersionRequired | INF 參考之所有核心驅動程式的最低可接受的版本。 如需 InboxVersionRequired 的詳細資訊,請參閱 INF InboxVersionRequired 指示詞。 | 無 | 無 |
1 (DriverCategory):如果 INF 檔案指定類別,這些是指定類別的允許值 (0 到 5):
驅動程序類別 | 值 | Description |
---|---|---|
PrintFax.Printer | 0 | 印列,代表連線到電腦的印表機(透過本機或網路通訊協定),或是另一部電腦上實體印表機的 Proxy。 當使用者列印到實體印表機時,結果為紙張,上面印有檔。 |
PrintFax.Fax | 1 | 代表實體或虛擬傳真機的列印佇列。 當使用者列印到傳真印表機時,結果(可能在進一步使用者互動之後)是傳送傳真。 |
PrintFax.Printer.File | 2 | 產生虛複製檔的列印佇列。 當使用者列印到檔案印表機時,用戶必須先輸入檔名,然後多任務緩衝處理器會將列印的輸出傳送至該檔案。 檔案印表機一律需要檔名,但不需要其他用戶輸入。 當使用者沒有提供檔名的選項時,應用程式會產生可供多任務緩衝處理程式使用的檔名。 檔案印表機的常見範例包括MICROSOFT XPS 檔寫入器 (MXDW) 和 PDF 寫入器。 |
PrintFax.Printer.Virtual | 3 | 具有驅動程式的列印佇列,會對列印後台處理程式不透明列印數據執行一些作業。 當使用者列印到虛擬印表機時,某些可能的結果包括將列印檔儲存在計算機上某處、傳送至另一個應用程式,或透過電子郵件傳送。 列印至虛擬印表機的常見範例是列印文件傳送至 Microsoft Office OneNote 印表機的案例。 當使用者選取印至虛擬印表機時,可能需要進一步的用戶互動,由驅動程式或其他驅動程式元件起始。 如需詳細資訊,請參閱 印表機 INF 檔案中的虛擬印表機。 |
PrintFax.Printer.Service | 4 | 代表列印服務的列印佇列。 當用戶選取列印至服務時,結果(可能在進一步使用者互動之後)是第三方列印服務會收到列印的內容。 然後,使用者可以移至實體商務位置,以挑選列印的輸出。 |
PrintFax.Printer.3D | 5 | 列印佇列,表示 3D 印表機的數據流。 如果意外指定此類別給 2D 印表機 (一般印表機),則 2D 印表機只會輸出資料流的 2D 內容。 如果 3D 印表機已正確指定此類別,但 2D 數據流會傳送至 3D 印表機,則 3D 印表機不會產生任何輸出。 |
另請注意,v4 列印驅動程式會使用指令清單檔案。 如需詳細資訊,請參閱 V4 驅動程式指令清單。
注意
2 (ExcludeFromSelect):不應該顯示在 [選取裝置] 對話框或 [新增印表機精靈] 中不應顯示的裝置裝置標識碼。 針對印表機,這包括 INF 檔案中具有重複裝置描述之裝置的所有 PnP 專案;例如,具有多個專案用於紅外和平行列舉或另一輛總線的裝置。 ExcludeFromSelect 專案與此表格中所有其他專案不同,必須出現在 INF 檔案的 [控件旗標] 區段中。 如需詳細資訊,請參閱 INF ControlFlags 一節。
注意
3 (VendorSetup):如果未指定 VendorSetup 專案,則不會執行自定義的設定作業。 特別是,除非使用 VendorSetup INF 專案,否則在列印處理器、印表監視器或印表機驅動程式安裝期間不允許任何使用者介面。 如需這個項目的詳細資訊,請參閱 自定義印表機安裝作業。
重要
VendorSetup 現在已被取代,您開發的任何 新的 v3 或 v4 驅動程式都不應使用。 有關 VendorSetup 的資訊僅供參考,或維護已使用此 INF 指示詞的現有 v3 驅動程式。
印表機 INF 檔案專案通常會在 印表機 INF 檔案數據區段中指定。 如需範例,請參閱 範例印表機 INF 檔案。
LanguageMonitor 值格式
當印表機 INF 檔案中包含 LanguageMonitor 專案時,值格式如下所示:
LanguageMonitor=“ MonitorName , MonitorDLLName ”
其中 MonitorName 是代表監視器顯示名稱的文字字串,而 MonitorDLLName 是監視 DLL 的檔名。
PrintProcessor 值格式
當 PrintProcessor 專案包含在印表機 INF 檔案中時,值格式如下:
PrintProcessor=“ PrintProcessorName , PrintProcessorDLLName ”
其中 PrintProcessorName 是代表列印處理器顯示名稱的文字字串,而 PrintProcessorDLLName 是 DLL 的檔名。
相依檔案
相依檔案是印表機驅動程式檔案,隨附於 Printer INF 檔案安裝區段中,其 dirid 為 66000,但未指派給 DriverFile、DataFile、ConfigFile 或 HelpFile 專案。
下列範例顯示 INF 檔案的摘錄,該檔案會藉由將它們複製到印表機驅動程式目錄來安裝三個相依檔案(也就是 dirid 66000 指定的目錄):
[Contoso]
%PRINTER_MODEL_123%=Contoso_Install_Section,LPTENUM\Contoso_1284.4_P29C5
...
[Contoso_Install_Section]
CopyFiles=@Contoso.ini,@Contoso.xml,@Contoso.dll
...
[DestinationDirs]
DefaultDestDir=66000
...
[Strings]
PRINTER_MODEL_123 = "Contoso Printer Model 123"
在此範例中,Contoso.ini是印表機 INI 檔案,Contoso.xml是 bidi 擴展名檔案,Contoso.dll是自定義元件。 如需印表機 INI 檔案、bidi 延伸模組檔案和自定義元件的詳細資訊,請參閱 安裝自定義驅動程式元件 和 雙向通訊架構。
點與列印 作業會在用戶端上安裝驅動程式和驅動程式相依檔案。
每個印表機型號最多可以指定 64 個相依檔案。