開發印表機驅動程式通常有兩種途徑:一是開發乙個完整的驅動程式,二是利用微軟提供的通用印表機驅動程式
( 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的新增印表機嚮導來完成,即能比較順利的安裝,也可以無需安裝其它不必要的軟體。工具 原料 印表機印表機驅動程式 電腦方法 步驟 點選螢幕左下角的 開始 按鈕,從彈出的選單列表中...