共用方式為


錯誤檢查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(未為零的控件欄位)。 驅動程序應該使用 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。 這是非法和不必要的,並已造成配額流失。 檢查 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。

如需驅動程式驗證器的完整詳細數據,請參閱 驅動程序驗證器