2011年9月10日 星期六

DebugView Log Boot Fails

在 Vista 以後的 Windows 系統中, 預設是不輸出所有種類的裝置驅動程式, 以 DbgPrint(Ex) 丟出的訊息的, 這使得我們用 DebugView 的 Log Boot 後, 依然無法看到訊息, 解決辦法就是設定 Debug Print Filter.
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter]
"DEFAULT"=DWORD:0000000F
在 Debug Print Filter 中, 我們可以如上例設定預設 filter, 另外我們也可以針對驅動程式種類設定 filter:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter]
"IHVAUDIO"=DWORD:0000000F
"MOUCLASS"=DWORD:0000000F
至於有哪些種類可以設定呢? 可以在 WDK 的 header file 中搜尋 DPFLTR_TYPE. 以 WDK7600 為例, 可在 inc\api\dpfilter.h 中找到如下的定義, 只要取常數名中間的部份為 key 即可.
    DPFLTR_I8042PRT_ID = 15,
    DPFLTR_MOUHID_ID = 19,
    DPFLTR_IHVAUDIO_ID = 79,


更多資訊:
Where did my debug output go in Vista?
Reading and Filtering Debugging Messages - Setting the Component Filter Mask
How to enable verbose debug tracing in various drivers and subsystems

沒有留言:

張貼留言