Windows NT 裝置驅動程式開發基礎(8) (轉)
Windows NT 裝置驅動程式開發基礎(8) (轉)[@more@]1.4 的編譯連結,、和啟動。
NT下編寫驅動程式的環境被稱為為DDK(Device Kit) For Micro
soft Windows NT,這是一個命令列下的工作環境。但是在安裝DDK之前需要安裝
SDK(Software Development Kit)以及 Visual C++。
編譯連結器為Build.exe,他從s中讀出待編譯的程式的配置,包
括原始檔、目標檔案等,從環境變數Include中得到引用檔案的地址,然後Visual
C++的編譯連結器Nmake.exe進行實際的編譯連結工作。日誌檔案build.log,build.wrn
,build.err 中分別記錄了編譯連結中的命令列,遇到的錯誤,遇到的警告。編譯
完成後的檔案字尾為.sys
安裝過程分兩步:第一,將編譯成的.sys檔案複製到Windows NT的System32Dri
vers下;第二,在登錄檔的HKEY_LOCAL_MACHINESYSTEMCurrentControlSetService
s下建立與.sys檔案同名的鍵,然後在之下建立名為Start,Type, ErrorControl的三
個REG_D型別的數值鍵。其中Start的鍵值控制該驅動程式在啟動的哪個階段被
啟動。小於3的數設定該驅動程式在系統啟動的某個階段被自動啟動;3表示需要管理員
手動啟動;4表示該程式被禁用。設定完畢後需要重新啟動系統。
手動啟動和停止一個驅動程式需要使用控制皮膚(ControlPanel)中的裝置(Device
)圖示。
由於驅動程式的結構比較複雜,而且除錯核心的程式碼需要兩臺安裝有Windows NT
的,比較麻煩,所以在編寫一個較複雜的驅動程式的過程中應分步來進行測試。
在完成任何一部分工作後都應進行測試,以便及早地發現錯誤。根據本人的,驅動
程式中的大多數錯誤都是由於不正確地訪問造成的。比如使用未被初始化的指標,
釋放已經被釋放的記憶體,在DISPATCH_LEVEL或以上的執行級別引用分頁的記憶體。
--
NT下編寫驅動程式的環境被稱為為DDK(Device Kit) For Micro
soft Windows NT,這是一個命令列下的工作環境。但是在安裝DDK之前需要安裝
SDK(Software Development Kit)以及 Visual C++。
編譯連結器為Build.exe,他從s中讀出待編譯的程式的配置,包
括原始檔、目標檔案等,從環境變數Include中得到引用檔案的地址,然後Visual
C++的編譯連結器Nmake.exe進行實際的編譯連結工作。日誌檔案build.log,build.wrn
,build.err 中分別記錄了編譯連結中的命令列,遇到的錯誤,遇到的警告。編譯
完成後的檔案字尾為.sys
安裝過程分兩步:第一,將編譯成的.sys檔案複製到Windows NT的System32Dri
vers下;第二,在登錄檔的HKEY_LOCAL_MACHINESYSTEMCurrentControlSetService
s下建立與.sys檔案同名的鍵,然後在之下建立名為Start,Type, ErrorControl的三
個REG_D型別的數值鍵。其中Start的鍵值控制該驅動程式在啟動的哪個階段被
啟動。小於3的數設定該驅動程式在系統啟動的某個階段被自動啟動;3表示需要管理員
手動啟動;4表示該程式被禁用。設定完畢後需要重新啟動系統。
手動啟動和停止一個驅動程式需要使用控制皮膚(ControlPanel)中的裝置(Device
)圖示。
由於驅動程式的結構比較複雜,而且除錯核心的程式碼需要兩臺安裝有Windows NT
的,比較麻煩,所以在編寫一個較複雜的驅動程式的過程中應分步來進行測試。
在完成任何一部分工作後都應進行測試,以便及早地發現錯誤。根據本人的,驅動
程式中的大多數錯誤都是由於不正確地訪問造成的。比如使用未被初始化的指標,
釋放已經被釋放的記憶體,在DISPATCH_LEVEL或以上的執行級別引用分頁的記憶體。
--
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992245/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Windows NT 裝置驅動程式開發基礎(1) (轉)Windows
- Windows NT 裝置驅動程式開發基礎(3) (轉)Windows
- Windows NT 裝置驅動程式開發基礎(2) (轉)Windows
- Windows NT 裝置驅動程式開發基礎(4) (轉)Windows
- Windows NT 裝置驅動程式開發基礎(5) (轉)Windows
- Windows NT 裝置驅動程式開發基礎(7) (轉)Windows
- Windows NT 裝置驅動程式開發基礎(6) (轉)Windows
- DeviceDriver Windows NT 驅動程式型別 (轉載) (轉)devWindows型別
- SCO UNIX 下裝置驅動程式開發 (轉)
- SCO UNIX 下裝置驅動程式開發(轉)
- 使用Windows 95虛擬裝置驅動程式(VxD) (轉)Windows
- Windows95的裝置驅動程式的編寫 (轉)Windows
- Linux裝置驅動程式 (轉)Linux
- linux裝置驅動編寫基礎Linux
- 開發Linux系統裝置驅動程式並不難(轉)Linux
- Linux驅動開發筆記(四):裝置驅動介紹、熟悉雜項裝置驅動和ubuntu開發雜項裝置DemoLinux筆記Ubuntu
- Windows裝置和驅動的安裝Windows
- Linux下的硬體驅動——USB裝置(下)(驅動開發部分)(轉)Linux
- LINUX下的裝置驅動程式 (轉)Linux
- 用 Delphi 編寫 VxD 裝置驅動程式(轉) (轉)
- Linux裝置驅動程式學習----1.裝置驅動程式簡介Linux
- Linux驅動之裝置樹的基礎知識Linux
- 字元裝置驅動 —— 字元裝置驅動框架字元框架
- iOS 裝置驅動 for windows 32&64iOSWindows
- 《Linux裝置驅動開發詳解(第2版)》——第1章Linux裝置驅動概述及開發環境構建1.1裝置驅動的作用Linux開發環境
- Linux裝置驅動之字元裝置驅動Linux字元
- UNIX下裝置驅動程式的基本結構(轉)
- 在Linux中,什麼是裝置驅動程式?如何安裝和解除安裝裝置驅動程式?Linux
- 裝置驅動程式包可以刪除嗎 win10裝置驅動程式包能刪嗎Win10
- STC8A系列裝置驅動軟體函式庫開源函式
- 裸裝置基礎知識(轉)
- windows8中arduino驅動安裝方法WindowsUI
- 深入淺出:Linux裝置驅動之字元裝置驅動Linux字元
- 乾坤合一:Linux裝置驅動之塊裝置驅動Linux
- Windows的驅動開發模型Windows模型
- Windows驅動開發入門Windows
- 虛擬裝置驅動程式的設計與實現 (轉)
- 深入淺出分析Linux裝置驅動程式中斷(轉)Linux