錯誤檢查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 (控制項欄位,) 。 驅動程式應該使用 IoCopyCurrentIrpStackLocationToNextIoSkipCurrentIrpStackLocation

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的呼叫端正在完成從未透過呼叫IoCallDriverPoCallDriver轉送的 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。

如需驅動程式驗證器的完整詳細資料,請參閱 驅動程式驗證器