總線驅動器的任務之一就是枚舉總線上的設備。并為每個設備創建一個PDO。一旦總線驅動器程序檢查到新硬件存在,PnP管理器就創建一個PDO,創建完PDO后,PnP管理器參照注冊表中的信息查找與這個PDO相關的過濾器和功能驅動程序。系統安裝程序負責這些注冊表項,而驅動程序包中控制硬件安裝的INF文件負責添加其他表項。這些表項定義了過濾器和功能驅動程序在堆棧中的次序。
--------------------------------------------
1.創建設備
設備創建一般在設備管理器發現新設備時進行:設備管理器通過讀取驅動程序inf文件來創建新設備,將這個設備注冊為特定的設備接口并建立符號鏈接,這樣使操作系統能正確識別這個硬件。在驅動程序安裝過程中,設備管理器還會根據inf文件將驅動程序拷貝到系統目錄,并通過寫入相關注冊表信息建立服務,使這個驅動程序能夠在系統啟動時被自動加載。
2.硬件資源分配
驅動程序需要知道為它們分配了那些硬件資源。常見的硬件資源有I/O端口、存儲器地址、中斷和DMA。我們可通過設備管理器中的"資源"選項來查看某個設備的資源分配情況,這些工作都是由系統自動完成的。當然,如果這個設備的資源與其他設備的資源相沖突將不能正常工作,這時候必須通過設備管理器來手動配置資源。
3.串行化處理
在多處理器系統中,處理程序可同時在兩個不同的處理器上運行,但如果它們都試圖訪問同一硬件時,則會出現不可預料的結果。WDM驅動重要的功能之一就是提供一個機制,保證驅動程序的不同部分不會同時訪問相同的硬件,避免設備發生沖突。
4.訪問硬件
驅動程序在取得了I/O端口和內存地址后就可以直接訪問硬件,但由于Windows是多任務操作系統,在一般情況下占用處理器的時間應小于50微秒,如果需要長時間的硬件訪問應采用系統線程的方法。
5.即插即用支持
即插即用(PnP)是系統自動識別和適應硬件配置改變的技術。即插即用不僅需要硬件支持同時還需要軟件支持。驅動程序是對即插即用支持很重要的部分,用戶可隨時為計算機添加和刪除設備而無需進行手工配置。微軟作為PnP規范的制定者已經定義了相關設備和組件的工業標準,通過這些標準我們可以了解操作系統和驅動程序如何支持即插即用。操作系統和驅動程序對即插即用的支持主要提供的功能有自動識別已安裝的設備;硬件資源的動態分配;自動加載正確的驅動程序;在硬件環境發生變化時,向驅動程序發出通知。
6.電源管理支持
電源管理也需要軟硬件同時支持,支持PnP的驅動程序必須支持電源管理,反之亦然。WDM驅動程序和操作系統共同管理設備電源,維持系統的電源消耗并節約電量的使用。Windows 98和Windows 2000以及其他支持電源管理的操作系統中,計算機和其他外設被維持在可能的最低電源使用水平上來完成當前工作,這在移動PC和筆記本電腦上顯得尤為重要。