⚡ 站長快讀:核心重點
- 文章屬性:疑難排除(底層除錯)
- 適用系統:Windows 10 / Windows 11
- 難易度 / 耗時:⭐⭐⭐ / 約 40 分鐘
- 核心結論:0x7F 的第一個參數是「陷阱編號」,那個數字直接決定你該查硬體還是查驅動,不看它就開始拆機是在賭運氣。
- 適用對象:跳 UNEXPECTED_KERNEL_MODE_TRAP 藍屏、近期加裝或更換過硬體、開過超頻,或剛裝過新驅動的人。
📌 快速答案
一句話答案:UNEXPECTED_KERNEL_MODE_TRAP(0x7F)代表 CPU 丟出了一個核心接不住的陷阱,先讀藍屏第一個參數的陷阱編號——0x8(Double Fault)優先查核心堆疊溢位與硬體,0x6(Invalid Opcode)官方點名最常見原因是硬體記憶體損毀,再依官方順序還原超頻與新硬體、跑記憶體診斷,最後才用 Driver Verifier 逼出問題驅動。
🧰 開始前的準備
- 適用系統:微軟 Bug Check 0x7F 官方文件未區分 Windows 版本,本文步驟以 Windows 10/11 為主
- 權限需求:系統管理員;部分步驟需進入 UEFI/BIOS 設定,或進入安全模式與 Windows 修復環境
- 需要工具:事件檢視器(內建)、Windows 記憶體診斷(內建)、WinDbg(分析傾印檔用)、Driver Verifier
verifier.exe(內建,進階步驟才用)、主機板與裝置廠商提供的 BIOS/驅動更新檔與硬體診斷工具 - 預計耗時:初步定位約 40 分鐘;記憶體完整多輪測試建議跑滿一整夜;Driver Verifier 沒有官方建議的觀察時長(官方以重開機次數而非天數計),請以「跑到再次重現藍屏」為準
⚠️ 開始前務必備份,並先建好系統還原點:本文後段會動到 UEFI/BIOS 設定、驅動程式檔案,並會啟用 Driver Verifier。微軟官方在 Driver Verifier 文件中明確警告:執行 Driver Verifier 可能導致電腦當機,只應在你用來測試與偵錯的電腦上執行。請先把重要資料複製到外接裝置,確認 BitLocker 修復金鑰拿得到,並確認你知道怎麼進安全模式。
停止條件清單(符合任一,請先停手):①不確定自己的主機板型號或記憶體規格;②尚未完成資料備份;③已啟用 BitLocker 但拿不到修復金鑰;④公司或學校管控的設備、未取得 IT 授權;⑤這是你唯一一台生產力機器,無法承受連續當機;⑥需要更新 BIOS 卻沒有可靠供電或救援手段;⑦指令輸出與本文描述明顯不符。
🔍 症狀描述與錯誤訊息
0x7F 最典型的畫面,是停止碼畫面上直接印出停止碼名稱:
🙁 您的裝置發生問題,需要重新啟動。
停止代碼:UNEXPECTED_KERNEL_MODE_TRAP
在較舊的畫面樣式或傾印檔分析輸出中,你會看到十六進位形式,而真正有用的資訊在括號裡的第一個參數:
STOP: 0x0000007F (0x00000008, 0xFFFFF80xxxxxxxxx, 0x00000000, 0x00000000)
📎 順帶提醒一件容易誤判的事:微軟支援文件同時使用「停止碼錯誤(stop code error)」「bug check」「kernel error」「Blue Screen error」「Black Screen error」「BSOD」等多種稱呼,並沒有廢掉「藍屏」這個講法。真正的重點是官方明載畫面顏色與訊息會依 Windows 版本而異,Windows 11 24H2 之後的版本為黑底畫面——所以不要用畫面顏色去判斷是不是同一種問題,要看停止碼本身。
這個停止碼有幾個很有辨識度的行為特徵,先對一下你手上的狀況:
一、官方講的是「情境」,不是「發作時機規律」。 官方的「Cause」一節只描述觸發情境——安裝了故障或規格不相符的硬體、或既有硬體開始故障;它沒有說 0x7F 比較容易在重負載、閒置或某個時段發作。官方唯二點名的兩個時間點在「Troubleshoot」一節:錯誤發生在開機序列中(處置是進安全模式改名或刪除驅動),以及升級到新版 Windows 時(處置是先清掉不相容的第三方軟體)。除了這兩個情境,用「我都是玩遊戲才跳」這種時間點去反推原因,官方沒有給對應的線索。
二、換了硬體之後開始跳,是最強的訊號。 微軟官方對 0x7F 的定性寫得很直白:這個 Bug Check 通常發生在你安裝了故障或規格不相符的硬體之後,特別是記憶體;或是既有硬體開始故障時。 這句話的份量很重——它把「最近動過什麼硬體」直接推到排查順序的第一位。
三、參數 1 會反覆出現同一個值,或在幾個值之間跳。 如果你有多份傾印檔,把每一份的參數 1 列出來比對,常常會看到明顯的集中傾向。官方在偵錯建議裡也特別提醒:要在多份傾印檔中尋找反覆出現的模式(reoccurring trends),而不是只看單一次當機。
先確認你抓得到傾印檔。 這個停止碼的價值全在那四個參數上,藍屏一閃就自動重開等於整份線索都拿不到;請先把自動重新啟動關掉、把記憶體傾印設定好再繼續。
🔎 問題根因
微軟官方對 Bug Check 0x7F 的定義是:這個 Bug Check 值為 0x0000007F,表示 Intel CPU 產生了一個陷阱(trap),而核心沒有攔截到這個陷阱。 官方進一步把這個陷阱分成兩種類型:
- Bound trap(界限陷阱)——核心「不被允許」攔截的陷阱。
- Double fault(雙重錯誤)——在處理前一個錯誤的過程中又發生了錯誤,這種情況一律導致系統失敗。
換句話說,0x7F 不是某個元件「壞掉」的錯誤碼,而是例外處理鏈本身斷掉的錯誤碼。CPU 舉手說「出事了」,核心的處理常式卻沒接住,或是接的過程中又出事——系統只剩下停機一條路。這個定位讓 0x7F 和站內其他常見停止碼有清楚的分工:官方對 0x1A(MEMORY_MANAGEMENT)的定義是「發生嚴重的記憶體管理錯誤」、對 0x2E(DATA_BUS_ERROR)的定義是「通常表示在系統記憶體中偵測到同位元錯誤」,兩者的實際成因都由各自的參數決定;而 0x7F 的判準是 CPU 產生的陷阱沒被核心接住,起點在例外處理鏈,不在記憶體管理或資料完整性檢查。
至於為什麼會走到這一步,官方點名了兩條主線:
第一條是硬體。 官方原文:Bug Check 0x7F 通常發生在安裝了故障或規格不相符的硬體之後(特別是記憶體),或既有硬體發生故障時。 這裡的關鍵詞是「不相符(mismatched)」——不是只有壞掉才算,規格對不上、體質撐不住設定值,一樣算數。這也是為什麼超頻與記憶體超頻設定檔會是常客。
第二條是核心堆疊溢位。 官方明載:當核心堆疊溢位時可能發生 Double Fault;如果有多個驅動程式掛在同一個堆疊上,就會發生這種溢位。 官方甚至給了具體情境:如果兩個檔案系統過濾驅動程式掛在同一個堆疊上,而檔案系統又遞迴回來,堆疊就會溢位。 這條路徑值得留意的地方在於:官方舉的例子是「兩支檔案系統過濾驅動程式」,而防毒軟體、備份代理程式、雲端同步工具與磁碟加密工具在 Windows 上常見的實作方式就是這一類驅動。如果你的機器同時裝了好幾套這類軟體,就落在官方點名的情境裡——這一句是對官方範例的情境對應,官方文件本身並未點名任何軟體類別,也沒有給任何普及率數字。
把上面幾條拼起來,0x7F 的根因可以歸成四類:
- 記憶體故障或規格不相符——最常見,也是官方第一個點名的。
- 時脈與電力不穩——超頻、BIOS 記憶體快取設定、供電不足。
- 核心堆疊溢位——多層過濾驅動程式互相疊加,或驅動程式遞迴。
- 驅動程式本身有缺陷——存取非法位址、執行到損毀的指令流。
🔬 底層機制:這個錯誤訊號從哪裡來?
陷阱編號:CPU 用一個編號告訴你它撞到什麼
現代 x86/x64 處理器遇到例外狀況時,不會直接停機,而是依照例外的種類產生一個帶編號的陷阱,交給作業系統事先登記好的處理常式。Windows 的 Bug Check 0x7F,就是把那個編號原封不動放在第一個參數上。
官方文件寫得很清楚:藍屏上出現的第一個參數指定的是陷阱編號(trap number)。 這一句話是整篇文章的核心——它代表你不必猜,CPU 已經把「它撞到的是哪一類問題」寫在畫面上了。
五個最常見的陷阱編號
微軟官方列出的常見陷阱編號如下(以下說明皆取自官方 Bug Check 0x7F 文件):
| 參數 1 | 陷阱名稱 | 官方說明 |
|---|---|---|
| 0x00000000 | Divide by Zero Error | 執行 DIV 指令而除數為零。記憶體損毀、其他硬體問題或軟體失效都可能造成。 |
| 0x00000004 | Overflow | 處理器在溢位(OF)旗標被設定的情況下呼叫中斷處理常式。 |
| 0x00000005 | Bounds Check Fault | 處理器執行 BOUND 指令時,發現運算元超出指定範圍。BOUND 指令用於確保帶號陣列索引落在特定範圍內。 |
| 0x00000006 | Invalid Opcode | 處理器嘗試執行無效指令。通常發生在指令指標已損毀、指向錯誤位置時,最常見的原因是硬體記憶體損毀。 |
| 0x00000008 | Double Fault | 在處理前一個例外的過程中又發生例外。多數例外可以循序處理,但有些無法,此時處理器就會發出 Double Fault 訊號。 |
表格的三個重點:
- 0x06 的官方說法最明確:「最常見的原因是硬體記憶體損毀」。 指令指標指到不該指的地方,通常代表記憶體或快取裡的內容已經不是原本寫進去的東西。
- 0x00 則是三種可能並列,不要只往記憶體想。 官方對它列的是「記憶體損毀、其他硬體問題,或軟體失效」三者皆可能造成,並未特別指向記憶體;把 0x00 直接當成「記憶體壞了」是常見的過度解讀。
- 0x08 要先查堆疊,再查硬體。 這是唯一官方額外展開說明成因的編號(下一節詳述)。
- 官方把這五個並列為「最常見」,沒有給相對頻率。 所以不要因為某個編號「聽起來冷門」就跳過它——排查順序請依編號本身的意義走,不要依猜測的出現機率。
除了上述五個,官方也列出較不常見的陷阱編號,遇到時可以對照:0x01(系統除錯器呼叫,DEBUG)、0x03(除錯器中斷點,INT3)、0x07(使用了硬體共處理器指令但共處理器不存在,NXP_NOT_AVAILABLE)、0x0A(工作狀態區段損毀,INVALID_TSS)、0x0B(存取不存在的記憶體區段,SEGMENT_NOT_PRESENT)、0x0C(存取超出堆疊界限的記憶體,STACK_FAULT)、0x0D(未被其他例外涵蓋的例外、應用程式存取違規的保護錯誤,GP_FAULT)、0x0F(保留的陷阱例外,RESERVED_TRAP)、0x10(硬體共處理器例外,NPX_ERROR)、0x11(對齊檢查例外,ALIGNMENT_CHECK)。其他編號則需要對照你所排查之處理器的 Intel 處理器架構手冊——這句話同樣是官方原文,不是本文的延伸推論。
Double Fault 的兩條路:堆疊溢位與硬體
參數 1 是 0x00000008 時,官方直接給了兩個常見成因,順序也有意義:
第一個成因是核心堆疊溢位。 官方描述得很具體:當守衛頁(guard page)被踩到、核心試圖推入一個陷阱框(trap frame)時,溢位就發生了——因為堆疊已經沒有空間,推入的動作造成堆疊溢位,進而導致 Double Fault。 這段話值得拆開理解:核心執行緒的堆疊有固定上限,底部有一頁守衛頁當作警戒線;當呼叫層數太深踩到守衛頁,系統本該產生例外處理,但處理例外本身需要在堆疊上再推一個陷阱框——堆疊已經滿了,推不進去,於是「處理錯誤時又發生錯誤」=Double Fault。
官方對這個情境也給了明確的偵錯指令:如果你認為發生的是這種情況,用 !thread 擴充命令確認堆疊界限,再用 kb 命令搭配較大的數值(例如 kb 100)顯示完整的堆疊。 完整堆疊裡如果看到同一組驅動程式反覆出現,或看到明顯的遞迴模式,那就是官方所說的「多個驅動程式掛在同一個堆疊上」。
第二個成因是硬體問題。 官方原文只有一句「The second common cause is a hardware problem」,沒有再展開——這也符合 0x7F 整體的定性:硬體是主線,堆疊溢位是需要特別辨認的支線。
用 WinDbg 把參數挖出來
如果藍屏一閃而過,或你想確認參數 1 的實際值,官方給的分析順序是固定的三步:
第一步,永遠先跑 !analyze 加上 -v 選項。 官方原文是「Always begin with the !analyze extension with the -v option, verbose」,並要求檢視輸出與出錯的程式碼,並在多份傾印檔中尋找反覆出現的模式。
kd> !analyze -v第二步,跑 kv 顯示堆疊回溯。 官方明訂 !analyze 之後接著用 kv,然後依 kv 的輸出分岔:
- 如果
kv顯示的是 task gate,對冒號前面那一段用.tss命令(顯示工作狀態區段)。 - 如果
kv顯示的是 trap frame,用.trap命令把那個框格式化出來。 - 其他情況,對適當的框使用
.trap;在 x86 平台上,這個框對應到NT!KiTrap程序。
第三步,再跑一次 kv 顯示新的堆疊。 這是官方明列的收尾動作——切換過暫存器內容之後,堆疊回溯的內容會不一樣,第二次的 kv 才是你要分析的那份。
順帶一提,.trap 命令的官方文件也印證了本文的定位:這個擴充命令常用於偵錯 Bug Check 0xA 與 0x7F。 如果你還沒裝過 WinDbg、不確定怎麼載入 minidump,可以先看站內這篇〈WinDbg 藍畫面 minidump 分析教學〉把環境架起來,再回頭跑上面三步。
🛠️ 解決方案
⚠️ 高風險操作警語:方法二會進入 UEFI/BIOS 變更設定,方法三會啟用 Driver Verifier(官方警告可能導致電腦當機)。動手前請確認資料已備份、系統還原點已建立、你知道怎麼進安全模式,並重新確認上方的停止條件清單。
方法一:還原近期硬體變更,先把嫌疑最大的排掉
這是官方排在最前面的處置,理由很單純——0x7F 的官方定性就是硬體問題優先。
- 最近加裝的硬體,先拆回去。 官方原文:如果你最近為電腦加裝了硬體,把它移除,看看錯誤是否再度發生。 記憶體、顯示卡、擴充卡、外接裝置都算。
- 既有硬體疑似故障,就移除或更換。 官方同時建議:執行系統製造商提供的硬體診斷程式,以判定是哪一個硬體元件故障。 品牌機的原廠診斷工具(通常在開機選單或 UEFI 內)在這一步比通用工具更有價值,因為它知道自家的硬體配置。
- 記憶體單獨驗一次。 官方明講:故障或規格不相符的記憶體會造成這個 Bug Check,請使用 Windows 的記憶體診斷程式測試所有系統記憶體。 官方的說法是使用「Windows 內的記憶體診斷程式」,實務上在「開始」搜尋「Windows 記憶體診斷」即可開啟(該工具的執行檔名
mdsched.exe為第二級來源的普遍寫法,微軟 0x7F 官方頁本身未指名檔名)。如果你想知道內建工具與第三方深驗工具的差別,站內有一篇〈MemTest86 vs Windows 記憶體診斷〉做過取捨對照。 - 確認硬碟與硬碟控制器相容性。 官方要求確認所有硬碟機與硬碟控制器都與所安裝的 Windows 版本相容——老機器換裝新系統、或加裝了非原廠的儲存控制卡時,這一條特別容易中。
- 別忘了主機板與電源。 官方也點名:主機板可能有問題,例如線路刮傷或元件瑕疵;供電不良的電源供應器同樣可能造成問題。 這兩項一般使用者不容易自檢,但如果前面幾步都排除了,它們就會浮上來。
方法二:還原超頻,並關掉 BIOS 記憶體快取
這一步是官方針對 0x7F 特別寫出來的兩個 BIOS 層級動作,順序不要顛倒。
先還原時脈。 官方定義超頻為「把 CPU 設定成高於額定規格的速度執行」,並直接寫明:這可能造成此錯誤;如果你對出現錯誤的電腦超過頻,請把 CPU 調回預設時脈設定。 實務上這一步要一起處理的還有記憶體超頻設定檔(XMP / EXPO),因為那本質上也是把記憶體推到高於 JEDEC 標準的時脈與時序。
再看記憶體快取選項。 官方接著寫:如果 BIOS 有提供該選項,停用 BIOS 的記憶體快取(memory caching)以嘗試解決問題。 這個選項在現代主機板上不一定找得到,找不到就跳過——不要為了找它而去改別的看不懂的選項。
同時把韌體與關鍵驅動更新一輪。 官方在軟體側的建議是:向硬體製造商確認 ACPI/BIOS、硬碟控制器或網路卡是否有可用的更新。 這三類正好都是在開機早期就會載入、且與陷阱層級錯誤高度相關的元件。
方法三:用事件檢視器與 Driver Verifier 逼出問題驅動
硬體那條線走完仍未解決,才輪到驅動程式。
第一步,查事件檢視器的「系統」記錄檔。 官方原文:檢查事件檢視器中的系統記錄檔,看看是否有其他錯誤訊息可以幫助辨識造成錯誤的裝置或驅動程式。 藍屏前幾秒到幾分鐘的警告與錯誤,常常直接點名裝置。
第二步,對「最近安裝或更新的驅動程式」動刀。 官方寫得很完整:如果錯誤發生在安裝新的或更新過的裝置驅動程式之後,移除或更換該驅動程式。 並且——如果在這種情況下錯誤發生在開機序列中,使用安全模式來重新命名或刪除有問題的驅動程式。
⚠️ 這一段官方文件有舊時代的殘留,照抄會找不到入口。 該頁接著寫「如果該驅動程式在安全模式下也屬於系統啟動流程的一部分,請使用修復主控台(Recovery Console)開機以存取該檔案」,並建議嘗試「最後一次的正確設定(Last Known Good Configuration)」。這兩項在 Windows 10/11 上都對不到入口:微軟的修復主控台疑難排解文件,適用範圍標示的是 Windows Server 2003,而 Windows 10/11 的內建修復環境是 Windows 修復環境(WinRE);微軟現行「Windows 啟動設定」官方清單共九項,其中沒有「最後一次的正確設定」。在 Windows 10/11 上的對應做法是:進 WinRE →「疑難排解 → 進階選項」,依情況使用「命令提示字元」存取檔案、「解除安裝更新」或「系統還原」。這也是本文從一開始就要你先建好系統還原點的原因。
第三步,才輪到 Driver Verifier。 這是把「疑似問題驅動」轉成「確定的 Bug Check」的工具,但它本身就是設計來讓機器當機的:
⚠️ 官方警告(逐字):執行 Driver Verifier 可能導致電腦當機。只在你用來測試與偵錯的電腦上執行 Driver Verifier。你必須是該電腦上 Administrators 群組的成員才能使用 Driver Verifier。
Driver Verifier 已內建於大多數 Windows 版本,位於 %WinDir%\system32\ 的 Verifier.exe,不需要另外下載。啟動方式是以系統管理員身分開啟命令提示字元後執行 verifier,開啟 Driver Verifier Manager 圖形介面;官方建議的路徑是選「建立標準設定(Create standard settings)」。
在選擇要驗證哪些驅動程式時,官方特別提醒「自動選取這台電腦上安裝的所有驅動程式」這個選項雖然涵蓋範圍最大,但可能耗盡 Special Pool 與部分資源追蹤可用的資源,也會對系統效能造成負面影響;而「從清單選取驅動程式名稱」則是官方所說「大多數情況下你會想指定要測試哪些驅動程式」的做法。設定完成後需要重新啟動電腦。
命令列版本的語法同樣有官方文件,例如針對單一驅動程式跑標準設定:
verifier /standard /driver myDriver.sys要查目前狀態或設定,可以用 verifier /query 與 verifier /querysettings。
Driver Verifier 抓到違規時會做什麼? 官方寫明:Driver Verifier 偵測到的所有違規都會導致 Bug Check,這個 Bug Check 通常是 Bug Check 0xC4。 也就是說,啟用之後你的藍屏代碼很可能從 0x7F 變成 0xC4——這是預期行為,不是變嚴重了。要注意的是,藍屏畫面不一定會顯示出錯的模組名稱——微軟支援文件的寫法是停止碼下方「如果有的話」才會一併顯示出錯模組——而 0xC4 把「違規種類」放在第一個參數,畫面上也看不到參數細節。所以定位真兇仍要拿傾印檔跑 !analyze -v,官方也明講加上 -v 才會顯示「有助於辨識出錯驅動程式」的額外資訊。站內對這個代碼有專篇:〈DRIVER_VERIFIER_DETECTED_VIOLATION(0xC4)藍屏怎麼修?〉。
最後,升級情境要特別處理。 官方提醒:如果你是在升級到新版 Windows 時遇到這個錯誤,原因可能是不相容的軟體,例如裝置驅動程式、系統服務、防毒掃描器或備份工具。 官方建議在升級前盡可能移除所有第三方裝置驅動程式與系統服務,並停用防毒掃描器,同時確認已安裝最新的 Windows 更新。這一條同時呼應了前面「多個過濾驅動程式疊在同一個堆疊」的溢位路徑。
✅ 驗證修復結果
0x7F 的驗證比一般藍屏麻煩,因為它的重現條件不穩定。建議照下面的順序確認,而不是「跑了半天沒當就當作好了」:
- 記憶體診斷要跑完整輪次。 單輪通過只代表「這一輪沒抓到」,體質邊緣的模組常常要多輪才會露餡。
- 回到原本會觸發藍屏的情境。 之前是遊戲載入時跳就回去跑同一款遊戲;是開機時跳就多做幾次冷開機(完全關機後隔一段時間再開),不要只用重新啟動。
- 檢查事件檢視器有沒有新的錯誤訊息。 官方在排錯段落就要你檢查事件檢視器中的系統記錄檔,看看是否有其他錯誤訊息可以幫助辨識造成錯誤的裝置或驅動程式——修好之後同樣值得回頭再看一次,確認那些訊息已經不再出現。
- 確認有沒有新的傾印檔產生。 沒有新傾印檔,才是真的沒再當機。
- 啟用過 Driver Verifier 就務必記得關掉(見下一節),別讓機器長期停在容易當機的狀態。
🔙 萬一翻車:回退步驟
| 情境 | 回退動作 |
|---|---|
| 啟用 Driver Verifier 後系統開始頻繁當機或無法正常使用 | 以系統管理員身分執行 verifier /reset,或在 Driver Verifier Manager 選「刪除現有設定(Delete existing settings)」,然後重新啟動電腦。官方明訂這兩者是停止或重設 Driver Verifier 的標準做法。 |
| 啟用 Driver Verifier 後進不了桌面 | 開機時進入安全模式,在安全模式下執行 verifier /reset 後重新啟動。安全模式依官方說明「以基本狀態啟動 Windows,只使用有限的檔案與驅動程式」,多數第三方驅動不會被載入,通常足以讓你開機進去把設定清掉。注意預設的 persistent 開機模式會讓 Driver Verifier 設定跨多次重開機持續生效,不執行 verifier /reset 就不會自己失效;若當初是以 /bootmode resetonbootfail、oneboot 或 /bc <重開機次數> 啟用,才會依該設定自動停用。 |
| 移除或改名驅動程式後裝置失效 | 從裝置管理員重新掃描硬體變更,或到裝置廠商官網重新下載安裝該驅動的已知穩定版本;若仍失效,使用操作前建立的系統還原點還原。 |
| 改了 BIOS 設定後開不了機或畫面異常 | 進入 UEFI/BIOS 後載入「最佳化預設值 / Load Optimized Defaults」還原;若完全無法進入設定畫面,依主機板手冊執行清除 CMOS。注意:清除 CMOS 會一併清掉你所有的自訂設定,包含開機順序。 |
| 改動後問題沒解決,想回到原狀 | 使用操作前建立的系統還原點;還原點是本文所有步驟中最通用的退路,這也是「開始前的準備」堅持要先建立它的原因。 |
關於還原值的提醒:回退 BIOS 設定時,「預設值」指的是你這片主機板的原廠預設,不同品牌、不同 BIOS 版本的預設值並不相同;請以載入預設值的方式還原,不要照抄任何文章(包含本文)寫死的數值。同理,驅動程式請還原成你操作前實際在用的那個版本,而不是無條件抓最新版。
💡 總結:預防再次發生
站長我看 0x7F 這個代碼,最想提醒的一件事是:它是少數「藍屏本身就告訴你該往哪查」的停止碼,但也是最多人直接跳過那個提示的停止碼。 一個數字就能把「查硬體」和「查堆疊」分開,可是多數人看到 UNEXPECTED_KERNEL_MODE_TRAP 就直接開始拆記憶體。官方文件的編排其實已經在提示這件事:整份文件裡,Double Fault(0x08)是唯一被額外展開成因說明的編號,而參數 1 那一節的篇幅與「Cause」加「Troubleshoot」兩節相當——微軟願意花這麼多字解釋一個參數,那就是它希望你先看的東西。
預防面,三個動作最實在:
一、超頻設定要留退路。 把能穩定跑的 BIOS 設定存成一組 profile,改設定前先存檔。0x7F 有很高比例出現在「調了設定、當下沒事、幾天後開始跳」的情境,有 profile 就能一鍵回到已知穩定狀態。
二、過濾驅動類軟體不要疊太多層。 防毒、備份代理、雲端同步、磁碟加密——這些在 Windows 上都是檔案系統過濾驅動程式,官方點名的堆疊溢位情境正是它們疊起來的結果。同類工具留一套就好,尤其不要同時裝兩套即時防護。
三、記憶體要在「換上去的當下」就驗,而不是等藍屏才驗。 新記憶體上機先跑滿一輪完整診斷,遠比事後從一堆變因裡回推便宜。官方把記憶體列為 0x7F 的頭號嫌疑犯,不是沒有道理的。
❓ 常見問題
Q:0x7F 是不是一定要換記憶體?
不一定。官方確實把「故障或規格不相符的硬體,特別是記憶體」列為最常見成因,但同一份文件也明列了核心堆疊溢位、驅動程式與升級相容性等軟體路徑。正確的順序是先讀參數 1:0x08 要先查堆疊與驅動疊層;0x06 才是官方明講「最常見原因是硬體記憶體損毀」的編號;0x00 官方則是把記憶體損毀、其他硬體問題與軟體失效三者並列。
Q:參數 1 是 0x00000008,官方說可能是堆疊溢位,我要怎麼確認?
用 WinDbg 載入傾印檔,先跑 !analyze -v,再用 !thread 確認堆疊界限,然後用 kb 100 這類帶較大數值的命令印出完整堆疊。如果堆疊裡看到同一組驅動程式反覆出現、或明顯的遞迴,就符合官方所描述的「多個驅動程式掛在同一個堆疊上」情境。
Q:0x7F 跟 0x1A(MEMORY_MANAGEMENT)、0x2E(DATA_BUS_ERROR)差在哪?
判準不同,不是嚴重程度不同。官方對 0x7F 的定義是「Intel CPU 產生了一個陷阱,核心沒有攔截到」;對 0x1A 的定義是「發生嚴重的記憶體管理錯誤」;對 0x2E 的定義是「通常表示在系統記憶體中偵測到同位元錯誤」。三者的成因清單有重疊(都可能來自記憶體故障),但排查起點不同:三個代碼的實際方向都由各自的參數決定,而 0x7F 的參數 1 是陷阱編號,另外兩者的參數語意各自不同。
Q:Driver Verifier 開了之後藍屏變更頻繁,是不是弄壞了?
不是。官方明確警告執行 Driver Verifier 可能導致電腦當機,而且所有被偵測到的違規都會產生 Bug Check——變頻繁正是它在工作。重點是:①只在測試機或你承受得起當機的機器上開;②抓到 0xC4 之後,記下它指名的驅動程式;③收工後一定要用 verifier /reset 關掉並重新啟動。
Q:修完之後又復發怎麼辦?
把每一次的傾印檔留著,比對參數 1 是否仍是同一個編號。官方在偵錯段落就要求「在多份傾印檔中尋找反覆出現的模式」——如果編號一致而你已經換過記憶體,那訊號就會轉向堆疊溢位與驅動疊層那條路;如果編號改變,通常代表底層硬體(供電、主機板、CPU 本身)的穩定度需要重新評估。
🔗 延伸閱讀
- KMODE_EXCEPTION_NOT_HANDLED(0x1E)藍屏:多半是驅動出包——同樣是「例外沒被處理」家族,但發生在核心模式程式而非 CPU 陷阱層。
- MEMORY_MANAGEMENT(0x1A)藍屏怎麼修?讀懂停止碼參數揪真兇——記憶體管理層的對照組。
- DATA_BUS_ERROR 0x2E 藍屏排錯:讀懂四個參數,用實體位址找出真兇——匯流排層級的對照組,與本文合看可以把三個層級串起來。
- CLOCK_WATCHDOG_TIMEOUT(0x101)當機:九成是超頻或驅動搞的鬼——同樣與超頻高度相關的停止碼。
- 電腦當機、藍屏後想知道原因?用事件檢視器讀懂當機紀錄揪前兆——方法三第一步的完整操作。
📎 參考資料來源
📖 第一級|廠商官方:
- Bug check 0x7F: UNEXPECTED_KERNEL_MODE_TRAP — Microsoft Learn — 2026-07-29 查證
- Driver Verifier — Microsoft Learn — 2026-07-29 查證
- .trap (Display Trap Frame) — Microsoft Learn — 2026-07-29 查證
- Driver Verifier Command Syntax — Microsoft Learn — 2026-07-29 查證
- Bug Check 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION — Microsoft Learn — 2026-07-29 查證
- Bug Check 0x1A: MEMORY_MANAGEMENT — Microsoft Learn — 2026-07-29 查證
- Bug Check 0x2E: DATA_BUS_ERROR — Microsoft Learn — 2026-07-29 查證
- Windows 啟動設定(含安全模式定義與九項啟動設定清單)— Microsoft 支援 — 2026-07-29 查證
- 疑難排解 Windows 非預期重新啟動與停止碼錯誤(畫面顏色依版本而異)— Microsoft 支援 — 2026-07-29 查證
- Windows 修復環境(WinRE)技術參考 — Microsoft Learn — 2026-07-29 查證
- 使用修復主控台(適用範圍:Windows Server 2003)— Microsoft Learn — 2026-07-29 查證
⚠️ 本文核心事實以第一級為準;內文提及的 mdsched.exe 檔名屬第二級來源之普遍寫法,微軟 0x7F 官方頁未指名檔名,已於內文標示。
📅 本文查證戳記:2026-07-29 依據 Microsoft Learn 官方 Bug Check 與 Driver Verifier 文件撰寫。
若你在後續版本遇到步驟失效,歡迎在留言區回報,站長會更新文章。