錯誤檢查0xC9:DRIVER_VERIFIER_IOMANAGER_VIOLATION
DRIVER_VERIFIER_IOMANAGER_VIOLATION錯誤檢查的值為 0x000000C9。 這是所有驅動程式驗證器 I/O 驗證 違規的錯誤檢查碼。
重要
本文適用于程式設計人員。 如果您是在使用電腦時收到藍色螢幕錯誤碼的客戶,請參閱 針對藍色畫面錯誤進行疑難排解。
DRIVER_VERIFIER_IOMANAGER_VIOLATION參數
當驅動程式驗證器為作用中且已選取 I/O 驗證 時,各種 I/O 違規會導致發出此錯誤檢查。 參數 1 會識別違規的類型。
參數 1 | 參數 2 | 參數 3 | 參數 4 | 錯誤原因 |
---|---|---|---|---|
0x01 |
正在釋放的 IRP 位址 |
0 |
0 |
驅動程式嘗試釋放類型不是IO_TYPE_IRP的物件。 |
0x02 |
正在釋放的 IRP 位址 |
0 |
0 |
驅動程式嘗試釋放仍與執行緒相關聯的 IRP。 |
0x03 |
正在傳送的 IRP 位址 |
0 |
0 |
驅動程式傳遞了 IRP 類型不等於IRP_TYPE 的 IoCallDriver 。 |
0x04 |
裝置物件的位址 |
0 |
0 |
驅動程式已傳遞 IoCallDriver 不正確裝置物件。 |
0x05 |
與違規驅動程式相關聯的裝置物件位址 |
IoCallDriver之前的 IRQL |
IoCallDriver 之後的IRQL |
IRQL 在呼叫驅動程式分派常式期間變更。 |
0x06 |
IRP 狀態 |
完成的 IRP 位址 |
0 |
名為 IoCompleteRequest 的驅動程式,其狀態標示為擱置 (或等於 -1) 。 |
0x07 |
取消常式的位址 |
完成的 IRP 位址 |
0 |
驅動程式在取消常式仍設定時呼叫 IoCompleteRequest 。 |
0x08 |
裝置物件的位址 |
IRP 主要函式程式碼 |
例外狀況狀態碼 |
驅動程式傳遞 了 IoBuildAsynchronousFsdRequest 不正確緩衝區。 |
0x09 |
裝置物件的位址 |
I/O 控制項程式碼 |
例外狀況狀態碼 |
驅動程式傳遞 了 IoBuildDeviceIoControlRequest 不正確緩衝區。 |
0x10 |
目前的 IRQL |
保留 |
保留 |
IoCallDriver 在上述DISPATCH_LEVEL呼叫。 |
0x11 |
驅動程式快速 I/O 分派常式位址 |
呼叫驅動程式分派常式之前,IRQL |
目前的 IRQL |
IoCallDriver 在上述DISPATCH_LEVEL呼叫。 |
0x12 |
驅動程式分派常式位址 |
呼叫驅動程式分派常式之前,IRQL |
目前的 IRQL |
IoCallDriver 在上述DISPATCH_LEVEL呼叫。 |
0x0A |
裝置物件的位址 |
0 |
0 |
驅動程式已傳遞 IoInitializeTimer 具有已初始化計時器的裝置物件。 |
0x0C |
I/O 狀態欄塊的位址 |
0 |
0 |
驅動程式已將 I/O 狀態欄塊傳遞至 IRP,但此區塊會配置在已超過該點的堆疊上。 |
0x0D |
使用者事件物件的位址 |
0 |
0 |
驅動程式已將使用者事件傳遞至 IRP,但此事件會配置在已超過該點的堆疊上。 |
0x0E |
目前的 IRQL |
IRP 位址 |
0 |
名為 IoCompleteRequest 的驅動程式與 IRQL > DISPATCH_LEVEL。 |
0x0F |
要傳送 IRP 之裝置物件的位址 |
IRP 的指標 |
檔案物件的指標 |
驅動程式傳送的建立要求包含已關閉的檔案物件,或已取消其開啟的檔案物件。 |
除了上表所述的錯誤之外,還有一些 I/O 驗證 錯誤會導致驅動程式驗證程式停止系統,但實際上不是錯誤檢查。
這些錯誤會導致訊息顯示在藍色畫面、損毀傾印檔案和核心偵錯工具中。 這些訊息會以不同的方式出現在每個位置。 發生這些錯誤時,十六進位錯誤檢查程式碼會0xC9,而錯誤檢查字串DRIVER_VERIFIER_IOMANAGER_VIOLATION不會出現在藍色畫面或偵錯工具中,雖然它們會出現在損毀傾印檔案中。
在藍色畫面上,會顯示下列資料:
訊息 IO 系統驗證錯誤。
WDM DRIVER ERRORXXX訊息,其中XXX是代表特定錯誤的十六進位程式碼。 (如需 I/O 錯誤碼及其意義的清單,請參閱下表。)
造成錯誤的驅動程式名稱。
一般而言,在驅動程式程式碼中偵測到錯誤的位址, (參數 2) 。
如果已啟用核心模式損毀傾印,則損毀傾印檔案中會出現下列資訊:
錯誤 檢查訊息0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION) 。
十六進位 I/O 錯誤碼。 (如需 I/O 錯誤碼及其意義的清單,請參閱下表。)
一般而言,在驅動程式程式碼中偵測到錯誤的位址, (參數 2) 。
如果核心偵錯工具附加至造成此違規的系統,則會將下列資訊傳送至偵錯工具:
訊息 WDM DRIVER ERROR,以及錯誤嚴重性評量。
造成錯誤的驅動程式名稱。
描述性字串,說明此錯誤的原因。 通常會傳遞其他資訊,例如 IRP 的指標或裝置物件的指標或 IRQL 資訊。 (如需這些描述性字串的清單,以及指定了哪些其他資訊,請參閱下表。)
進一步動作的查詢。 可能的回應是 b (中斷) 、 i (忽略) 、 z (zap) 、 r (移除) 或 (停用) 。 指示作業系統繼續可讓您查看發生此錯誤時,會發生「下行」的情況。 當然,這通常會導致其他錯誤檢查。 「zap」 選項實際上會移除導致發現此錯誤的中斷點。
注意 無法以這種方式忽略其他錯誤檢查。 只有這種 I/O 驗證 錯誤可以忽略,即使附加核心偵錯工具,也可以忽略這些錯誤。
下表列出可能會出現的 I/O 驗證 錯誤。
I/O 錯誤碼 | 嚴重性 | 錯誤原因 |
---|---|---|
0x200 |
Unknown |
此程式碼涵蓋所有未知 的 I/O 驗證 錯誤。 |
0x201 |
嚴重錯誤 |
裝置正在刪除本身,而驅動程式堆疊中有另一個裝置位於該裝置底下。 這可能是因為呼叫端忘記先呼叫 IoDetachDevice ,或者較低驅動程式本身可能未正確地刪除。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 |
0x202 |
嚴重錯誤 |
驅動程式嘗試從未附加至任何物件的裝置物件中斷連結。 如果在相同的裝置物件上呼叫了中斷連結兩次,就可能會發生這種情況。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - 裝置物件位址。 |
0x203 |
嚴重錯誤 |
驅動程式已呼叫 IoCallDriver ,而不將 IRP 中的取消常式設定為 Null。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x204 |
嚴重錯誤 |
呼叫端已以裝置物件的形式傳入 Null 。 這很嚴重。 Param 2 - 保留 Param 3 - 保留 |
0x205 |
嚴重錯誤 |
呼叫端正在轉送目前排入佇列的 IRP。 處理傳回此驅動程式中STATUS_PENDING IRP 的程式碼似乎已中斷。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x206 |
嚴重錯誤 |
呼叫端未正確地轉送 IRP (控制項欄位,) 。 驅動程式應該使用 IoCopyCurrentIrpStackLocationToNext 或 IoSkipCurrentIrpStackLocation。 Param 2 - 保留 Param 3 - 保留 |
0x207 |
嚴重錯誤 |
呼叫端已手動複製堆疊,並意外複製上層完成常式。 驅動程式應該使用 IoCopyCurrentIrpStackLocationToNext。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x208 |
嚴重錯誤 |
此 IRP 即將用盡堆疊位置。 有人可能已從另一個堆疊轉送此 IRP。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x209 |
嚴重錯誤 |
呼叫端正在完成目前排入佇列的 IRP。 處理傳回此驅動程式中STATUS_PENDING IRP 的程式碼似乎已中斷。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x20A |
嚴重錯誤 |
IoFreeIrp的呼叫端正在釋放仍在使用的 IRP。 Param 2 - 保留 Param 3 - 保留 |
0x20B |
嚴重錯誤 |
IoFreeIrp的呼叫端正在釋放仍在使用的 IRP。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x20C |
嚴重錯誤 |
IoFreeIrp的呼叫端正在釋放仍針對執行緒排入佇列的 IRP。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x20D |
嚴重錯誤 |
IoInitializeIrp的呼叫端已通過IoAllocateIrp 配置的 IRP。 這不合法且不必要,而且導致配額流失。 檢查是否已回收此 IRP 的 IoReuseIrp 檔。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x20E |
非嚴重錯誤 |
PNP IRP 的狀態無效。 (任何 PNP IRP 都必須將其狀態初始化為 STATUS_NOT_SUPPORTED.) Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x20F |
非嚴重錯誤 |
Power IRP 的狀態無效。 (任何 Power IRP 都必須將其狀態初始化為 STATUS_NOT_SUPPORTED.) Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x210 |
非嚴重錯誤 |
WMI IRP 的狀態無效。 (任何 WMI IRP 都必須將其狀態初始化為 STATUS_NOT_SUPPORTED.) Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x211 |
非嚴重錯誤 |
呼叫端在略過堆疊中的裝置物件時,已轉送 IRP。 呼叫端可能會將 IRP 傳送至 PDO,而不是 傳送至 IoAttachDeviceToDeviceStack所傳回的裝置。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x212 |
非嚴重錯誤 |
呼叫端已回收或未正確複製 IRP 堆疊。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x213 |
非嚴重錯誤 |
呼叫端已變更其無法瞭解之 IRP 的狀態欄位。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x214 |
非嚴重錯誤 |
呼叫端已變更其無法瞭解之 IRP 的資訊欄位。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x215 |
非嚴重錯誤 |
正在向下傳遞IRP_MJ_PNP的非成功非STATUS_NOT_SUPPORTED IRP 狀態。 必須完成失敗的 PNP IRP。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x216 |
非嚴重錯誤 |
先前設定IRP_MJ_PNP狀態已轉換成STATUS_NOT_SUPPORTED。 此失敗狀態保留供作業系統使用。 驅動程式無法以此值失敗 PnP IRP。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x217 |
非嚴重錯誤 |
驅動程式尚未處理必要的 IRP。 驅動程式必須更新 IRP 的狀態,以指出是否已處理它。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x218 |
非嚴重錯誤 |
驅動程式已回應保留給堆疊中其他位置之其他裝置物件的 IRP。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x219 |
非嚴重錯誤 |
IRP_MJ_POWER的非成功非STATUS_NOT_SUPPORTED IRP 狀態正在向下傳遞堆疊。 必須完成失敗的 POWER IRP。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x21A |
非嚴重錯誤 |
先前設定IRP_MJ_POWER狀態已轉換成STATUS_NOT_SUPPORTED。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x21B |
非嚴重錯誤 |
驅動程式已傳回可疑的狀態。 這可能是因為驅動程式中未初始化的變數 Bug 所造成。 Param 3 - IRP 位址。 |
0x21C |
警告 |
呼叫端已複製 IRP 堆疊,但未設定完成常式。 這沒有效率 -- 請改用 IoSkipCurrentIrpStackLocation 。 Param 2 - 保留 Param 3 - 保留 |
0x21D |
嚴重錯誤 |
收到移除的 IRP 時,IRP 分派處理常式並未從其下方的堆疊正確中斷連結。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - 裝置物件位址。 |
0x21E |
嚴重錯誤 |
收到移除 IRP 時,IRP 分派處理常式尚未正確刪除其裝置物件。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - 裝置物件位址。 |
0x21F |
非嚴重錯誤 |
驅動程式尚未填寫必要 IRP 主要函式的分派常式。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x220 |
非嚴重錯誤 |
提供者識別碼以外的人已完成IRP_MJ_SYSTEM_CONTROL。 此 IRP 應該稍早完成,或應該已關閉。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - ProviderId。 |
0x221 |
嚴重錯誤 |
PDO 的 IRP 分派處理常式已刪除其裝置物件,但硬體尚未在匯流排關聯查詢中回報為遺漏。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - 裝置物件位址。 |
0x222 |
嚴重錯誤 |
當 PDO 仍在運作時,匯流排篩選的 IRP 分派處理常式在接收移除 IRP 時已中斷連結。 匯流排篩選準則必須在 FastIoDetach 回 呼中清除。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - 裝置物件位址。 |
0x223 |
嚴重錯誤 |
匯流排篩選準則的 IRP 分派處理常式已刪除其裝置物件,但 PDO 仍然存在。 匯流排篩選準則必須在 FastIoDetach 回 呼中清除。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - 裝置物件位址。 |
0x224 |
嚴重錯誤 |
IRP 分派處理常式已傳回與 IRP 的 IoStatus.Status 欄位不一致的狀態。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - 預期的狀態碼。 |
0x225 |
非嚴重錯誤 |
IRP 分派處理常式已傳回不合法的狀態 (0xFFFFFFFF) 。 這可能是因為未初始化的堆疊變數所致。 若要對此錯誤進行偵錯,請使用 ln (清單最接近的符號) 命令搭配指定的位址。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - 狀態碼。 |
0x226 |
嚴重錯誤 |
IRP 分派處理常式已傳回,而不需要傳遞或完成此 IRP,或有人忘記傳回STATUS_PENDING。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x227 |
嚴重錯誤 |
IRP 完成常式是在可分頁的程式碼中。 (絕對不允許此動作。) Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x228 |
非嚴重錯誤 |
如果 IRP 中已設定 PendingReturned 欄位,驅動程式的完成常式尚未標示 IRP 擱置中。 這可能會導致 Windows 停止回應,特別是當堆疊傳回錯誤時。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x229 |
嚴重錯誤 |
已針對目前由堆疊中較低驅動程式處理的 IRP 設定取消常式,可能會將其取消常式自訂。 Param 2 - 保留。 Param 3 - 保留。 |
0x22A |
非嚴重錯誤 |
PDO (實體裝置物件) 未回應必要的 IRP。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x22B |
非嚴重錯誤 |
PDO) 實體裝置物件 (忘記使用 TargetDeviceRelation 查詢的 PDO 填入裝置關聯清單。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x22C |
嚴重錯誤 |
實作 TargetDeviceRelation 查詢的程式碼並未在 PDO 上呼叫 ObReferenceObject 。 Param 2 - 保留。 Param 3 - 保留。 |
0x22D |
非嚴重錯誤 |
呼叫端已完成IRP_MJ_PNP無法理解,而不是將其傳遞。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x22E |
非嚴重錯誤 |
呼叫端已完成成功的IRP_MJ_PNP,而不是將其傳遞。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x22F |
非嚴重錯誤 |
呼叫端已完成未觸控的IRP_MJ_PNP (,而不是將 IRP 向下傳遞) ,或非 PDO 使用不合法的STATUS_NOT_SUPPORTED值讓 IRP 失敗。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x230 |
非嚴重錯誤 |
呼叫端已完成IRP_MJ_POWER無法理解,而不是將其傳遞。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x231 |
嚴重錯誤 |
呼叫端已完成成功的IRP_MJ_POWER,而不是將其傳遞。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x232 |
非嚴重錯誤 |
呼叫端已完成未觸控的IRP_MJ_POWER (,而不是將 IRP 向下傳遞) ,或非 PDO 使用不合法的 STATUS_NOT_SUPPORTED 值讓 IRP 失敗。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x233 |
非嚴重錯誤 |
查詢功能 IRP 中查詢功能結構的版本欄位未正確初始化。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x234 |
非嚴重錯誤 |
查詢功能 IRP 中查詢功能結構的大小欄位未正確初始化。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x235 |
非嚴重錯誤 |
查詢功能 IRP 中查詢功能結構的位址欄位未正確初始化為 -1。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x236 |
非嚴重錯誤 |
查詢功能 IRP 中查詢功能結構的 [UI 號碼] 欄位未正確初始化為 -1。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x237 |
嚴重錯誤 |
驅動程式已傳送僅限系統使用的 IRP。 Param 2 - 保留。 Param 3 - 保留。 |
0x238 |
警告 |
IoInitializeIrp的呼叫端已傳遞使用IoAllocateIrp配置的 IRP。 這不合法、不必要且對正常使用效能造成負面影響。 如果回收此 IRP,請參閱 Windows 驅動程式套件中的 IoReuseIrp 。 Param 2 - 保留。 Param 3 - 保留。 |
0x239 |
警告 |
IoCompleteRequest的呼叫端正在完成從未透過呼叫IoCallDriver或PoCallDriver轉送的 IRP。 這可能是錯誤。 Param 2 - 保留。 Param 3 - 保留。 |
0x23A |
嚴重錯誤 |
驅動程式已在此主要程式碼不合法的 IRQL 轉送 IRP。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x23B |
非嚴重錯誤 |
呼叫端已變更其無法瞭解之 IRP 的狀態欄位。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
下表列出可能會出現的其他 I/O 驗證 錯誤。 啟用 增強型 I/O 驗證 時,會出現這些錯誤。 如需詳細資訊,請參閱 增強 I/O 驗證。
I/O 錯誤碼 | 嚴重性 | 錯誤原因 |
---|---|---|
0x23C |
嚴重錯誤 |
驅動程式已完成 IRP,而不將 IRP 中的取消常式設定為 Null。 Param 2 - 保留。 Param 3 - 保留。 |
0x23D |
非嚴重錯誤 |
驅動程式已傳回STATUS_PENDING但未透過呼叫 IoMarkIrpPending來標記擱置的 IRP。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - 狀態碼。 |
0x23E |
非嚴重錯誤 |
驅動程式已標示 IRP 暫止,但未傳回STATUS_PENDING。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - 狀態碼。 |
0x23F |
嚴重錯誤 |
驅動程式尚未從附加的堆疊繼承DO_POWER_PAGABLE位。 Param 2 - 保留。 Param 3 - 保留。 |
0x240 |
嚴重錯誤 |
驅動程式嘗試刪除已透過 先前呼叫 IoDeleteDevice 刪除的裝置物件。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 2 - 保留。 Param 3 - 保留。 |
0x241 |
嚴重錯誤 |
驅動程式在意外移除 IRP 期間中斷其裝置物件的連結。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - 裝置物件位址。 |
0x242 |
嚴重錯誤 |
驅動程式在意外移除 IRP 期間已刪除其裝置物件。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - 裝置物件位址。 |
0x243 |
嚴重錯誤 |
驅動程式無法在 AddDevice結尾清除DO_DEVICE_INITIALIZING旗標。 Param 2 - 保留。 Param 3 - 保留。 Param 4 - |
0x244 |
嚴重錯誤 |
驅動程式尚未從所附加的裝置物件複製DO_BUFFERED_IO或DO_DIRECT_IO旗標。 Param 2 - 保留。 Param 3 - 保留。 |
0x245 |
嚴重錯誤 |
驅動程式已設定DO_BUFFERED_IO和DO_DIRECT_IO旗標。 這些旗標互斥。 Param 2 - 保留。 Param 3 - 保留。 |
0x246 |
嚴重錯誤 |
驅動程式無法從它所附加的裝置物件複製 DeviceType 欄位。 Param 2 - 保留。 Param 3 - 保留。 |
0x247 |
嚴重錯誤 Param 2 - 保留。 Param 3 - 保留。 |
驅動程式失敗了無法合法失敗的 IRP。 |
0x248 |
嚴重錯誤 |
驅動程式已將不是 PDO 的裝置物件新增至裝置關聯查詢。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - 裝置物件位址。 |
0x249 |
非嚴重錯誤 |
驅動程式已列舉兩個傳回相同裝置識別碼的子 PDO。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - 第一個裝置物件位址。 Param 4 - 第二個裝置物件位址。 |
0x24A |
嚴重錯誤 |
驅動程式錯誤地呼叫了 IRQL 不等於PASSIVE_LEVEL的檔案 I/O 函式。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - 保留。 Param 4 - 保留。 |
0x24B |
嚴重錯誤 |
驅動程式已完成 TargetDeviceRelation 類型的IRP_MN_QUERY_DEVICE_RELATIONS要求,但未正確填寫要求,或將 IRP 轉送至基礎硬體堆疊。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - 裝置物件位址。 |
0x24C |
非嚴重錯誤 |
驅動程式已傳回STATUS_PENDING,但未透過 呼叫 IoMarkIrpPending來標示擱置的 IRP。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - 狀態碼。 |
0x24D |
嚴重錯誤 |
驅動程式已將不正確裝置物件傳遞至需要 PDO 的函式。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - 裝置物件位址。 |
0x300 |
非嚴重錯誤 |
驅動程式已傳回可疑的狀態。 這可能是因為驅動程式中未初始化的變數 Bug 所造成。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - 可疑的狀態碼。 |
0x301 |
非嚴重錯誤 |
驅動程式已在 IRQL > DISPATCH_LEVEL 轉送 IRP。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - 不正確的 IRQL 值 |
0x302 |
非嚴重錯誤 |
驅動程式已在 IRQL > = APC_LEVEL轉送 IRP。 I/O 管理員必須將 APC 排入佇列,才能完成此要求。 APC 將無法執行,因為呼叫端已在 APC 層級,因此呼叫端可能會死結。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 Param 4 - 不正確的 IRQL 值。 |
0x306 |
非嚴重錯誤 |
驅動程式正在完成IRP_MJ_PNP (主要) ,並IRP_MN_REMOVE_DEVICE (失敗狀態碼的次要) 要求。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x307 |
非嚴重錯誤 |
驅動程式發出 I/O 要求,其中包含已發出訊號並收到STATUS_PENDING回應的事件。 這可能會導致在 I/O 完成之前回溯。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x310 |
非嚴重錯誤 |
驅動程式正在重新初始化仍在使用的 IRP。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x311 |
非嚴重錯誤 |
驅動程式會重新初始化以 IoMakeAssociatedIrp、IoBuildAsynchronousFsdRequest、IoBuildSynchronousFsdRequest、IoBuildDeviceIoControlRequest 建立的 IRP。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
0x312 |
非嚴重錯誤 |
呼叫端提供 [IRP 狀態資訊] 欄位,其值大於系統緩衝區的輸出區段。 Param 2 - 驅動程式程式碼中偵測到錯誤的位址。 Param 3 - IRP 位址。 |
原因
如需原因的描述,請參閱 Parameters 區段中每個程式碼的描述。
解決方案
只有在指示驅動程式驗證程式監視一或多個驅動程式時,才會進行這個錯誤檢查。 如果您不想使用驅動程式驗證器,您應該停用它。 For more information, see "How to control Driver Verifier" in Driver Verifier. 您也可以考慮更新或移除造成此問題的驅動程式。
如果您是驅動程式開發人員,請使用透過這個錯誤檢查取得的資訊來修正程式碼中的 Bug。
如需驅動程式驗證器的完整詳細資料,請參閱 驅動程式驗證器。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應