藍屏代碼0x000000C9代表"DRIVER_VERIFIER_IOMANAGER_VIOLATION",這意味著Windows驅動程序驗證器檢測到輸入/輸出管理器(I/O Manager)違規(guī)。這可能是由于一個驅動程序操作與操作系統(tǒng)的I/O管理不兼容或存在錯誤引起的。
要解決這個問題,可以嘗試以下方法:
方法一:升級操作系統(tǒng)
【資料圖】
某些情況下,升級到最新版本的操作系統(tǒng)可能會解決這個問題,確保你的操作系統(tǒng)是最新的,并按照系統(tǒng)更新進行升級。
方法二:禁用驅動程序驗證
這個錯誤可能是由于啟用了驅動程序驗證引起的,打開命令提示符并以管理員身份運行命令“verifier / reset”來禁用驅動程序驗證。
方法三:更新或卸載驅動程序
如果錯誤是由于特定驅動程序引起的,你可以嘗試更新該驅動程序到最新版本,或者,如果你知道哪個驅動程序引起了問題,你可以嘗試卸載它。
方法四:使用一鍵修復工具助手(強烈推薦)
1、首先你的電腦必須下載與完成安裝完成快快藍屏修復助手。如果你還沒有安裝點擊下方鏈接下載。
下載地址:>>>快快藍屏修復助手<<<
提示:安裝路徑不要選擇C盤,避免產生問題造成損失。
2、找到你電腦中的快快藍屏修復助手,點擊進入??吹绞醉摵螅c擊首頁一鍵掃描按鈕開始掃描。等待幾分鐘,就能獲取你急切想要的結果。
3、掃描完成后會顯示電腦的所有藍屏記錄以及藍屏的詳細信息。
4、解決方案頁面顯示了導致該次藍屏的具體原因和解決方案,點擊右上角的一鍵修復進行修復。
5、切記,當修復完成之后我們還是需要重新啟動計算機的。畢竟一切修復的結果,需要重新后,才能被系統(tǒng)認可。
當你完成重啟后,你電腦的藍屏問題已經基本解決了。相信小編,不要急需卸載快快藍屏修復助手。畢竟它強大的功能是你未來的一個保障,可以隨時隨地為你服務,讓你再次遇到藍屏問題不在抓狂。
其他相關信息:
DRIVER_VERIFIER_IOMANAGER_VIOLATION bug 檢查 的值為 0x000000C9。 這是所有驅動程序驗證程序 I/O 驗證沖突的 bug 檢查代碼。
DRIVER_VERIFIER_IOMANAGER_VIOLATION參數(shù)
當驅動程序驗證程序處于活動狀態(tài)且選擇 I/O 驗證時,各種 I/O 沖突將導致發(fā)出此 bug 檢查。 參數(shù) 1 標識沖突的類型。
參數(shù) 1 | 參數(shù) 2 | 參數(shù) 3 | 參數(shù) 4 | 錯誤消息的原因 |
---|---|---|---|---|
0x01 | 正在釋放的 IRP 的地址 | 0 | 0 | 驅動程序嘗試釋放其類型不是IO_TYPE_IRP的對象。 |
0x02 | 正在釋放的 IRP 的地址 | 0 | 0 | 驅動程序嘗試釋放仍與線程關聯(lián)的 IRP。 |
0x03 | 正在發(fā)送的 IRP 的地址 | 0 | 0 | 驅動程序向 IoCallDriver傳遞了不等于 IRP_TYPE 的 IRP 類型。 |
0x04 | 設備對象的地址 | 0 | 0 | 驅動程序向 IoCallDriver傳遞了無效的設備對象。 |
0x05 | 與違規(guī)驅動程序關聯(lián)的設備對象的地址 | IoCallDriver之前的 IRQL | IoCallDriver 之后的IRQL | IRQL 在調用驅動程序調度例程期間發(fā)生了更改。 |
0x06 | IRP 狀態(tài) | 正在完成的 IRP 地址 | 0 | 名為 IoCompleteRequest的驅動程序,其狀態(tài)標記為掛起 (或等于 -1) 。 |
0x07 | 取消例程的地址 | 正在完成的 IRP 地址 | 0 | 驅動程序調用 IoCompleteRequest,而其取消例程仍處于設置狀態(tài)。 |
0x08 | 設備對象的地址 | IRP 主要函數(shù)代碼 | 異常狀態(tài)代碼 | 驅動程序向 IoBuildAsynchronousFsdRequest傳遞了無效緩沖區(qū)。 |
0x09 | 設備對象的地址 | I/O 控制代碼 | 異常狀態(tài)代碼 | 驅動程序傳遞了 IoBuildDeviceIoControlRequest無效緩沖區(qū)。 |
0x10 | 當前 IRQL | 預留 | 預留 | DISPATCH_LEVEL上面調用了 IoCallDriver。 |
0x11 | 驅動程序快速 I/O 調度例程地址 | 調用驅動程序調度例程之前的 IRQL | 當前 IRQL | DISPATCH_LEVEL上面調用了 IoCallDriver。 |
0x12 | 驅動程序調度例程地址 | 調用驅動程序調度例程之前的 IRQL | 當前 IRQL | DISPATCH_LEVEL上面調用了 IoCallDriver。 |
0x0A | 設備對象的地址 | 0 | 0 | 驅動程序向 IoInitializeTimer傳遞了具有已初始化計時器的設備對象。 |
0x0C | I/O 狀態(tài)塊的地址 | 0 | 0 | 驅動程序已將 I/O 狀態(tài)塊傳遞給 IRP,但此塊在已取消轉換的堆棧上分配。 |
0x0D | 用戶事件對象的地址 | 0 | 0 | 驅動程序將用戶事件傳遞給 IRP,但此事件在已超過該點的堆棧上分配。 |
0x0E | 當前 IRQL | IRP 地址 | 0 | 名為 IoCompleteRequest的驅動程序與 IRQL > DISPATCH_LEVEL。 |
0x0F | 要向其發(fā)送 IRP 的設備對象的地址 | 指向 IRP 的指針 | 指向文件對象的指針 | 驅動程序發(fā)送了一個創(chuàng)建請求,其中包含已關閉或已取消其打開的文件對象。 |
除了上表中提到的錯誤外,還有一些 I/O 驗證錯誤會導致驅動程序驗證程序停止系統(tǒng),但這些錯誤實際上不是 bug 檢查。
這些錯誤會導致消息顯示在藍屏、故障轉儲文件和內核調試器中。 這些消息在每個位置的顯示方式不同。 發(fā)生這些錯誤時,十六進制 bug 檢查代碼0xC9,bug 檢查字符串DRIVER_VERIFIER_IOMANAGER_VIOLATION不會出現(xiàn)在藍屏或調試器中,盡管它們將顯示在故障轉儲文件中。
在藍屏上,將顯示以下數(shù)據(jù):
消息 IO 系統(tǒng)驗證錯誤。
消息 WDM DRIVER ERRORXXX,其中 XXX是表示特定錯誤的十六進制代碼。 (有關 I/O 錯誤代碼及其含義的列表,請參閱下表。)
導致錯誤的驅動程序的名稱。
通常,驅動程序代碼中檢測到錯誤的地址 (參數(shù) 2) 。
如果已啟用內核模式故障轉儲,故障轉儲文件中將顯示以下信息:
消息 BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION) 。
十六進制 I/O 錯誤代碼。 (有關 I/O 錯誤代碼及其含義的列表,請參閱下表。)
通常,驅動程序代碼中檢測到錯誤的地址 (參數(shù) 2) 。
如果內核調試器附加到導致此沖突的系統(tǒng),則會將以下信息發(fā)送到調試器:
消息 WDM DRIVER ERROR,以及錯誤嚴重性的評估。
導致錯誤的驅動程序的名稱。
說明此錯誤原因的描述性字符串。 通常會傳遞其他信息,例如指向 IRP 的指針或指向設備對象或 IRQL 信息的指針。 (有關這些描述性字符串的列表以及指定了哪些其他信息,請參閱下表。)
用于進一步操作的查詢。 可能的響應包括 b(break) 、 i(ignore) 、 z(zap) 、 r(remove) 或 d(disable) 。 通過指示操作系統(tǒng)繼續(xù),你可以查看“下行”在未發(fā)生此錯誤時會發(fā)生什么情況。 當然,這通常會導致額外的 bug 檢查。 “zap”選項實際上會刪除導致發(fā)現(xiàn)此錯誤的斷點。
注意無法以這種方式忽略任何其他 bug 檢查。 只能忽略此類 I/O 驗證錯誤,即使這些錯誤也只能在附加內核調試器時被忽略。
下表列出了可能出現(xiàn)的 I/O 驗證錯誤。
I/O 錯誤代碼 | 嚴重性 | 錯誤消息的原因 |
---|---|---|
0x200 | Unknown | 此代碼涵蓋所有未知 的 I/O 驗證錯誤。 |
0x201 | Fatal error | 設備正在刪除自身,而其下有另一個設備位于驅動程序堆棧中。 這可能是因為調用方忘記先調用 IoDetachDevice,或者下級驅動程序可能錯誤地刪除了自身。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 |
0x202 | Fatal error | 驅動程序嘗試從未附加到任何內容的設備對象分離。 如果在同一設備對象上調用分離兩次,則可能會出現(xiàn)這種情況。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - 設備對象地址。 |
0x203 | Fatal error | 驅動程序調用 了 IoCallDriver,但沒有將 IRP 中的取消例程設置為 NULL。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x204 | Fatal error | 調用方已傳入 NULL作為設備對象。 這是致命的。 參數(shù) 2 - 保留 參數(shù) 3 - 保留 |
0x205 | Fatal error | 調用方正在轉發(fā)當前在該 IRP 下排隊的 IRP。 處理此驅動程序中返回STATUS_PENDING的 IRP 的代碼似乎已損壞。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x206 | Fatal error | 調用方錯誤地轉發(fā)了 IRP (控件字段未歸零) 。 驅動程序應使用 IoCopyCurrentIrpStackLocationToNext或 IoSkipCurrentIrpStackLocation。 參數(shù) 2 - 保留 參數(shù) 3 - 保留 |
0x207 | Fatal error | 調用方已手動復制堆棧,并無意中復制了上層的完成例程。 驅動程序應使用 IoCopyCurrentIrpStackLocationToNext。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x208 | Fatal error | 此 IRP 即將耗盡堆棧位置。 可能有人從另一個堆棧轉發(fā)了此 IRP。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x209 | Fatal error | 調用方正在完成當前排隊的 IRP。 處理此驅動程序中返回STATUS_PENDING的 IRP 的代碼似乎已損壞。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x20A | Fatal error | IoFreeIrp的調用方正在釋放仍在使用的 IRP。 參數(shù) 2 - 保留 參數(shù) 3 - 保留 |
0x20B | Fatal error | IoFreeIrp的調用方正在釋放仍在使用的 IRP。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x20C | Fatal error | IoFreeIrp的調用方正在釋放仍在針對線程排隊的 IRP。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x20D | Fatal error | IoInitializeIrp的調用方已通過 IoAllocateIrp分配的 IRP。 這是非法和不必要的,并已導致配額泄漏。 如果正在回收此 IRP,請查看 IoReuseIrp的文檔。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x20E | 非致命錯誤 | PNP IRP 的狀態(tài)無效。 (任何 PNP IRP 都必須將其狀態(tài)初始化為 STATUS_NOT_SUPPORTED.) 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x20F | 非致命錯誤 | Power IRP 的狀態(tài)無效。 (任何 Power IRP 都必須將其狀態(tài)初始化為 STATUS_NOT_SUPPORTED.) 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x210 | 非致命錯誤 | WMI IRP 的狀態(tài)無效。 (任何 WMI IRP 都必須將其狀態(tài)初始化為 STATUS_NOT_SUPPORTED.) 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x211 | 非致命錯誤 | 調用方在跳過堆棧中的設備對象時轉發(fā)了 IRP。 調用方可能正在向 PDO 而不是 IoAttachDeviceToDeviceStack返回的設備發(fā)送 IRP。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x212 | 非致命錯誤 | 調用方已回收或未正確復制 IRP 的堆棧。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x213 | 非致命錯誤 | 調用方已更改它無法理解的 IRP 的狀態(tài)字段。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x214 | 非致命錯誤 | 調用方更改了它無法理解的 IRP 的信息字段。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x215 | 非致命錯誤 | 正在向下傳遞IRP_MJ_PNP的不成功非STATUS_NOT_SUPPORTED IRP 狀態(tài)。 必須完成失敗的 PNP IRP。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x216 | 非致命錯誤 | 以前設置IRP_MJ_PNP狀態(tài)已轉換為STATUS_NOT_SUPPORTED。 此失敗狀態(tài)保留供操作系統(tǒng)使用。 驅動程序不能使用此值使 PnP IRP 失敗。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x217 | 非致命錯誤 | 驅動程序未處理所需的 IRP。 驅動程序必須更新 IRP 的狀態(tài),以指示是否已處理它。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x218 | 非致命錯誤 | 驅動程序已響應為堆棧中其他位置的其他設備對象保留的 IRP。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x219 | 非致命錯誤 | IRP_MJ_POWER的非成功非STATUS_NOT_SUPPORTED IRP 狀態(tài)正在向下傳遞堆棧。 必須完成失敗的 POWER IRP。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x21A | 非致命錯誤 | 以前設置IRP_MJ_POWER狀態(tài)已轉換為STATUS_NOT_SUPPORTED。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x21B | 非致命錯誤 | 驅動程序已返回可疑狀態(tài)。 這可能是由于驅動程序中未初始化的變量 bug 造成的。 參數(shù) 3 - IRP 地址。 |
0x21C | 警告 | 調用方已復制 IRP 堆棧,但未設置完成例程。 這效率低下 -- 請改用 IoSkipCurrentIrpStackLocation。 參數(shù) 2 - 保留 參數(shù) 3 - 保留 |
0x21D | Fatal error | 收到刪除 IRP 后,IRP 調度處理程序未正確與下面的堆棧分離。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - 設備對象地址。 |
0x21E | Fatal error | IRP 調度處理程序在收到刪除 IRP 時未正確刪除其設備對象。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - 設備對象地址。 |
0x21F | 非致命錯誤 | 驅動程序尚未為所需的 IRP 主函數(shù)填寫調度例程。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x220 | 非致命錯誤 | IRP_MJ_SYSTEM_CONTROL已由 ProviderId 以外的其他人完成。 此 IRP 應已提前完成,或者應該已傳遞。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - ProviderId。 |
0x221 | Fatal error | PDO 的 IRP 調度處理程序已刪除其設備對象,但尚未在總線關系查詢中報告硬件缺失。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - 設備對象地址。 |
0x222 | Fatal error | 當 PDO 仍然處于活動狀態(tài)時,收到刪除 IRP 時,總線篩選器的 IRP 調度處理程序已分離。 總線篩選器必須在 FastIoDetach回調中清理。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - 設備對象地址。 |
0x223 | Fatal error | 總線篩選器的 IRP 調度處理程序已刪除其設備對象,但 PDO 仍然存在。 總線篩選器必須在 FastIoDetach回調中清理。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - 設備對象地址。 |
0x224 | Fatal error | IRP 調度處理程序返回的狀態(tài)與 IRP 的 IoStatus.Status字段不一致。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - 預期狀態(tài)代碼。 |
0x225 | 非致命錯誤 | IRP 調度處理程序返回了非法 (0xFFFFFFFF) 狀態(tài)。 這可能是由于未初始化的堆棧變量造成的。 若要調試此錯誤,請使用具有指定地址的 ln (List Nearest Symbols) 命令。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - 狀態(tài)代碼。 |
0x226 | Fatal error | IRP 調度處理程序已返回,但未傳遞或完成此 IRP,或者有人忘記返回STATUS_PENDING。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x227 | Fatal error | IRP 完成例程位于可分頁代碼中。 (這是永遠不允許的。) 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x228 | 非致命錯誤 | 如果在傳遞給它的 IRP 中設置了 PendingReturned字段,驅動程序的完成例程尚未將 IRP 標記為掛起。 這可能會導致 Windows 掛起,尤其是在堆棧返回錯誤時。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x229 | Fatal error | 已為當前由堆棧中較低層的驅動程序處理的 IRP 設置了取消例程,這可能會使取消例程被踩踏。 參數(shù) 2 - 保留。 參數(shù) 3 - 保留。 |
0x22A | 非致命錯誤 | (PDO) 的物理設備對象尚未響應所需的 IRP。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x22B | 非致命錯誤 | 物理設備對象 (PDO) 忘記使用 TargetDeviceRelation查詢的 PDO 填寫設備關系列表。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x22C | Fatal error | 實現(xiàn) TargetDeviceRelation查詢的代碼未在 PDO 上調用 ObReferenceObject。 參數(shù) 2 - 保留。 參數(shù) 3 - 保留。 |
0x22D | 非致命錯誤 | 調用方已完成一個它無法理解的IRP_MJ_PNP,而不是向下傳遞。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x22E | 非致命錯誤 | 調用方已完成成功的IRP_MJ_PNP,而不是向下傳遞。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x22F | 非致命錯誤 | 調用方已完成未受影響IRP_MJ_PNP (而不是將 IRP 向下傳遞) ,或者非 PDO 使用非法值STATUS_NOT_SUPPORTED使 IRP 失敗。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x230 | 非致命錯誤 | 調用方已完成其無法理解的IRP_MJ_POWER,而不是將其傳遞。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x231 | Fatal error | 調用方已完成成功的IRP_MJ_POWER,而不是向下傳遞。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x232 | 非致命錯誤 | 調用方已完成未受影響IRP_MJ_POWER (,而不是將 IRP 向下傳遞) ,或者非 PDO 使用非法值STATUS_NOT_SUPPORTED使 IRP 失敗。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x233 | 非致命錯誤 | 查詢功能 IRP 中查詢功能結構的版本字段未正確初始化。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x234 | 非致命錯誤 | 查詢功能 IRP 中查詢功能結構的大小字段未正確初始化。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x235 | 非致命錯誤 | 查詢功能 IRP 中查詢功能結構的地址字段未正確初始化為 -1。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x236 | 非致命錯誤 | 查詢功能 IRP 中查詢功能結構的 UI Number 字段未正確初始化為 -1。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x237 | Fatal error | 驅動程序發(fā)送了僅限系統(tǒng)使用的 IRP。 參數(shù) 2 - 保留。 參數(shù) 3 - 保留。 |
0x238 | 警告 | IoInitializeIrp的調用方已通過 IoAllocateIrp分配的 IRP。 這是非法的、不必要的,并且會對正常使用的性能產生負面影響。 如果正在回收此 IRP,請參閱 Windows 驅動程序工具包中的 IoReuseIrp。 參數(shù) 2 - 保留。 參數(shù) 3 - 保留。 |
0x239 | 警告 | IoCompleteRequest的調用方正在完成從未通過調用 IoCallDriver或 PoCallDriver轉發(fā)的 IRP。 這可能是一個 bug。 參數(shù) 2 - 保留。 參數(shù) 3 - 保留。 |
0x23A | Fatal error | 驅動程序轉發(fā)了 IRQL 中的 IRP,該 IRP 對于此主要代碼是非法的。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x23B | 非致命錯誤 | 調用方已更改它無法理解的 IRP 的狀態(tài)字段。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
下表列出了可能出現(xiàn)的其他 I/O 驗證錯誤。 激活 增強型 I/O 驗證時會出現(xiàn)這些錯誤。 有關詳細信息,請參閱 增強型 I/O 驗證。
I/O 錯誤代碼 | 嚴重性 | 錯誤消息的原因 |
---|---|---|
0x23C | Fatal error | 驅動程序已完成 IRP,但未將 IRP 中的取消例程設置為 NULL。 參數(shù) 2 - 保留。 參數(shù) 3 - 保留。 |
0x23D | 非致命錯誤 | 驅動程序已返回STATUS_PENDING但未通過調用 IoMarkIrpPending將 IRP 標記為掛起。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - 狀態(tài)代碼。 |
0x23E | 非致命錯誤 | 驅動程序已將 IRP 標記為掛起,但沒有返回STATUS_PENDING。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - 狀態(tài)代碼。 |
0x23F | Fatal error | 驅動程序尚未從它附加到的堆棧繼承DO_POWER_PAGABLE位。 參數(shù) 2 - 保留。 參數(shù) 3 - 保留。 |
0x240 | Fatal error | 驅動程序正在嘗試刪除已通過先前調用 IoDeleteDevice刪除的設備對象。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 2 - 保留。 參數(shù) 3 - 保留。 |
0x241 | Fatal error | 驅動程序在意外刪除 IRP 期間分離了其設備對象。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - 設備對象地址。 |
0x242 | Fatal error | 驅動程序在意外刪除 IRP 期間刪除了其設備對象。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - 設備對象地址。 |
0x243 | Fatal error | 驅動程序未能清除 AddDevice末尾的DO_DEVICE_INITIALIZING標志。 參數(shù) 2 - 保留。 參數(shù) 3 - 保留。 參數(shù) 4 - |
0x244 | Fatal error | 驅動程序尚未從其附加到的設備對象復制DO_BUFFERED_IO或DO_DIRECT_IO標志。 參數(shù) 2 - 保留。 參數(shù) 3 - 保留。 |
0x245 | Fatal error | 驅動程序已設置DO_BUFFERED_IO和DO_DIRECT_IO標志。 這些標志互斥。 參數(shù) 2 - 保留。 參數(shù) 3 - 保留。 |
0x246 | Fatal error | 驅動程序無法從要附加到的設備對象復制 DeviceType字段。 參數(shù) 2 - 保留。 參數(shù) 3 - 保留。 |
0x247 | Fatal error 參數(shù) 2 - 保留。 參數(shù) 3 - 保留。 | 驅動程序已使無法合法失敗的 IRP 失敗。 |
0x248 | Fatal error | 驅動程序已將不是 PDO 的設備對象添加到了設備關系查詢。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - 設備對象地址。 |
0x249 | 非致命錯誤 | 驅動程序枚舉了返回相同設備 ID 的兩個子 PDO。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - 第一個設備對象地址。 參數(shù) 4 - 第二個設備對象地址。 |
0x24A | Fatal error | 驅動程序錯誤地調用了 IRQL 不等于 PASSIVE_LEVEL 的文件 I/O 函數(shù)。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - 保留。 參數(shù) 4 - 保留。 |
0x24B | Fatal error | 驅動程序已成功完成 TargetDeviceRelation類型的IRP_MN_QUERY_DEVICE_RELATIONS請求,但未正確填寫請求或將 IRP 轉發(fā)到基礎硬件堆棧。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - 設備對象地址。 |
0x24C | 非致命錯誤 | 驅動程序已返回STATUS_PENDING但未通過調用 IoMarkIrpPending將 IRP 標記為掛起。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - 狀態(tài)代碼。 |
0x24D | Fatal error | 驅動程序已將無效設備對象傳遞給需要 PDO 的函數(shù)。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - 設備對象地址。 |
0x300 | 非致命錯誤 | 驅動程序返回了可疑狀態(tài)。 這可能是由于驅動程序中未初始化的變量 bug 造成的。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - 可疑狀態(tài)代碼。 |
0x301 | 非致命錯誤 | 驅動程序已在 IRQL > DISPATCH_LEVEL轉發(fā) IRP。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - IRQL 值不正確 |
0x302 | 非致命錯誤 | 驅動程序已在 IRQL > = APC_LEVEL 轉發(fā) IRP。 I/O 管理器需要將 APC 排隊才能完成此請求。 APC 將無法運行,因為調用方已在 APC 級別,因此調用方可能會死鎖。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 參數(shù) 4 - 錯誤的 IRQL 值。 |
0x306 | 非致命錯誤 | 驅動程序正在完成IRP_MJ_PNP (主要) ,并IRP_MN_REMOVE_DEVICE (具有失敗狀態(tài)代碼的次要) 請求。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x307 | 非致命錯誤 | 驅動程序發(fā)出 I/O 請求,其中包含已發(fā)出信號的事件,并收到STATUS_PENDING響應。 這可能會導致在 I/O 完成之前展開。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x310 | 非致命錯誤 | 驅動程序正在重新初始化仍在使用的 IRP。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x311 | 非致命錯誤 | 驅動程序正在重新初始化使用 IoMakeAssociatedIrp、IoBuildAsynchronousFsdRequest、IoBuildSynchronousFsdRequest、IoBuildDeviceIoControlRequest 創(chuàng)建的 IRP。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
0x312 | 非致命錯誤 | 調用方為 IRP 狀態(tài)信息字段提供的值大于系統(tǒng)緩沖區(qū)的輸出部分。 參數(shù) 2 - 驅動程序代碼中檢測到錯誤的地址。 參數(shù) 3 - IRP 地址。 |
原因
有關原因的說明,請參閱參數(shù)部分中每個代碼的說明。
解決方法
僅當驅動程序驗證程序已指示監(jiān)視一個或多個驅動程序時,才會發(fā)生此 bug 檢查。 如果不打算使用驅動程序驗證程序,則應停用它。 有關詳細信息,請參閱驅動程序驗證程序中的“如何控制 驅動程序驗證程序”。 可以考慮更新或刪除導致此問題的驅動程序。
如果你是驅動程序開發(fā)人員,請使用通過此 bug 檢查獲取的信息來修復代碼中的 bug。
有關驅動程序驗證程序的完整詳細信息,請參閱 驅動程序驗證程序。
標簽: