文章編號: 244617 - 上次校閱: 2005年12月22日 - 版次: 5.1 如何使用驅動程式檢查器疑難排解 Windows 驅動程式
重要
本文包含有關修改登錄的相關資訊。修改登錄之前,請務必將它備份起來,並瞭解如何在發生問題時還原登錄。如需有關如何備份、還原和編輯登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft
知識庫」中的文件: 256986?
(http://support.microsoft.com/kb/256986/
)
Microsoft Windows 登錄說明 在此頁中結論 驅動程式檢查器隨附於 Windows 2000、Windows XP 和 Windows Server 2003
中,用以提升穩定性與可靠性;您可以使用這個工具疑難排解驅動程式的問題。不當撰寫的驅動程式 (例如舊版的 Windows Driver Model (WDM)
驅動程式) 會使 Windows 核心模式元件導致系統損毀或系統失敗。本文說明如何使用驅動程式檢查器隔離並疑難排解系統中的驅動程式。
其他相關資訊 本文討論下列主題:
驅動程式檢查器功能您可以執行 Verifier.exe 以使用驅動程式檢查器,然後再重新啟動電腦。您不必做任何其他變動,就可以開始分析系統中的驅動程式。驅動程式檢查器提供下列功能。 集區配置嘗試從特殊集區中配置驅動程式所有的集區配置。此驅動程式的配置是由 No Access 權限所隔離及繫結,而不是與系統的其他部分共用集區配置。此功能會判斷驅動程式的配置是否超出集區的共用配置,因而造成損毀和系統不穩定。當您啟用此功能且目標電腦具有足夠的實體和虛擬記憶體時,驅動程式的所有配置會自動地重新導向至特殊集區。提供極大的記憶體壓力極大的記憶體壓力可以用於特定的驅動程式,而不會影響到其他驅動程式 (不論系統記憶體大小)。如果要使用這項功能,請透過記憶體管理將驅動程式所有可分頁的程式碼和資料,以及系統分頁集區、程式碼和資料變成無效。如此可以讓您偵測到不正確地佔據 Spin Lock 或提高 IRQL 並存取分頁程式碼或資料的驅動程式。您可以使用 Extreme Memory Pressure 來偵測偶發性的問題並隔離原因。參數驗證驅動程式所做出的所有 Spin Lock、IRQL 和集區配置呼叫都會收到自動參數驗證。這表示會執行檢查以確認下列事項:
集區配置插入失敗未被驅動程式標示為 MUST_SUCCEED 的集區配置可能會被隨機地棄置,以確保驅動程式能夠正確地處理低記憶體的狀況。釋放的集區所有正要被釋放的集區都會被檢查,以確保集區配置內部沒有擱置的計時器,因為這些情形可能會導致非常難以追蹤系統當機。集區漏洞偵測驅動程式的所有集區配置都被自動追蹤。在驅動程式卸載期間,如果釋放了任何配置,會啟動錯誤檢查。您可以使用 !verifier 3 核心偵錯命令來顯示所有未被釋放的配置。您也可以在卸載前的任何時間點使用此命令,以檢視驅動程式中尚未處理完畢的配置。驅動程式卸載檢查驅動程式卸載檢查是為了捕捉卸載但沒有清空已使用資源的驅動程式 (這樣會增加驅動程式卸載後立刻進行系統錯誤檢查的可能性)。驅動程式未刪除的資源包括了旁觀清單、擱置的延遲程序呼叫 (DPC)、背景工作執行緒、佇列、計時器和其他資源。I/O 檢查器如果您使用檢查器工具或 VerifyDriverLevel 登錄機碼開啟 I/O 檢查器旗標 (如需詳細資訊,請參考本文<啟用驅動程式檢查>一節),就會開啟某些 I/O 管理員檢查。其中包含:
驅動程式檢查器需求唯一的需求是您必須安裝 Windows 2000、Windows XP 或 Windows Server 2003。您可以在 Windows 的零售和已檢查版本上啟用驅動程式檢查器。如需有關您在執行伺服器上啟用驅動程式檢查器管理員之前的考量事項的資訊,請參閱「Microsoft 知識庫」文件編號 251233。如果已安裝 Norton Antivirus,請依照「Microsoft 知識庫」文件 325672 中的建議,不要啟用驅動程式檢查器的「鎖死偵測」。啟用驅動程式檢查器您可以使用 Verifier.exe 啟用驅動程式檢查器。Verifier.exe 隨附於 Windows 中,並會自動安裝到 System32 資料夾中。Verifier.exe 具有命令列介面和圖形化使用者介面 (GUI,Graphical User Interface),所以您可以指定所要檢查的驅動程式和適當等級。或者,您也可以即時監看驅動程式檢查器統計數據。如需詳細資訊,請參考本文<驅動程式檢查器管理員>一節。偵錯驅動程式檢查器違規在核心偵錯程式的 !verifier 命令和 Verifier.exe 工具中均會即時顯示驅動程式檢查器目前的設定和統計數據。所有驅動程式檢查器違規都會造成錯誤檢查,最常見的 (未必全部) 為:
驅動程式檢查器與圖形驅動程式Windows 核心模式圖形驅動程式 (例如印表機和顯示器驅動程式 DLL) 無法直接呼叫集區進入點。更明確地說,是間接地使用圖形裝置驅動程式介面 (DDI,Device Driver Interface) 回呼至 Win32k.sys,以執行集區配置。例如,EngAllocMem 是圖形驅動程式所呼叫,以明確配置集區記憶體的回呼。另外,其他具有特殊功能的回呼,例如 EngCreatePalette 和 EngCreateBitmap 會傳回集區記憶體。為了提供圖形驅動程式同類型的自動化測試,已經在 Win32k.sys 中加入某些驅動程式檢查器功能。然而,因為圖形驅動程式比其他核心模式的驅動程式具有更多限制,所以前者只需驅動程式檢查器功能中的一部分。具體而論,IRQL 檢查和 I/O 檢查是不需要的。其他功能,也就是特殊集區的使用、集區配置的隨機棄置和集區追蹤,均有所支援,以便在不同的圖形 DDI 回呼中變更不同的等級。 可支援下列圖形 DDI 回呼函數的隨機棄置:
啟用圖形驅動程式的驅動程式檢查器的方式與其他驅動程式完全相同 (如需詳細資訊,請參考本文<啟用驅動程式檢查器>一節)。未受支援的旗標 (例如 IRQL 檢查) 會被忽略。另外,您可以使用 !gdikdx.verifier 核心偵錯器命令,來檢驗目前 Driver Verifier 的狀態和圖形驅動程式的集區追蹤。 注意:在強固性測試中,您只能使用隨機配置棄置設定。使用此設定可能會造成轉譯錯誤訊息,所您不應在檢查性測試中使用此設定來檢查圖形驅動程式實作的正確性 (例如,將圖形驅動程式輸出與參考圖片相比較)。 驅動程式檢查器管理員 (Verifier.exe)驅動程式檢查器管理員工具 (Verifier.exe) 是在建立和修改驅動程式檢查器設定,以及從驅動程式檢查器收集統計數據時建議使用的工具。在每個 Windows 安裝中 Verifier.exe 均位於 %WinDir%\System32 資料夾中。驅動程式狀態[驅動程式狀態] 內容頁提供您驅動程式檢查器目前狀態的影像。您可以看到檢查器偵測到哪個驅動程式。狀態可能是下列其中一種:
如果您啟用 Special Pool 旗標,且移動到特殊集區的集區配置少於 95%,此頁會顯示警告訊息。如此表示您需要選取較小的檢查驅動程式集合或在電腦中增加更多實體記憶體,以取得集區配置檢查較佳的涵蓋範圍。 通用計數器[通用計數器] 內容頁顯示某些由驅動程式檢查器所維護之計數器目前的值。計數器的零值可能表示相關 Driver Verifier 旗標未啟用。例如,Other/Faults 計數器的 0 值表示 Low Resource Simulation 旗標號未啟用。因為計數器的值在預設狀況下會自動更新,所以您可以監控檢查器的活動。您可以修改重新整理的頻率、切換到手動重新整理或使用對話方塊左下區域的控制項群組以強制重新整理。集區追蹤此內容頁說明更多驅動程式檢查器所收集的統計數據。此內容頁所顯示的所有計數器均與檢查器的 Pool Tracking 旗標有關。其中多數均是以每個驅動程式為單位的計數器 (例如,目前配置、目前配置位元組,等等)。這表示您必須在頂端組合方塊中選取驅動程式名稱,才能檢視此驅動程式的計數器。設定您可以使用此頁建立或修改驅動程式檢查器設定。這些設定是儲存在登錄中,且您必須重新啟動電腦才能讓設定生效。您可以使用此清單來檢視目前安裝的驅動程式。每個驅動程式可能處於下列狀態之一:
在對話方塊的底部,您可以指定下次重新啟動之後,想要檢查的其他驅動程式 (以空格隔開)。當您想要安裝尚未載入的新驅動程式時,通常會使用此編輯控制項。 如果清單頂端的選項按鈕群組設為 [檢查所有驅動程式],則清單和 [檢查]、[不檢查] 按鈕及編輯控制項就無法使用。這表示下次重新啟動之後,會檢查系統中所有的驅動程式。 您可以使用對話方塊右上區域的核取方塊來設定檢查類型。您可以將 I/O 檢查啟動在第 1 級或第 2 級。第 2 級的檢查功能比第 1 級強。 您必須按下 [套用] 以儲存所有設定的修改。此頁還有兩個按鈕:
動態設定您可以使用此內容頁,立即變更驅動程式檢查器旗標。您只能夠切換某些驅動程式檢查器旗標的狀態,而無法變更要檢查的驅動程式清單。在您更改某些核取方塊的狀態後,必須按一下 [套用] 才能讓變更生效。所做的變更會立即生效,並持續使用,直到您做了其他變更或重新啟動電腦。命令列介面您也可以從命令列執行 Verifier.exe (如需詳細資訊,請在命令提示中輸入 verifier.exe /?)。下列清單說明最常用的命令列旗標:
驅動程式開發人員的額外資訊下面將說明驅動程式開發人員可能會感興趣的驅動程式檢查器設定的其他詳細資料。IT 專業人員通常不需要這些設定。警告 不當使用「登錄編輯程式」可能會導致嚴重的問題,甚至必須重新安裝作業系統。Microsoft 並不保證可以解決您不當使用「登錄編輯程式」所導致的問題。請自行承擔使用「登錄編輯程式」的一切風險。 如果要編輯登錄以啟動驅動程式檢查器,請執行下列步驟:
下面的清單是 REG_SZ 機碼值的範例:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\Memory Management\VerifyDriverLevel
下面的清單列出了此機碼的位元欄位值。您可以隨意組合這些值:
這篇文章中的資訊適用於:
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。 | 其他資源 其他支援網站社群立即取得協助文章翻譯
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email
回此頁最上方
