- 相關推薦
Windows2000設備驅動程序的研制開發
引言:
由于工作關系,我經常涉及PC機與外圍設備接口的工作,從PC機這方面要做的工作看來,主要是通過接口處理外圍設備的中斷,通過I/O端口或內存地址與外設互相傳遞數據。從計算機原理的角度看,所要達到的目的很簡單,那么如何編寫程序完成上述功能呢?
目前國內流行的PC操作系統有三種:DOS,Win95/98系列,WindowsNT。DOS是單用戶、單任務操作系統,由于PC機硬件處理速度不斷提高,基于單用戶、單任務的操作系統越來越不能充分發揮硬件的功能,現在只應用于一些老式PC及其它個別場合,有逐漸被淘汰的趨勢;Win95/98系列和WindowsNT屬于多任務操作系統,不論從其原理還是界面上看,這兩種操作系統都比DOS有著無可比擬的優越性,這兩種操作系統雖然在界面和操作上及其相似,但其內部實現的諸多方面有許多區別,有些區別是本質上的。Win95/98設計目標是針對一般家庭用戶,安全性及可靠性存在許多薄弱環節,就可靠性而言,Win95/98系列不能很好的防止多任務環境中某個進程的非法操作導致系統中其它程序甚至整個系統的崩潰,而WindowsNT在這方面及其它諸多方面設計的相當嚴謹。這兩種操作系統是Microsoft公司同一時期的產品,但針對不同的使用群,所以在一些重要場合及生產實踐中應該選擇WindowsNT作為計算機的操作系統,此外,從發展趨勢來看,WindowsNT已經成為定型產品,具有相對穩定性。
在不同操作系統下編寫驅動程序是有很大區別的,在DOS平臺上,應用程序和設備驅動程序之間沒有標準的接口,它們在外部表現為一個擴展名為EXE的文件,驅動程序的作用被柔和在應用程序中,這樣,應用程序為了使用不同廠商的同一類設備,必須了解這些設備在接口上具體的硬件實現,同時,對于一個特定型號的硬件產品,所有支持它的應用軟件中對于控制整個設備動作的這部分代碼,可能被多次重寫。這種情況不適應硬件及應用軟件的飛速發展。Windows系統在這方面,進行了根本性改進,把控制設備動作的這部分代碼獨立出來,提出了設備驅動程序的概念,驅動程序是應用程序和硬件設備之間的一個橋梁,應用程序與驅動程序之間有明確的接口,應用程序通過與驅動程序交換信息,達到控制外設的目的。接口定義的操作是面向設備的,這就是說,在應用程序的設計中,并不用關心對外設操作的具體硬件實現,只是對驅動程序發出一系列指令既可;驅動程序接受來自上層應用程序的指示,具體操縱實際硬件,完成用戶功能。具體實現上,Win95/98系列與WindowsNT又有所區別,WindowsNT是嚴格按照上述思路設計的;而Win95/98系列不那么嚴格,其支持上述思路,但同時應用程序也可以繞過驅動程序直接訪問實際物理I/O,這樣做,增加程序設計的靈活性,但同時,對系統可靠性造成一定隱患。這也正是Win95/98系列可靠性低于WinNT的原因之一。
表1-1 三種操作系統下訪問接口比較
操作系統應用程序訪問接口方式訪問權限DOS直接訪問所有[注]Windows95/98通過設備驅動程序*.VXD所有[注]直接訪問僅I/O端口WindowsNT[1] [2] [3] [4] [5]
【Windows設備驅動程序的研制開發】相關文章:
我國S頻段遙測設備的研制開發04-30
基于Windows 2000的多路話音采集壓縮卡驅動程序設計05-02
Windows驅動查詢工具解決設備疑問09-21
WINDOWS XP教案04-25
安裝Windows或啟動Windows時鼠標不可用06-20
飛機事故逃逸救生系統的研制開發04-26
灌區管理信息系統的研制開發04-27
windows及應用實踐報告04-14
初識Windows的教學方案01-17
通用組態軟件驅動程序的設計與開發05-03