windows核心程式設計 配置篇

2021-06-27 09:57:33 字數 2280 閱讀 9429

初步接觸了一下windows核心程式設計,發現這真是乙個博大精深的領域,和windows應用開發差別很大。這裡,講講windows核心程式設計的準備工作:如何配置核心開發環境。

我是個小嫩,按照《寒江獨釣》那本專門講windows核心程式設計的神書來配置,中間也出現了一些問題,下面,我把步驟貼出來,一起和大家學習學習。

1. 開發核心程式 + 編譯核心程式的環境配置:win7 + wdk

安裝時,把所有的元件都勾選上,選擇完全安裝。安裝路徑最好在某個盤的根目錄下,安裝路徑名最好全部使用英文,如「d:\wdk」。

安裝完成後,會在"開始"選單裡出現wdk的編譯環境選項,如下圖:

"checked"編譯相當於vs2010中的debug版,「free」編譯相當於vs2010中的release版。

我開啟了乙個支援xp系統的核心程式編譯環境,所謂支援xp系統,是指編譯出的核心程式執行在xp系統裡,編譯視窗如下:

要編譯核心程式,只要在編譯視窗中進入該核心程式的工程根目錄下,直接輸入"build"即可。如上圖,我"cd d:\windows核心程式設計學習\keyboardfilter",然後"build",wdk就開始編譯。

編譯完後,wdk會在上述核心程式的工程目錄中生成乙個.sys檔案:

.sys檔案就是傳說中的核心模組檔案,也可叫做系統檔案、系統服務什麼的。不同於應用程式中的exe檔案,雙擊sys檔案是無法執行它的,核心模組只能被windows系統載入,在載入前,還必須安裝該核心模組。下面,講解如何執行乙個核心程式。

2. 執行核心程式的環境配置:vm + windows xp

開啟vm虛擬機器,進入xp系統。可以安裝系統服務的軟體很多,我根據《寒江獨釣》那本書,下了乙個叫「srvinstw」的軟體,該軟體執行如下:

把上述編譯好的「keyboardfilter.sys」檔案拷到xp虛擬機器中,開始用「srvinstw

」來安裝該核心模組。

注意:這裡的"服務名稱"不是你編譯好的sys檔名,而是你要安裝成的系統服務的名字,自己隨便取,但一定要記好。我取名為」kb_test「。

這裡要求輸入的就是你編譯後生成的sys檔名,不要用」瀏覽「,因為那只能找到exe檔案,找不到sys檔案,自己手動輸入。注意:要輸入的包括sys檔案完整路徑名 + sys檔名。

注意:該項可以不填,系統將使用預設的。

注意:推薦選擇「手動」,安裝後,我們可以通過命令自行載入、解除安裝該核心模組。

安裝完成後,我們便可以手動載入該核心模組,執行該核心程式了。開啟命令列,確保你是administrator使用者許可權,輸入net start + 服務名稱,這裡的」服務名稱「就是上面你在安裝時自己取的服務名,注意,不是編譯後生成的sys檔名。我在安裝時,取的服務名為"kb_test",所以,這裡輸入"net start kb_test",如下圖:

"服務已經啟動成功",表明該核心程式載入成功,正常執行了。

若想解除安裝該核心模組,停止該核心程式的執行,在命令列中輸入net stop + 服務名稱。我輸入」net stop kb_test「,如下:

以上,就是從編譯乙個核心程式開始,到成功執行該核心程式的乙個詳細配置過程。有點複雜,但能學到很多東西。

Windows核心程式設計

內容簡介 這是一本經典的windows核心程式設計指南,從第1版到第5版,引領著數十萬程式設計師走入windows開發陣營,培養了大批精英。作為windows開發人員的必備參考,本書是為打算理解windows的c和c 程式設計師精心設計的。第5版全面覆蓋windows xp,windows vist...

WINDOWS核心程式設計 核心物件

今天想把看的第三章的心得寫下來。這章主要介紹了核心物件。在windows中,核心物件是由作業系統來管理,儘管使用者能夠建立它,但是在建立之後,使用者對該核心物件的操作都是委託給作業系統。通常使用者建立和使用的物件分為 使用者物件 如 hicon createicon prama gdi物件函式以及核...

Windows核心程式設計 核心物件

每個核心物件只是核心分配的乙個記憶體塊,只能由核心訪問.該記憶體塊是一種資料結構,它的成員負責維護物件的各種資訊,由得物件型別相同,但大多數不同,比如程序物件有個程序id,乙個基本優先順序,乙個退出 檔案物件則有乙個位元組位移,乙個共享模式,乙個開啟模式 如果核心控制代碼傳遞給另外乙個程序,那麼這另...