note 1:
以前版本的windows設計的一些應用程式之所以在windows vista上不能正常工作,就是因為在實現這些程式時,沒有充分考慮安全性.假定乙個應用程式在啟動時要從乙個登錄檔子項中讀取一些資料.正確的做法是呼叫regopenkeyex,向其傳入key_query_value,從而指定查詢子項資料的許可權.然而許多應用程式對安全性沒有任何考慮.有的軟體開發人員還是按照老習慣,在呼叫regopenkeyex函式的時候,傳入key_all_access作為期望的訪問許可權.這樣做的問題在於,對於乙個不是管理員的標準使用者,登錄檔項(比如hklm)也許是唯讀的.所以,當這樣的應用程式在windows vista上面執行時,呼叫regopenkeyex函式並傳遞key_all_access就會失敗.
note 2:
不同程序中執行的執行緒需要共享核心物件.下面羅列了一些理由.
利用檔案對映物件,可以在同一臺機器上執行的兩個不同程序之間共享資料塊.
借助mailslots和named pipes,在網路中的不同計算機上執行的程序可以相互傳送資料塊.
mutexes、semaphores和事件允許不同程序中的執行緒同步執行.例如,乙個應用程式可能需要在完成某個任務之後,向另乙個應用程式發出通知.
用三種不同的
核心程式設計隨筆4
note 1 在windows vista中,系統dlls是在程序位址空間的隨機位址載入的.所以,不要像在windows xp中那樣將peb的位址硬編碼為0x7ffdf000.相反,你需要呼叫ntqueryinformationprocess,並傳遞processbasicinformation作為...
核心程式設計隨筆5
note 0 windows提供了乙個作業 job 核心物件,它允許你將程序組合在一起並建立乙個 沙箱 來限制程序能夠做什麼.最好將作業物件想象成乙個程序容器.但是,即使作業中只包含乙個程序,也是非常有用的,因為這樣可以對程序施加平時不能施加的限制.note 1 以下的startrestricted...
除錯核心隨筆
有時候除錯韌體的時候,難免會遇到載入核心時出現各種問題,所以學習一些常用及基本的核心除錯方法方便我們定位問題。bios basic input output system 基本輸入 輸出系統。bios完成處理器及晶元組的初始化,並將晶元內的部分裝置抽象出個別介面供核心使用俗稱runservice。u...