Windows印表機驅動開發

2021-09-29 16:31:43 字數 1592 閱讀 2111

開發印表機驅動程式通常有兩種途徑:一是開發乙個完整的驅動程式,二是利用微軟提供的通用印表機驅動程式

( unidrv )  

開發小型驅動程式

( minidriver )  

。開發乙個完整的驅動程式工作量大且過程複雜,因此我們採用通用印表機驅動程式

+ 小型驅動程式來開發印表機驅動程式。

在windows中,印表機驅動的作用是編寫一組介面。應用程式呼叫的gdi函式會變成相應的ddi函式,印表機驅動提供的這組介面負責將ddi函式轉變為印表機識別的的指令。至於是通過網口、串列埠等介面與真實印表機相連線,這是printer moniter的職責,而不是printer driver的職責。

印表機驅動一般分為兩個部分。

1.printer graphics dll  

2.printer inte***ce dll 

printer graphics dll和printer inte***ce dll都已經編號,並留有plugin的介面。程式設計師可以編寫相應的plugin。

由於microsoft提供了universal printer driver,所以編寫驅動變得比較簡單。

增強universal printer driver可以分為三個部分:

1.增加乙個叫做gpd的檔案,這個文字定義了一些引數,universal printer driver會讀取這個檔案,這個檔案又被稱作是mini driver。

2.printer graphics dll相關的plugin被稱為rendering plug-ins。

3.printer inte***ce dll相關的plugin被稱為user inte***ce plug-ins。

印表機驅動需要完成如下介面:

devqueryprintex 

drvconvertdevmode 

。。。drvupgradeprinter

這幾個函式在universal printer driver中分別在unidrvui.dll和unidrv.dll分別實現。

這部分介紹如何編寫rendering plug-ins。

這個plug-in是乙個com元件,需要向系統提供乙個iprintoemuni2介面的com元件。

其中比較重要的函式是:

1.enabledriver 

2.disabledriver 

在enabledriver中需要註冊一組函式指標陣列,這些函式用來hook中相應的ddi解釋部分。這樣就可以改變預設universal printer driver的行為。

3. enablepdev建立印表機廠商自定義的資料結構,然後初始化這個資料結構。

4. disablepdev負責**這個資料結構的所占用的記憶體。

重要資料結構

typedef struct _devobj devobj; 

5. getinfo函式是負責得到一些印表機的一些資訊。

6.publishdriverinte***ce 

這個函式可以在其中得到iprintoemdriveruni介面指標,這個指標非常有用,可以呼叫universal printer driver提供的一些功能。

如向印表機輸出命令,drvwritespoolbuf。

linux 安裝印表機驅動

1 linux 開源印表機驅動專案 裡面有所支援的印表機驅動。3 安裝並開啟 cups 服務,修改 cups 配置檔案 cupsd.conf 以支援在區域網上從其他電腦上 web 方式管理印表機。4 安裝印表機 5 修改 smb.conf 配置檔案以便共享印表機,客戶端瀏覽印表機並雙擊安裝印表機到本...

印表機驅動 報錯 正在列印

2 注意 設定埠。開啟控制面板 裝置和印表機,找到對應型號印表機,右鍵選擇 印表機屬性 檢視 埠 選項,預設是選擇lpt1埠,如果是usb轉接線使用usb001之類的埠 如果遇到報錯 正在列印 1 開啟 服務 找到print spooler,停止該服務 2 ctrl r開啟執行,輸入spool,刪除...

電腦怎麼安裝印表機及印表機的驅動程式

要使用印表機的話必須先安裝印表機的驅動程式,一般印表機都有自己的安裝程式,但比較的不好安裝。通用的情況其實還是用windows的新增印表機嚮導來完成,即能比較順利的安裝,也可以無需安裝其它不必要的軟體。工具 原料 印表機印表機驅動程式 電腦方法 步驟 點選螢幕左下角的 開始 按鈕,從彈出的選單列表中...