電腦技術>操作系統> > 高手深入解析Win7設備驅動管理
08月23日

高手深入解析Win7設備驅動管理

是否能夠對硬件提供良好的支持,是Windows7面臨的一個嚴峻考驗,同時也是用戶是否選擇Windows 7的一個重要指標。所謂的硬件支持,說到底就是設備的驅動問題。Windows7在硬件的驅動方面有哪些新的特性?如何在Windows7中進行驅動故障排錯?我想這都是用戶所關系的問題,筆者將結合自己的Windows7使用體驗及其自己的理解,就Windows7的設備驅動問題進行一個比較深入的解析,希望對大家有所幫助。

  1、Windows 7的設備驅動文件解讀

  在Windows7中包含了一個覆蓋范圍很廣的身邊驅動程序庫。在該操作系統的基本安裝中,這些驅動程序都會保存在驅動程序存儲區中,它們位于%SystemRoot%System32DriverStoreFileRepository目錄下。另外,在DriverStore文件夾中還保存了對應本地化后的驅動程序信息的子文件夾,對于在系統上配置的每個語種,在這里都有一個對于的子文件夾。例如,筆者安裝的是Windows7的英文版,有關本地化的英語驅動程序信息就位于en-us子文件夾中。

  在驅動程序存儲區中,每個設備驅動程序都經過了認證,并確?梢耘cWindows7系統完全兼容,通過還帶有微軟的數字簽名,這可以確保驅動程序在操作系統中絕對可用。在安裝新的兼容性即插即用設備時,Windows7會在驅動程序存儲區中檢查可用的兼容設備驅動程序。如果找到,則操作系統就會自動安裝該設備。

  每個設備驅動程序都有一個相關聯的安裝信息文件,該文件以.inf作為擴展名,其中包含了關于正在安裝的設備的詳細配置信息。另外,還有信息文件標識出的每個驅動程序要使用的所有源文件,這些文件以.sys為擴展名。驅動程序還與組件清單文件相關聯,清單文件使用可擴展標記語言編寫,其中包含了有關驅動程序數字簽名的詳細信息,并且還可能包含對自身進行配置,以便自動使用該設備的即插即用信息。

  Windows7系統安裝的每個驅動程序的源文件.sys都會保存在%SystemRoot%System32Dirvers目錄下。在安裝新的設備驅動程序時,該驅動程序會被寫入%SystemRoot%System32Dirvers的子文件夾中,并且會有配置信息保存在注冊表中。驅動程序的.inf文件可用于控制安裝和要寫入注冊表的設置信息。如果所需要驅動程序沒用保存在驅動程序存儲區中,或者沒用.inf文件,或缺少其他有個的系統文件,這種情況下,驅動程序的.inf文件和其他相關的文件在安裝設備時會被寫入到%SystemRoot%System32DriverStoreFileRepository下的子文件夾中。

  2、應當重視的Windows 7設備驅動簽名信息

  對于Windows7來說,能否對周邊設備提供良好的支持是其面臨的嚴峻挑戰。毫無例外地,為了保證系統的穩定性及設備的良好運行,微軟建議用戶選擇包含數字簽名是設備驅動程序版本。這對于用戶來說非常重要,因為Windows7畢竟是一個新的系統平臺,各方面有待于進一步的檢驗或者考驗,而這一般為不少用戶所忽略。帶有微軟數字簽名的設備驅動程序不會讓系統崩潰或者變得不穩定,同時帶有微軟數字簽名還可以確保設備驅動程序未被篡改,這能夠杜絕驅動級木馬危害系統。

  反之,如果用戶強制使用沒有數字簽名的驅動程序,則很有可能導致Windows7的不響應或者崩潰,這甚至比在操作系統上安裝普通程序導致的問題更加嚴重。筆者曾經有這樣的體驗,另外論壇中這樣的因為驅動造成Windows7崩潰的案例也非常多。因此,對于Windows7用戶來說建議盡量使用經過簽名的驅動程序。當然,在某些情況下,我們可能會發現特定是設備不包含簽名的驅動程序。此時,建議大家在設備制造商是網站上搜索是否有可用的帶有簽名的驅動程序。因為有時可能有帶有簽名的驅動程序,但并沒有包含到設備的的驅動光盤或者Windows7的安裝盤中。

  如果沒有可用的帶有簽名的驅動程序,那么只能使用未簽名的驅動程序。在Windows7中,如果安裝未簽名的驅動程序,一定要小心謹慎,并對系統進行密切監控。如果發現系統遇到未知的不響應或者崩潰,這就可能是未簽名的驅動程序導致的,這時需要回滾驅動程序或卸載有問題的驅動程序。同時需要注意,任何類型的設備,即使是顯卡、網卡或者聲卡,如果對應的驅動程序有問題,都可能會導致操作系統遇到問題。有時候,為了防止未簽名的驅動程序導致更嚴重的問題,在默認情況下,當我們嘗試安裝未簽名的驅動程序時,Windows7會發出警告。當然,我們也可配置以取消該警告,或者完全禁止安裝未簽名的驅動程序。

  3、Windows 7驅動文件排錯

  當硬件的驅動安裝錯誤后,不僅不能夠驅動該設備,而且會有可能造成系統的不穩定甚至崩潰。Windows7內置的硬件診斷功能可以檢測各種類型的硬件設備故障,從而據此可進行驅動文件的排錯。通常情況下,如果系統檢測到問題,那么我們將會看到一個問題報告和解決方案提示的氣泡通知。單擊該氣泡通知即可打開問題報告和解決方案控制臺。另外,我們也可以在Windows7的控制面板中單擊“系統和維護”鏈接,并單擊“問題報告和解決方案”打開該控制臺。在問題報告和解決方案窗口中,單擊“查看問題以檢查”鏈接以查看現有的問題,或單擊“檢查解決方案”鏈接,從微軟網站上搜索已知問題的可能解決方案。

  另外,我們還可以按照下列步驟直接對設備驅動進行排錯:打開設備管理器,選擇“設備管理器”節點,用鼠標右鍵單擊要排錯的設備,選擇“屬性”,在“常規”選項卡上單擊“檢查解決方案”,單擊“查看詳細信息”選項,了解有關問題的更多信息。當然,我們也可以將該問題發送給微軟尋求解決方案,只需單擊“發送信息”即可。需要注意的是,如果身邊驅動程序安裝不正確,那么就不會有“檢查解決方案”選項,而是只有“重新安裝設備驅動”選項。此外,當設備安裝不正確或有問題時,設備管理器會顯示警告圖標,表示該設備出現問題。如果雙擊該設備,在設備的屬性對話框的“常規”選項卡中還會顯示相關錯誤代碼,我們可以從微軟的網站上查看相關的參考文檔進行排錯。比如錯誤代碼16,表示Windows無法識別該設備使用的所有資源。解決方法是:檢查該設備是否帶有簽名的可用驅動程序。如果有,并且已經安裝,可能需要管理該設備的資源,在設備屬性對話框的“資源”選項卡下進行設置。4、設備驅動造成的資源沖突排錯

  有的時候,當我們在Windows7中安裝了某設備的驅動文件后會顯示資源沖突,那如何進行排錯呢?Windows7的智能特性讓我們進行這方面的排錯非常容易。如果懷疑是某設備造成了資源沖突,可在Windows7的設備管理器中,單擊“查看”菜單選擇其中的“依類型排序資源”或“依連接排序資源”視圖,即可快速查看資源的分配,在此我們可以看到ISA和PCI設備使用IRQ的情況。一般情況下每個ISA設備都有獨立的IRQ設置,而多個PCI設備共享相同的IRQ設置。筆者特別提示,如果某些設備顯示警告圖標,同時還有感嘆號,這并不是資源沖突,應該是設備配置錯誤。

  另外一種查看是否存在資源沖突的方法是,網絡學院(http://www.pcedu123.com)提醒大家使用Windows7的系統信息實用程序msinfo32.exe,依次單擊“開始”→“所有程序”→“附件”→“系統工具”→“系統信息”即可啟動該工具,在系統信息窗口中,展開“硬件資源”,然后單擊“沖突/共享”即可列出所有使用的資源。

  需要注意的是,在Windows系統中,設備可以共享IRQ設置,因此兩個不相關當共用了同樣內存地址或I/Q端口的設備,這些設備之間通常存在沖突。確定了資源沖突的雙方,我們就可以在設備管理器中手動修改某些設備的資源設置。打開該設備是屬性對話框,在“資源”選項卡中選擇需要使用的資源類型。如果可以更改,那么就可以取消對“使用自動設置”的選擇,然后查看設置基于下拉列表中是否提供候補的配置,如果有選擇該項即可解決沖突。

  5、不得不說的Device Stage技術

  DeviceStage技術是Windows7新增加的一個設備解決方案,其主要針對的諸如打印機、攝像機、手機、媒體播放機等外圍設備,我們可以將其看成是一個增強版的即插即用技術。有了DeviceStage技術,用戶就比較方便地設置和使用各種外設。依次點擊“開始”→“設備和打印”進入Windows7的設備管理中心,在該界面中就列出了當前系統中安裝的所有外圍設備。如圖所示,顯示了本地系統安裝了打印機、無線耳機等設備。該該界面中我們可以方便地對于相應的硬件進行配置。值得一說的是,在Windows7的設備管理中心顯示了各類設備的圖標! 

  有的時候當我們安裝了不是針對Windows7開發的設備驅動程序,此時會可能顯示系統默認的圖標,如果安裝的是專門針對Windows7開發的驅動程序就會顯示該設備對于的圖標,同時Windows7通過DeviceStage技術也會讀出該設備的詳細信息。