錯誤檢查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 ERROR XXX 訊息,其中 XXX 是代表特定錯誤的十六進位程序代碼。 (如需 I/O 錯誤碼及其意義的清單,請參閱下表。
造成錯誤的驅動程式名稱。
通常,驅動程式程式代碼中偵測到錯誤的位址 (參數 2)。
如果已啟用內核模式損毀傾印,損毀傾印檔案中會出現下列資訊:
訊息 BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION) 。
十六進位 I/O 錯誤碼。 (如需 I/O 錯誤碼及其意義的清單,請參閱下表。
通常,驅動程式程式代碼中偵測到錯誤的位址 (參數 2)。
如果核心調試程式附加至造成此違規的系統,則會將下列資訊傳送至調試程式:
訊息 WDM DRIVER ERROR,以及錯誤嚴重性評估。
造成錯誤的驅動程式名稱。
說明此錯誤原因的描述性字串。 通常會傳遞其他資訊,例如 IRP 的指標或裝置物件的指標或 IRQL 資訊。 (如需這些描述性字串的清單,以及指定了哪些其他資訊,請參閱下表。
查詢以取得進一步的動作。 可能的回應是 b (break), i (ignore), z (zap), r (remove), 或 d (disable) 。 指示操作系統繼續可讓您查看如果未發生此錯誤,會發生什麼情況「下行」。 當然,這通常會導致額外的錯誤檢查。 “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。 這是非法和不必要的,並已造成配額流失。 檢查 IoReuseIrp 的檔是否已回收此 IRP。 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 |
非嚴重錯誤 |
驅動程式已傳回可疑狀態。 這可能是因為驅動程式中未初始化的變數錯誤所造成。 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 |
非嚴重錯誤 |
驅動程式已傳回可疑狀態。 這可能是因為驅動程式中未初始化的變數錯誤所造成。 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一節中每個程式代碼的描述。
解決方法
只有在已指示驅動程式驗證程序監視一或多個驅動程式時,才會進行此錯誤檢查。 如果您不打算使用驅動程序驗證器,您應該停用它。 如需詳細資訊,請參閱驅動程式驗證器中的 <如何控制驅動程序驗證器>。 您也可以考慮更新或移除造成此問題的驅動程式。
如果您是驅動程式開發人員,請使用透過此 Bug 檢查取得的資訊來修正程式代碼中的 Bug。
如需驅動程式驗證器的完整詳細數據,請參閱 驅動程序驗證器。