摘要: 介紹了Windows NT4.0內核模式設備驅動程序開發中的一般性過程。通過提供一個最小化驅動程序的核心代碼,解釋各組成部分的結構功能和使用方法。在實踐中,結合自身的開發需要,可編寫出具有實用價值的驅動程序。
關鍵詞:Win32子系統 設備驅動 系統注冊表 I/O請求包
Windows NT 以其安全、穩定及界面友好等特性逐漸成為工業控制領域的前臺操作系統。面對工業控制中大量采用的串/并行通信及總線控制等技術,要求用戶不斷開發出滿足自身需要的硬件設備,同時又要求用戶應用程序與這些硬件設備進行通信,發送控制命令,讀取狀態信息等等。Windows NT出于安全性、穩定性等考慮,不允許用戶應用程序對物理硬件進行直接訪問,這就需要使用設備驅動程序跨越操作系統邊界對物理硬件進行操作,并向上提供客戶應用程序控制接口以供調用。
1 分層結構與設備驅動程序
Windows NT分層結構(如圖1所示)包括運行于用戶模式及內核模式的各種部件,設備驅動程序在圖1的左下角,處于內核模式下I/O管理器之中。
2 驅動程序工作方式
內核模式驅動程序與應用程序之間的最大差別之一是驅動程序的控制結構。內核模式驅動程序沒有main或WinMain,而是由I/O管理器根據需要調用一個驅動程序例程:
· 驅動程序被裝入時;
· 驅動程序被卸出或系統關閉時;
· 用戶程序發出I/O系統服務調用時;
· 共享硬件資源對驅動程序可用時;
· 設備操作過程中的任何時候。
3 初始化過程
3.1 系統注冊表中有關設備驅動程序的項目是系統加載設備驅動程序的入口點
系統注冊表中用于系統加載設備驅動程序的項目如下:
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesDriverName] 大功率電感廠家 |大電流電感工廠