Windows Driver Framework物件模型以及物件的一般特性

傅志紅發表於2011-11-10

基於元件的軟體工程的一個基本思想就是使用物件。Windows 7 Device Driver 的作者Ron Reeves從物件導向程式設計的意義上,解釋了Windows Driver Framework(WDF)物件模型以及物件的一般特性。

什麼是軟體物件?

基於元件的軟體工程的一個基本思想就是使用物件。那麼什麼是物件?就此並沒有廣為接受的觀念。電腦科學家Grady Booch(1991)認為,物件由3個主要特性定義,分別是狀態、行為和標識。他在撰寫的Object-Oriented Analysis and Design with Applications 一書中,介紹了使用OOP技術的程式設計方法。在很多認知理論中,分析的基本單位是資訊處理元件。元件完成針對物件或符號的內部表示的基本資訊處理。如果我們研究這些元件的工作方式,就會發現它們將感知輸入轉換成概念表示,把一種概念表示轉換成另一種概念表示,或者把概念表示轉換成動作輸出。

軟體的物件導向程式設計技術出現了近25年,但這並不是新生事物。柏拉圖和亞里士多德等古代哲學家,以及伊曼努爾•康德等現代哲學家,已經解釋了存在的一般意義,並確立了概念和物件的基本特性。

直到1990年左右,貝爾實驗室出版了The Annotated C++ Reference Manual 一書,OOP開始進入主流程式設計方法的佇列。我們已經慢慢地意識到了程式應該具有什麼樣的屬性來解決複雜的現實問題。有VB.NET或C#這些新語言,有它們建立類和物件的能力,僅使用抽象資料型別或類,這些都還不夠。

在這種持續發展的程式中,稱為物件導向技術的方法論演變成了所謂的物件模型。軟體工程基礎包含了抽象、模組化、封裝、繼承、型別、併發和永續性的原則,其元素稱為物件模型。物件模型定義了以元素間所形成的協同關係的方式來使用這些元素。

Windows 驅動程式基礎

雖然我們使用OOP模型已經有20年了,但是這個方法是在最近剛剛進入編寫硬體裝置驅動程式的領域。OOP模型以框架的意義呈現了出來。微軟公司認識到,有很多共用程式碼可以從物件中獲得並收集進框架。他們將這個新的用於裝置驅動程式開發的OOP模型框架稱為Windows 驅動程式基礎(WDF)。

WDF有兩個主要用於裝置驅動程式開發的子框架:使用者模型驅動程式框架(UMDF)和核心模型驅動程式框架(KMDF)。WDF及其子框架是Windows作業系統系列的下一代驅動程式模型。有了這個新模型,可以降低開發驅動程式的時間,提高系統穩定性,增強驅動程式的可服務性。

WDF包括一套元件(物件),用於開發、部署,以及對KMDF和UMDF驅動程式的維護。

WDF物件模型

物件是重要的裝置驅動程式開發基本元素。在WDF物件模型中,

  • 物件作為驅動程式構建塊。驅動程式通過明確定義的介面修改這些物件。物件本身具有明確定義的生命週期。
  • 一組事件可以影響每種型別的物件。框架定義了每個事件的預設行為。為了支援某個特定驅動程式的行為,驅動程式包含了覆蓋預設行為的回撥例程。

模型定義了一系列表示通用驅動程式結構的物件,這些結構包括裝置、佇列、I/O請求和驅動程式本身。物件具有屬性、方法和事件:

  • 屬性描述了物件的特性。每個屬性與獲取和設定屬性值的方法關聯。
  • 方法執行物件的動作。
  • **事件是驅動程式要執行動作的條件。**WDF識別每個物件的可能事件,並且定義了大部分的預設動作。對於某類預設動作並不適用其驅動程式的事件,驅動程式包含了處理這類事件的程式碼。當事件發生時,WDF呼叫相關的回撥函式。

原文連結:http://www.informit.com/articles/article.aspx?p=1718474

本文參加 Translate Geeks to Chinese 翻譯活動

相關文章