Windows的裝置驅動架構中的上層與下層模組

來源:互聯網
上載者:User

Windows的裝置驅動架構中的上層與下層模組

 

     在Windows的裝置驅動架構中,下層模組向上層模組提供一個資料結構指標。但是,上層模組並不直接從這個資料結構擷取具體的函數指標,更不直接使用這些函數指標調用下層模組中的函數;而是通過一些由核心提供的函數下達“I/O請求包”即IRP,間接地調用下層模組提供的函數,要求其執行某種操作。這就好像是向核心下一個定單,定單中告訴核心要由哪一個下層模組執行何種操作。另一方面,對於建立了形式“堆疊”的裝置驅動,上層模組在運行中通常也沒有如何“找到”下層模組的問題,甚至根本就不必知道其下一層是什麼模組或什麼裝置,模組之間已在建立形式堆疊的時候固定串連好了。此時上層模組所獲得的是哪一個下層模組的指標,取決於同一個堆疊中各個模組的裝載次序,實際上取決於系統的配置,而相關的配置資訊則最終來自相關的.inf檔案,這些資訊儲存在集中的資料庫“註冊表(Registry)”中。這樣就為通過系統配置改變具體裝置驅動堆疊的結構提供了更大的靈活性,主要體現在:
    更容易在堆疊的下層實現“重新導向”,即把上層模組嫁接到不同的下層模組上;
    更容易在堆疊內部插入以“過濾驅動對象(FiDO)”為代表的“過濾模組”。
最後,裝置驅動模組不是在真空中運行,需要得到核心的支援,需要由核心為其構築起一個運行環境,這個環境的主體就是核心匯出函數,此外還有一些全域的變數和資料結構。這就是Windows的“裝置驅動開發包”DDK中所定義(更準確地說是“聲明”)的函數和變數。
    事物都是在發展的,Windows的裝置驅動架構也不是一開始就這樣,更不是永遠這樣。前面所講的是為實現“隨插即用”所必須要有的要素,主要就是模組的動態裝載以及模組堆疊的形成。有了這些要素,包括隨插即用在內的分層裝置驅動就可以實現了,但是當然還可以有一些附加的要求。從Windows 98和Windows 2000開始,微軟定義了一種(在當時是)新的裝置驅動架構,稱為WDM即“Windows裝置驅動模型(Windows Driver Model)”。WDM要求裝置驅動模組除滿足PnP的需要外,還必須提供兩方面的功能支援:
    對於WMI的支援。WMI是“Windows管理手段(Windows Management Instrumentation)”的縮寫。WMI與“簡單網路管理規程”SNMP相似,要求每台Windows主機都能應“管理器(Manager)”的要求提供包括裝置驅動在內的各種狀態和統計資訊。這些資訊從哪兒來呢?對於裝置驅動,當然得要由相應的裝置驅動模組提供。
    對於電源管理的支援。有些外設能耗不小,如果有一段較長的時間沒有實際使用,就沒有理由不將其轉入某種“省電模式”。即使是能耗不大的外設,在節能成為一個環保問題的今天,也應該在不用時使其轉入省電模式。這就是電源管理要達到的目的之一。所以,微軟把支援電源管理列為WDM的要素之一。
    總之,“老式”的裝置驅動(在形式上)是不分層、不堆疊的;如果形式上分層並堆疊,在微軟的術語中就稱為“PnP裝置驅動”。而WDM裝置驅動,則是至少在形式上滿足了上述兩項附加條件的PnP裝置驅動。對WMI的支援和電源管理的重要性當然不容低估,但是對於我們理解Windows的裝置驅動架構卻並非技術關鍵,所以後面的敘述將集中在架構的構成與實現,而忽略這兩個方面。正因為這樣,我們將稱之為“Windows裝置驅動架構”而不是“WDM”,以免混淆。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.