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