錯誤檢查0xC4:DRIVER_VERIFIER_DETECTED_VIOLATION

DRIVER_VERIFIER_DETECTED_VIOLATION錯誤檢查的 值為 0x000000C4。 這是驅動程式驗證程式所發現嚴重錯誤的一般錯誤檢查程式碼。 如需詳細資訊,請參閱 在啟用驅動程式驗證器時處理錯誤檢查

重要

本文適用于程式設計人員。 如果您是在使用電腦時收到藍色螢幕錯誤碼的客戶,請參閱 針對藍色畫面錯誤進行疑難排解

DRIVER_VERIFIER_DETECTED_VIOLATION參數

參數 1 會識別違規的類型。 其餘參數的意義會隨著參數 1 的值而有所不同。 下表說明參數值。

注意 如果您無法檢視此資料表中的所有 5 個數據行,請嘗試下列動作:

  • 將瀏覽器視窗展開為完整大小。
  • 將游標放在資料表中,並使用方向鍵向左和向右捲動。

0x00至 0x70

參數 1 參數 2 參數 3 參數 4 錯誤的原因
0x00 目前的 IRQL 集區類型 位元組數 驅動程式要求零位元組集區配置。
0x01 目前的 IRQL 集區類型 配置大小,以位元組為單位 驅動程式嘗試使用 IRQL > APC_LEVEL配置分頁記憶體。
0x02 目前的 IRQL 集區類型 配置大小,以位元組為單位 驅動程式嘗試使用 IRQL > DISPATCH_LEVEL配置非分頁式記憶體。
0x03 呼叫端嘗試配置多個頁面的 必須成功集區,但此 API 允許的最大頁面是一個頁面。
0x10 不正確的位址 0 0 驅動程式嘗試釋放未從配置呼叫傳回的位址。
0x11 目前的 IRQL 集區類型 集區的位址 驅動程式嘗試使用 IRQL > APC_LEVEL釋放分頁集區。
0x12 目前的 IRQL 集區類型 集區的位址 驅動程式嘗試使用 IRQL > DISPATCH_LEVEL釋放非分頁集區。
0x13或0x14 保留 集區標頭的指標 集區標頭內容 驅動程式嘗試釋放已釋放的記憶體集區。
0x15 計時器專案 集區類型 正在釋放的集區位址 呼叫端嘗試釋放的集區包含作用中的計時器。
0x16 保留 集區位址 0 驅動程式嘗試在不正確的位址釋放集區,或驅動程式將不正確參數傳遞至記憶體常式。
0X17 資源專案 集區類型 正在釋放的集區位址 呼叫端嘗試釋放的集區包含作用中的 ERESOURCE。
0x30 目前的 IRQL 要求的 IRQL 0 驅動程式已將不正確參數傳遞至 KeRaiseIrql。 (參數的值低於目前的 IRQL,或高於HIGH_LEVEL的值。這可能是使用未初始化參數的結果。)
0x31 目前的 IRQL 要求的 IRQL 0:新的 IRQL 錯誤 1:DPC 常式內的新 IRQL 無效 驅動程式已將不正確參數傳遞至 KeLowerIrql。 (參數的值高於目前的 IRQL,或高於HIGH_LEVEL的值。這可能是使用未初始化參數的結果。)
0x32 目前的 IRQL 微調鎖定位址 0 驅動程式在 IRQL 上呼叫 KeReleaseSpinLock ,而不是 DISPATCH_LEVEL。 (這可能是因為微調鎖定的雙釋放。)
0x33 目前的 IRQL 快速 Mutex 位址 0 驅動程式嘗試使用 IRQL > APC_LEVEL取得快速 mutex。
0x34 目前的 IRQL 執行緒 APC 停用計數 快速 Mutex 位址 驅動程式嘗試在APC_LEVEL以外的 IRQL 上釋放快速 Mutex。
0x35 目前的 IRQL 微調鎖定位址 舊 IRQL 核心釋放了 IRQL 不等於DISPATCH_LEVEL的微調鎖定。
0x36 目前的 IRQL 微調鎖定編號 舊 IRQL 核心已釋放佇列的微調鎖定,IRQL 不等於DISPATCH_LEVEL。
0x37 目前的 IRQL 執行緒 APC 停用計數 資源 驅動程式嘗試取得資源,但不會停用 APC。
0x38 目前的 IRQL 執行緒 APC 停用計數 資源 驅動程式嘗試釋放資源,但不會停用 APC。
0x39 目前的 IRQL 執行緒 APC 停用計數 Mutex 驅動程式嘗試取得具有 IRQL 不等於專案上APC_LEVEL的 mutex 「unsafe」。
0x3A 目前的 IRQL 執行緒 APC 停用計數 Mutex 驅動程式嘗試釋放 mutex 「unsafe」,IRQL 不等於專案上的APC_LEVEL。
0x3B 目前的 IRQL 要等候的物件 逾時參數 KeWaitXxx 常式是在 DISPATCH_LEVEL 或更高版本呼叫。
0x3C 傳遞至常式的控制碼 物件型別 0 驅動程式稱為 ObReferenceObjectByHandle 且控制碼不正確。
0x3D 0 0 錯誤的資源位址 驅動程式已將未對齊) (不正確的資源傳遞至 ExAcquireResourceExclusive
0x3E 0 0 0 目前不在重要區域中的執行緒,稱為 KeLeaveCriticalRegion 的驅動程式。
0x3F 物件位址 新的物件參考計數。 -1: 取值案例 1:參考案例 0 驅動程式會將 ObReferenceObject 套用至參考計數為零的物件,或驅動程式將 ObDereferenceObject 套用至參考計數為零的物件。
0x40 目前的 IRQL 微調鎖定位址 0 名為 KeAcquireSpinLockAtDpcLevel 的驅動程式與 IRQL < DISPATCH_LEVEL。
0x41 目前的 IRQL 微調鎖定位址 0 名為 KeReleaseSpinLockFromDpcLevel 的驅動程式與 IRQL < DISPATCH_LEVEL。
0x42 目前的 IRQL 微調鎖定位址 0 名為 KeAcquireSpinLock 的驅動程式與 IRQL > DISPATCH_LEVEL。
0x51 配置基底位址 配置以外的參考位址 收費位元組數目 驅動程式在寫入超過配置結尾之後,嘗試釋放記憶體。 只有在驅動程式驗證器的集區追蹤選項作用中時,才會發生此參數的錯誤檢查。
0x52 配置基底位址 雜湊專案 收費位元組數目 驅動程式在寫入超過配置結尾之後,嘗試釋放記憶體。 只有在驅動程式驗證器的集區追蹤選項作用中時,才會發生此參數的錯誤檢查。
0x53 配置基底位址 標頭 保留 驅動程式在寫入超過配置結尾之後,嘗試釋放記憶體。 只有在驅動程式驗證器的集區追蹤選項作用中時,才會發生此參數的錯誤檢查。
0x54 配置基底位址 保留 集區雜湊大小 驅動程式在寫入超過配置結尾之後,嘗試釋放記憶體。 只有在驅動程式驗證器的集區追蹤選項作用中時,才會發生此參數的錯誤檢查。
0x59 配置基底位址 Listindex 保留 驅動程式在寫入超過配置結尾之後,嘗試釋放記憶體。 只有在驅動程式驗證器的集區追蹤選項作用中時,才會發生此參數的錯誤檢查。
0x60 從分頁集區配置的位元組 從非分頁集區配置的位元組 未釋放的配置總數 驅動程式正在卸載,而不需要先釋放其集區配置。 只有在驅動程式驗證器的集區追蹤選項作用中時,才會發生此參數的錯誤檢查。
0x61 從分頁集區配置的位元組 從非分頁集區配置的位元組 未釋放的配置總數 驅動程式執行緒嘗試在驅動程式卸載時組態集區記憶體。 只有在驅動程式驗證器的集區追蹤選項作用中時,才會發生此參數的錯誤檢查。
0x62 驅動程式的名稱 保留 未釋放的配置總數,包括分頁和非分頁集區 驅動程式正在卸載,而不需要先釋放其集區配置。 只有在驅動程式驗證器的集區追蹤選項作用中時,才會發生此參數的錯誤檢查。 輸入 !verifier 3 drivername.sys,以取得造成錯誤檢查之配置外泄的資訊。
0x6F MDL 位址 正在鎖定的實體頁面 系統中的最高實體頁面 在 PFN 資料庫中的頁面上呼叫 MmProbeAndLockPages。 這通常是呼叫此常式的驅動程式,以鎖定自己的私人雙埠 RAM。 不僅如此,它也可能會損毀具有非連續實體 RAM 的機器上的記憶體。

0x70 0x91

參數 1 參數 2 參數 3 參數 4 錯誤原因
0x70 目前的 IRQL MDL 位址 存取模式 驅動程式稱為 MmProbeAndLockPages 與 IRQL > DISPATCH_LEVEL。
0x71 目前的 IRQL MDL 位址 進程位址 驅動程式稱為 MmProbeAndLockProcessPages 與 IRQL > DISPATCH_LEVEL。
0x72 目前的 IRQL MDL 位址 進程位址 驅動程式稱為 MmProbeAndLockSelectedPages 搭配 IRQL > DISPATCH_LEVEL。
0x73 目前的 IRQL 在 32 位 Windows 中:64 位 Windows 中實體位址的低 32 位:64 位實體位址 位元組數 驅動程式稱為 MmMapIoSpace 與 IRQL > DISPATCH_LEVEL。
0x74 目前的 IRQL MDL 位址 存取模式 驅動程式在核心模式中使用 IRQL > DISPATCH_LEVEL呼叫MmMapLockedPages
0x75 目前的 IRQL MDL 位址 存取模式 驅動程式在使用者模式中使用 IRQL > APC_LEVEL呼叫MmMapLockedPages
0x76 目前的 IRQL MDL 位址 存取模式 驅動程式在核心模式中使用 IRQL > DISPATCH_LEVEL呼叫MmMapLockedPagesSpecifyCache
0x77 目前的 IRQL MDL 位址 存取模式 驅動程式在使用者模式中使用 IRQL > APC_LEVEL呼叫MmMapLockedPagesSpecifyCache
0x78 目前的 IRQL MDL 位址 0 名為 MmUnlockPages 的驅動程式與 IRQL > DISPATCH_LEVEL。
0x79 目前的 IRQL 未對應的虛擬位址 MDL 位址 驅動程式在核心模式中使用 IRQL > DISPATCH_LEVEL呼叫MmUnmapLockedPages
0x7A 目前的 IRQL 未對應的虛擬位址 MDL 位址 驅動程式在使用者模式中使用 IRQL > APC_LEVEL呼叫MmUnmapLockedPages
0x7B 目前的 IRQL 未對應的虛擬位址 位元組數 驅動程式稱為 MmUnmapIoSpace 與 IRQL > APC_LEVEL。
0x7C MDL 位址 MDL 旗標 0 驅動程式稱為 MmUnlockPages,並傳遞了從未成功鎖定其頁面的 MDL。
0x7D MDL 位址 MDL 旗標 0 驅動程式稱為 MmUnlockPages,並傳遞來自非分頁集區的 MDL。 (這些應該永遠不會解除鎖定。)
0x7E 目前的 IRQL DISPATCH_LEVEL 0 驅動程式稱為 MmAllocatePagesForMdlMmAllocatePagesForMdlExMmFreePagesFromMdl 搭配 IRQL > DISPATCH_LEVEL。
0x7F 目前的 IRQL MDL 位址 MDL 旗標 驅動程式稱為 BuildMdlForNonPagedPool ,並傳遞來自分頁集區的 MDL。
0x80 目前的 IRQL 事件位址 0 名為 KeSetEvent 的驅動程式與 IRQL > DISPATCH_LEVEL。
0x81 MDL 位址 MDL 旗標 0 名為 MmMapLockedPages 的驅動程式。 (您應該改用 MmMapLockedPagesSpecifyCache ,並將 BugCheckOnFailure 參數設定為 FALSE.)
0x82 MDL 位址 MDL 旗標 0 名為 MmMapLockedPagesSpecifyCache 的驅動程式,BugCheckOnFailure 參數等於 TRUE。 (此參數應設定為 FALSE.)
0x83 要對應之實體位址範圍的開始 要對應的位元組數目 未鎖定的第一頁框架編號 名為 MmMapIoSpace 的驅動程式,而不需要鎖定 MDL 頁面。 在進行此呼叫之前,必須鎖定所對應實體位址範圍所代表的實體頁面。
0x85 MDL 位址 要對應的頁數 未鎖定的第一頁框架編號 名為 MmMapLockedPages 的 驅動程式,而不需要鎖定 MDL 頁面。
0x89 MDL 位址 MDL 中非記憶體頁面的指標 MDL 中的非記憶體頁碼 MDL 未標示為「I/O」,但它包含非記憶體頁面位址。
0x91 保留 保留 保留 驅動程式使用作業系統不支援的方法切換堆疊。 擴充核心模式堆疊的唯一支援方式是使用 KeExpandKernelStackAndCallout

要0x140的0xA0

參數 1 參數 2 參數 3 參數 4 錯誤原因
0xA0 發出讀取或寫入要求的 IRP 指標 較低裝置的裝置物件 偵測到錯誤所在的磁區數目 在硬碟上偵測到迴圈備援檢查 (CRC) 錯誤。 只有在驅動程式驗證程式的 [磁片完整性檢查] 選項作用中時,才會發生此參數的錯誤檢查。
0xA1 發出讀取或寫入要求的 IRP 複本。 (已完成實際的 IRP。) 較低裝置的裝置物件 偵測到錯誤所在的磁區數目 在磁區上偵測到 CRC 錯誤, (非同步) 。 只有在驅動程式驗證程式的 [磁片完整性檢查] 選項作用中時,才會發生此參數的錯誤檢查。
0xA2 發出讀取或寫入要求的 IRP,或此 IRP 的複本 較低裝置的裝置物件 偵測到錯誤所在的磁區數目 CRCDISK 總和檢查碼複本不相符。 這可能是分頁錯誤。 只有在驅動程式驗證程式的 [磁片完整性檢查] 選項作用中時,才會發生此參數的錯誤檢查。
0xB0 MDL 位址 MDL 旗標 不正確的 MDL 旗標 名為 MmProbeAndLockPages 的驅動程式,適用于具有不正確旗標的 MDL。 例如,驅動程式將 MmBuildMdlForNonPagedPool 所建立的 MDL 傳遞至 MmProbeAndLockPages。
0xB1 MDL 位址 MDL 旗標 不正確的 MDL 旗標 名為 MmProbeAndLockProcessPages 的驅動程式,適用于具有不正確旗標的 MDL。 例如,驅動程式將 MmBuildMdlForNonPagedPool 所建立的 MDL 傳遞至 MmProbeAndLockProcessPages。
0xB2 MDL 位址 MDL 旗標 不正確的 MDL 旗標 驅動程式針對具有不正確旗標的 MDL 呼叫 MmMapLockedPages 。 例如,驅動程式已傳遞已對應至系統位址或未鎖定至 MmMapLockedPages 的 MDL。
0xB3 MDL 位址 MDL 旗標 遺漏 MDL 旗標, (至少預期有一個) 驅動程式針對具有不正確旗標的 MDL 呼叫 MmMapLockedPages 。 例如,驅動程式傳遞了未鎖定至 MmMapLockedPages 的 MDL。
0xB4 MDL 位址 MDL 旗標 未預期的部分 MDL 旗標 部分 MDL 的驅動程式稱為 MmUnlockPages 。 部分 MDL 是由 IoBuildPartialMdl所建立。
0xB5 MDL 位址 MDL 旗標 未預期的部分 MDL 旗標 在以 IoBuildPartialMdl) 建立的部分 MDL (上呼叫 MmUnmapLockedPages。
0xB6 MDL 位址 MDL 旗標 遺漏 MDL 旗標 在未對應至系統位址的 MDL 上呼叫 MmUnmapLockedPages。
0xB7 實體頁面損毀的數目。 第一個損毀的實體頁面。 上次損毀的實體頁面。 系統 BIOS 在睡眠轉換期間損毀了低實體記憶體。
0xB8 MDL 位址 MDL 旗標 保留 MDL 所描述的頁面仍會對應。 驅動程式必須先取消對應頁面,才能呼叫 IoFreeMdl。
0xB9 正在取消對應的位址。 MDL 位址。 保留 MmUnmapLockedPages 以不正確的使用者空間位址呼叫。
0xC0 IRP 的位址 0 保留 名為 IoCallDriver 且已停用中斷的驅動程式。
0xC1 驅動程式分派常式的位址 保留 保留 驅動程式分派常式已傳回,並停用中斷。
0xC2 0 0 0 停用中斷之後,驅動程式稱為「快速 I/O 分派常式」。
0xC3 驅動程式快速 I/O 分派常式的位址 保留 保留 驅動程式快速 I/O 分派常式已傳回,並停用中斷。
0xC5 驅動程式分派常式的位址 目前線程的 APC 停用計數 在呼叫驅動程式分派常式之前,執行緒的 APC 會先停用計數 驅動程式分派常式已變更執行緒的 APC 停用計數。 每次驅動程式呼叫 KeEnterCriticalRegionFsRtlEnterFileSystem或取得 mutex 時,都會遞減 APC 停用計數。 每次驅動程式呼叫 KeLeaveCriticalRegionKeReleaseMutexFsRtlExitFileSystem時,APC 停用計數都會遞增。 因為這些呼叫應該一律成對,所以每當執行緒結束時,APC 停用計數應該為零。 負值表示驅動程式已停用 APC 呼叫,而不重新啟用它們。 正值表示反向為 true。
0xC6 驅動程式快速 I/O 分派常式的位址 目前線程的 APC 停用計數 在呼叫快速 I/O 驅動程式分派常式之前,執行緒的 APC 會先停用計數 驅動程式快速 I/O 分派常式已變更執行緒的 APC 停用計數。 每次驅動程式呼叫 KeEnterCriticalRegionFsRtlEnterFileSystem或取得 mutex 時,都會遞減 APC 停用計數。 每次驅動程式呼叫 KeLeaveCriticalRegionKeReleaseMutexFsRtlExitFileSystem時,APC 停用計數都會遞增。 因為這些呼叫應該一律成對,所以每當執行緒結束時,APC 停用計數應該為零。 負值表示驅動程式已停用 APC 呼叫,而不重新啟用它們。 正值表示反向為 true。
0xCA lookaside 清單的位址 保留 保留 驅動程式嘗試重新初始化 lookaside 清單。
0xCB lookaside 清單的位址 保留 保留 驅動程式嘗試刪除未初始化的 lookaside 清單。
0xCC lookaside 清單的位址 集區配置的起始位址 集區配置的大小 驅動程式嘗試釋放包含作用中 lookaside 清單的集區配置。
0xCD lookaside 清單的位址 呼叫端指定的區塊大小 支援的區塊大小下限 驅動程式嘗試建立外觀清單,其配置區塊大小太小。
0xD0 ERESOURCE 結構的位址 保留 保留 驅動程式嘗試重新初始化 ERESOURCE 結構。
0xD1 ERESOURCE 結構的位址 保留 保留 驅動程式嘗試刪除未初始化的 ERESOURCE 結構。
0xD2 ERESOURCE 結構的位址 集區配置的起始位址 集區配置的大小 驅動程式嘗試釋放包含使用中 ERESOURCE 結構的集區配置。
0xD5 驅動程式所檢查組建版本所建立之IO_REMOVE_LOCK結構的位址 目前的 IoReleaseRemoveLock 標籤 保留 目前的 IoReleaseRemoveLock 標籤不符合先前 的 IoAcquireRemoveLock 標籤。 如果呼叫 IoReleaseRemoveLock 的驅動程式不在核取的組建中,參數 2 是驅動程式驗證器代表驅動程式所建立之陰影IO_REMOVE_LOCK結構的位址。 在此情況下,驅動程式所使用的IO_REMOVE_LOCK結構位址完全不會使用,因為驅動程式驗證器會取代所有移除鎖定 API 的鎖定位址。 只有在驅動程式驗證器的 I/O 驗證選項作用中時,才會發生此參數的錯誤檢查。
0xD6 驅動程式所檢查組建版本所建立之IO_REMOVE_LOCK結構的位址 不符合先前 IoAcquireRemoveLock 標籤的標記 上一個 IoAcquireRemoveLock 標籤 目前的 IoReleaseRemoveLockAndWait 標籤與先前 的 IoAcquireRemoveLock 標籤不符。 如果呼叫 IoReleaseRemoveLock 的驅動程式不是已檢查的組建,參數 2 是驅動程式驗證器代表驅動程式所建立之陰影IO_REMOVE_LOCK結構的位址。 在此情況下,驅動程式所使用的IO_REMOVE_LOCK結構位址完全不會使用,因為驅動程式驗證器會取代所有移除鎖定 API 的鎖定位址。 只有在驅動程式驗證器的 I/O 驗證選項作用中時,才會發生此參數的錯誤檢查。
0xD7 驅動程式驗證程式在內部使用的已檢查組建移除鎖定結構的位址 驅動程式所指定的移除鎖定結構位址 保留 即使呼叫 IoReleaseRemoveLockAndWait之後,移除鎖定仍無法重新初始化,因為其他執行緒可能仍會藉由呼叫 IoAcquireRemoveLock) 來使用該鎖定 (。 驅動程式應該在其裝置擴充功能內配置 Remove Lock,並一次將其初始化。 鎖定將會與裝置擴充功能一起刪除。
0xDA 驅動程式的起始位址 驅動程式內的 WMI 回呼位址 保留 嘗試卸載尚未取消註冊其 WMI 回呼函式的驅動程式。
0xDB 裝置物件的位址 保留 保留 嘗試刪除未從 WMI 取消註冊的裝置物件。
0xDC 保留 保留 保留 不正確 RegHandle 值已指定為 函式 EtwUnregister的參數。
0xDD 對 EtwRegister 的呼叫位址 卸載驅動程式的起始位址 對於Windows 8和更新版本,此參數是 ETW RegHandle 值。 嘗試卸載驅動程式而不呼叫 EtwUnregister
0xDF 同步處理物件位址 0 0 同步處理物件位於會話位址空間中。 會話位址空間中不允許同步處理物件,因為它們可以從另一個會話或沒有會話虛擬位址空間的系統執行緒操作。
0xE0 做為參數的使用者模式位址 大小,以位元組為單位,做為參數使用的位址範圍 保留 呼叫作業系統核心函式,該函式會將使用者模式位址指定為參數。
0xE1 同步處理物件的位址 保留 保留 找到同步處理物件具有無效或可分頁的位址。
0xE2 IRP 的位址 IRP 中存在的使用者模式位址 保留 找到 Irp-RequestorMode > 設為 KernelMode 的 IRP,其使用者模式位址為其中一個成員。
0xE3 對 API 的呼叫位址 在 API 中做為參數的使用者模式位址 保留 驅動程式已呼叫核心模式 ZwXxx 常式,並使用使用者模式位址做為參數。
0xE4 對 API 的呼叫位址 格式錯誤的UNICODE_STRING結構位址 保留 驅動程式已呼叫核心模式 ZwXxx 常式,其格式不正確UNICODE_STRING結構做為參數。
0xE5 目前的 IRQL 保留 保留 在不正確的 IRQL 呼叫核心 API。
0xE6 在驅動程式內進行 Zw API 呼叫的位址 目前的 IRQL 特殊核心 APC。 在 IRQL = PASSIVE_LEVEL且啟用特殊核心 APC 時,未呼叫核心 Zw API。
0xEA 目前的 IRQL 執行緒的 APC 停用計數 Pushlock 的位址 驅動程式已嘗試在啟用 APC 時取得推送鎖定。
0xEB 目前的 IRQL 執行緒的 APC 停用計數 Pushlock 的位址 驅動程式嘗試在啟用 APC 時釋放推送鎖定。
0xF0 目的地緩衝區的位址 來源緩衝區的位址 要複製的位元組數目 名為 memcpy 函式的驅動程式,其中包含重迭的來源和目的地緩衝區。
0xF5 Null 控制碼的位址 物件型別 保留 驅動程式已將 Null 控制碼傳遞至 ObReferenceObjectByHandle
0xF6 正在參考的控制碼值 目前進程的位址 執行不正確參考之驅動程式內的位址 驅動程式會將使用者模式控制碼參考為核心模式。
0xF7 處理呼叫端指定的值 呼叫端指定的物件類型 呼叫端指定的 AccessMode 驅動程式正在嘗試在系統進程的內容中,嘗試核心控制碼的使用者模式參考。
0xFA 完成常式位址。 IRQL 值在呼叫完成常式之前 目前的 IRQL 值,在呼叫完成常式之後 IRP 完成常式傳回的 IRQL 與呼叫常式所在的 IRQL 不同。
0xFB 完成常式位址 目前線程的 APC 停用計數 執行緒的 APC 會先停用計數,再呼叫 IRP 完成常式 驅動程式的 IRP 完成常式已變更執行緒的 APC 停用計數。 每次驅動程式呼叫 KeEnterCriticalRegionFsRtlEnterFileSystem或取得 mutex 時,都會遞減 APC 停用計數。 每次驅動程式呼叫 KeLeaveCriticalRegionKeReleaseMutexFsRtlExitFileSystem時,APC 停用計數都會遞增。 因為這些呼叫應該一律成對,所以每當執行緒結束時,APC 停用計數應該為零。 負值表示驅動程式已停用 APC 呼叫,而不重新啟用它們。 正值表示反向為 true。
0xFC 驅動程式內發出不正確 API 呼叫的位址。 提供的 ApcCoNtext 值。 保留 從核心模式呼叫 ZwNotifyChangeKey (,) 不支援的 ApcCoNtext 值。

0x105至 0x140

參數 1 參數 2 參數 3 參數 4 錯誤的原因
0x105 IRP 的位址 0 0 驅動程式會使用 ExFreePool 而非 IoFreeIrp 來釋放 IRP。
0x10A 0 0 0 驅動程式會嘗試將集區配額收費至閒置進程。
0x10B 0 0 0 驅動程式會嘗試從 DPC 常式收取集區配額。 不正確,因為目前的進程內容未定義。
0x110 插斷服務常式的位址 在執行 ISR 之前儲存的擴充內容位址 擴充內容的位址在執行 ISR 之後儲存 驅動程式的插斷服務常式 (ISR) 已損毀擴充執行緒內容。
0x111 插斷服務常式的位址 執行 ISR 前的 IRQL 執行 ISR 之後的 IRQL 插斷服務常式傳回已變更的 IRQL。
0x115 負責關機的執行緒位址,可能是死結。 0 0 驅動程式驗證器偵測到系統花費的時間超過 20 分鐘,且關閉未完成。
0x11A 目前的 IRQL 0 0 驅動程式會在 IRQL > APC_LEVEL呼叫 KeEnterCriticalRegion。
0x11B 目前的 IRQL 0 0 驅動程式會在 IRQL > APC_LEVEL呼叫 KeLeaveCriticalRegion。
0x120 IRQL 值的位址 要等候的物件位址 逾時值的位址 執行緒會在 IRQL > DISPATCH_LEVEL等候。 KeWaitForSingleObject 或 KeWaitForMultipleObjects 的呼叫端必須在 IRQL < = DISPATCH_LEVEL執行。
0x121 IRQL 值的位址 要等候的物件位址 逾時值的位址 執行緒會在 IRQL 等候等於 DISPATCH_LEVEL,而 Timeout 為 Null。 KeWaitForSingleObject 或 KeWaitForMultipleObjects 的呼叫端可以在 IRQL < = DISPATCH_LEVEL執行。 如果為 Timeout 提供 Null 指標,則呼叫執行緒會維持等候狀態,直到發出物件訊號為止。
0x122 IRQL 值的位址 要等候的物件位址 逾時值的位址 執行緒會在DISPATCH_LEVEL等候,而 Timeout 值不等於零 (0) 。 如果 Timeout != 0,則 KeWaitForSingleObject 或 KeWaitForMultipleObjects 的呼叫端必須在 IRQL < = APC_LEVEL執行。
0x123 要等候的物件位址 0 0 KeWaitForSingleObject 或 KeWaitForMultipleObjects 的呼叫端已將等候指定為 UserMode,但物件位於核心堆疊上。
0x130 工作專案的位址 0 0 工作專案位於會話位址空間中。 會話位址空間中不允許工作專案,因為它們可以從另一個會話或沒有會話虛擬位址空間的系統執行緒操作。
0x131 工作專案的位址 0 0 工作專案位於可分頁記憶體中。 工作專案必須位於不可分頁的記憶體中,因為核心會在DISPATCH_LEVEL使用這些專案。
0x135 IRP 位址 IoCancelIrp呼叫與此 IRP 完成之間允許的毫秒數 0 取消的 IRP 未在預期的時間內完成。驅動程式花費的時間超過預期來完成取消的 IRP。
0x13A 正在釋放集區區塊的位址 不正確的值 不正確值的位址 驅動程式已呼叫 ExFreePool ,而 Driver Verifier 會在用來追蹤集區使用量的內部值之一中偵測到錯誤。
0x13B 正在釋放集區區塊的位址 不正確值的位址 不正確記憶體頁面指標的位址 驅動程式已呼叫 ExFreePool ,而 Driver Verifier 會在用來追蹤集區使用量的內部值之一中偵測到錯誤。
0x13C 正在釋放集區區塊的位址 不正確的值 不正確值的位址 驅動程式已呼叫 ExFreePool ,而 Driver Verifier 會在用來追蹤集區使用量的內部值之一中偵測到錯誤。
0x13D 正在釋放集區區塊的位址 不正確值的位址 預期的正確值 驅動程式已呼叫 ExFreePool ,而 Driver Verifier 會在用來追蹤集區使用量的內部值之一中偵測到錯誤。
0x13E 呼叫端指定的集區區塊位址 驅動程式驗證程式所追蹤的集區區塊位址 驅動程式驗證程式所追蹤之集區區塊位址的指標 ExFreePool呼叫端所指定的集區區塊位址與驅動程式驗證器所追蹤的位址不同。
0x13F 正在釋放集區區塊的位址 正在釋放的位元組數目 驅動程式驗證程式所追蹤位元組數目的指標 在呼叫 ExFreePool時釋放的記憶體位元組數目,與驅動程式驗證器所追蹤的位元組數目不同。
0x140 目前的 IRQL MDL 位址 與此 MDL 相關聯的虛擬位址 非鎖定的 MDL 是從可分頁或可傳回的記憶體建構而來。
0x141 要求配置驅動程式的最高實體位址 要配置的位元組數目 0 驅動程式會在 4GB 下明確要求實體記憶體。

0x1000至 0x100B - 死結

參數 1 參數 2 參數 3 參數 4 錯誤的原因
0x1000 資源的位址 保留 保留 自我死結:目前的執行緒嘗試遞迴且獨佔地取得它只擁有共用的資源。 只有在驅動程式驗證程式的死結偵測選項作用中時,才會發生此參數的錯誤檢查。
0x1001 造成死結之最終原因的資源位址 保留 保留 死結:發現鎖定階層違規。 只有在驅動程式驗證程式的死結偵測選項作用中時,才會發生此參數的錯誤檢查。 (使用 !deadlock 擴充功能進一步資訊。)
0x1002 資源的位址 保留 保留 未初始化的資源:已取得資源,而不需要先初始化。 只有在驅動程式驗證程式的死結偵測選項作用中時,才會發生此參數的錯誤檢查。
0x1003 正在釋放死結的資源位址 應該先發行的資源位址 保留 未預期的發行:資源已以不正確的順序發行。 只有在驅動程式驗證程式的死結偵測選項作用中時,才會發生此參數的錯誤檢查。
0x1004 資源的位址 取得資源的執行緒位址 目前線程的位址 非預期的執行緒:錯誤的執行緒會釋放資源。 只有在驅動程式驗證程式的死結偵測選項作用中時,才會發生此參數的錯誤檢查。
0x1005 資源的位址 保留 保留 多個初始化:資源已初始化一次以上。 只有在驅動程式驗證程式的死結偵測選項作用中時,才會發生此參數的錯誤檢查。
0x1007 資源的位址 保留 保留 未取得的資源:資源在取得之前會釋出。 只有在驅動程式驗證程式的死結偵測選項作用中時,才會發生此參數的錯誤檢查。
0x1008 鎖定位址 保留 保留 驅動程式嘗試使用此鎖定類型不相符的 API 來取得鎖定。
0x1009 鎖定位址 保留 保留 驅動程式嘗試使用此鎖定類型不相符的 API 來釋放鎖定。
0x100A 擁有者執行緒位址 保留 終止的執行緒擁有鎖定。
0x100B 鎖定位址 擁有者執行緒位址 保留 已刪除的鎖定仍由執行緒所擁有。
0x1010 發出寫入 IRP 的裝置物件。 IRP 的位址。 System-Space MDL 所描述之緩衝區的虛擬位址。 已修改寫入 Irp 的不變異 MDL 緩衝區內容。
0x1011 發出寫入 IRP 的裝置物件。 IRP 的位址。 System-Space MDL 所描述之緩衝區的虛擬位址。 讀取 Irp 的不變異 MDL 緩衝區內容在分派或緩衝期間修改了虛擬頁面所支援的緩衝區。
0x1012 描述違規之字串的指標。 如果未使用) ,則涉及此損毀的資料 (0。 如果未使用) ,則涉及此損毀的資料 (0。 驗證器擴充功能狀態儲存體偵測到損毀。
0x1013 驅動程式物件的指標。 所擷取原始 I/O 回呼的指標。 保留 (未使用的) 。 驗證器偵測到擷取的原始 I/O 回呼內部損毀。

0x2000至0x2005 - 程式碼完整性問題

參數 1 參數 2 參數 3 參數 4 錯誤原因
0x2000 驅動程式程式碼中偵測到錯誤的位址。 集區類型。 如果提供) ,集區標籤 (。 程式碼完整性問題:呼叫端指定可執行集區類型。 預期 (:NonPagedPoolNx)
0x2001 驅動程式程式碼中偵測到錯誤的位址。 頁面保護 (WIN32_PROTECTION_MASK) 。 0 程式碼完整性問題:呼叫端指定了可執行檔頁面保護。 (預期:已清除PAGE_EXECUTE* 位)
0x2002 驅動程式程式碼中偵測到錯誤的位址。 頁面優先順序 (MM_PAGE_PRIORITY 邏輯方式為 OR'd 與 MdlMapping*) 。 0 程式碼完整性問題:呼叫端指定可執行檔 MDL 對應。 預期 (:MdlMappingNoExecute)
0x2003 映射檔案名 (Unicode 字串) 。 區段標頭的位址。 區段名稱 (UTF-8 編碼字串) 。 程式碼完整性問題:映射包含可執行和可寫入的區段。
0x2004 映射檔案名 (Unicode 字串) 。 區段標頭的位址。 區段名稱 (UTF-8 編碼字串) 。 程式碼完整性問題:影像包含未對齊頁面的區段。
0x2005 映射檔案名 (Unicode 字串) 。 IAT 目錄。 區段名稱 (UTF-8 編碼字串) 。 程式碼完整性問題:映射包含位於可執行檔區段中的 IAT。

0xA001至0xA00D - VM 交換器問題

參數 1 參數 2 參數 3 參數 4 錯誤原因
0xA001 NetBufferList 物件的指標 如果 NON-Null) ,則為虛擬交換器物件的指標 ( 保留 (未使用) VM 參數:必須設定呼叫端提供的 NetBufferList SourceHandle。 請參閱 AllocateNetBufferListForwardingCoNtext 常式。
0xA002 NetBufferList 物件的指標 如果 NON-Null) ,則為虛擬交換器物件的指標 (。 保留 (未使用) VM 交換器:呼叫端提供的 NetBufferList 轉送詳細資料不是零。 請參閱 AllocateNetBufferListForwardingCoNtext 常式。
0xA003 NetBufferList 物件的指標 如果 NON-Null) ,則為虛擬交換器物件的指標 (。 保留 (未使用) VM 交換器:呼叫端已提供 NetBufferList,其中包含封包標頭或為 Null 的路由內容。 請參閱 可延伸交換器資料路徑的封包管理指導方針
0xA004 無效埠的識別碼 NIC 索引 如果 NON-Null) ,則為虛擬交換器物件的指標 (。 VM 交換器:呼叫端指定了不正確埠和 NIC 索引組合。 請參閱 Hyper-V 可延伸交換器埠和網路介面卡狀態
0xA005 NetBufferList 物件的指標 目的地清單的指標。 如果 NON-Null) ,則為虛擬交換器物件的指標 (。 VM 交換器:呼叫端提供了不正確目的地。 請參閱 AddNetBufferListDestinationUpdateNetBufferListDestinations
0xA006 NetBufferList 物件的指標 如果 NON-Null) ,則為虛擬交換器物件的指標 (。 保留 (未使用) VM 交換器:呼叫端提供不正確來源 NIC 或 Port 物件。 請參閱 Hyper-V 可延伸交換器埠和網路介面卡狀態
0xA007 NetBufferList 物件的指標 如果 NON-Null) ,則為虛擬交換器物件的指標 (。 保留 (未使用) VM 交換器:呼叫端提供了不正確目的地清單。 請參閱 AddNetBufferListDestinationUpdateNetBufferListDestinations
0xA008 父 NIC 物件 NIC 索引 如果 NON-Null) ,則為虛擬交換器物件的指標 (。 VM 交換器:不允許時嘗試參考 NIC。 請參閱 Hyper-V 可延伸交換器埠和網路介面卡狀態
0xA009 正在參考的埠 如果 NON-Null) ,則為虛擬交換器物件的指標 ( 保留 (未使用) VM 交換器:嘗試在不允許時參考埠。 請參閱 Hyper-V 可延伸交換器埠和網路介面卡狀態
0xA00A NetBufferList 物件的指標 CoNtextTypeInfo 物件 保留 (未使用) VM 交換器:已設定失敗內容。 請參閱 SetNetBufferListSwitchCoNtext
0xA00B NetBufferList 物件的指標 NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_* 如果 NON-Null) ,則為虛擬交換器物件的指標 ( VM 交換器:為捨棄的 NetBufferList 提供不正確方向。 請參閱 ReportFilteredNetBufferLists
0xA00C NetBufferList 物件的指標 傳送旗標值 如果 NON-Null) ,則為虛擬交換器物件的指標 ( VM 交換器:設定NDIS_SEND_FLAGS_SWITCH_SINGLE_SOURCE旗標時,NetBufferList 鏈結有多個來源埠。 請參閱 Hyper-V 可延伸交換器傳送和接收旗標
0xA00D NetBufferList 物件的指標 虛擬交換器內容的指標 如果 NON-Null) ,則為虛擬交換器物件的指標 ( VM 交換器:設定NDIS_RECEIVE_FLAGS_SWITCH_DESTINATION_GROUP旗標時,鏈結中的一或多個 NetBufferList 具有不正確目的地。 請參閱 Hyper-V 可延伸交換器傳送和接收旗標
0xA00E NetBufferLists 物件的指標。 虛擬交換器內容的指標。 如果 NON-Null) ,則為虛擬交換器物件的指標 (。 VM 交換器:設定VMS_NBL_ROUTING_CONTEXT_FLAG_NO_WNV_PROCESSING旗標時,嘗試透過 WNV 完成 NetBufferList。

0x00020002 0x00020022 - DDI 合規性規則違規

參數 1 參數 2 參數 3 參數 4 錯誤原因
0x00020002 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlApcLte。 此規則指定只有在 IRQL < = APC_LEVEL時,驅動程式才能呼叫ObGetObjectSecurityObReleaseObjectSecurity
0x00020003 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlDispatch。 IrqlDispatch 規則指定只有在 IRQL = DISPATCH_LEVEL 時,驅動程式才必須呼叫特定常式
0x00020004 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlExAllocatePool。 IrqlExAllocatePool 規則指定只有在 IRQL < =DISPATCH_LEVEL 時,驅動程式才會呼叫ExAllocatePoolWithTag和 ExAllocatePoolWithTagPriority
0x00020005 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlExApcLte1。 IrqlExApcLte1 規則指定驅動程式只在 IRQL < = APC_LEVEL 呼叫 ExAcquireFastMutex 和 ExTryToAcquireFastMutex。
0x00020006 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlExApcLte2。 IrqlExApcLte2 規則指定只有在 IRQL < = APC_LEVEL 時,驅動程式才會呼叫特定常式。
0x00020007 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlExApcLte3。 IrqlExApcLte3 規則指定只有在 IRQL < = APC_LEVEL時,驅動程式才必須呼叫特定的主管支援常式。
0x00020008 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlExPassive。 IrqlExPassive 規則指定只有在 IRQL = PASSIVE_LEVEL時,驅動程式才必須呼叫特定的主管支援常式。
0x00020009 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlIoApcLte。 IrqlIoApcLte 規則指定驅動程式只有在 IRQL < = APC_LEVEL時,才必須呼叫特定的 I/O 管理員常式。
0x0002000A 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlIoPassive1。 IrqlIoPassive1 規則指定只有在 IRQL = PASSIVE_LEVEL時,驅動程式才必須呼叫特定的 I/O 管理員常式。
0x0002000B 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlIoPassive2。 IrqlIoPassive2 規則指定只有在 IRQL = PASSIVE_LEVEL時,驅動程式才必須呼叫特定的 I/O 管理員常式。
0x0002000C 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlIoPassive3。 IrqlIoPassive3 規則指定只有在 IRQL = PASSIVE_LEVEL時,驅動程式才必須呼叫特定的 I/O 管理員常式。
0x0002000D 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlIoPassive4。 IrqlIoPassive4 規則指定只有在 IRQL = PASSIVE_LEVEL時,驅動程式才必須呼叫特定的 I/O 管理員常式。
0x0002000E 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlIoPassive5。 IrqlIoPassive5 規則指定只有在 IRQL = PASSIVE_LEVEL時,驅動程式才必須呼叫特定的 I/O 管理員常式。
0x0002000F 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlKeApcLte1。 IrqlKeApcLte1 規則指定只有在 IRQL < = APC_LEVEL時,驅動程式才必須呼叫特定核心常式。
0x00020010 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlKeApcLte2。 IrqlKeApcLte2 規則指定只有在 IRQL < = APC_LEVEL時,驅動程式才必須呼叫特定核心常式。
0x00020011 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlKeDispatchLte。 IrqlKeDispatchLte 規則指定只有在 IRQL < = DISPATCH_LEVEL時,驅動程式才必須呼叫特定核心常式。
0x00020015 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlKeReleaseSpinLock。 IrqlKeReleaseSpinLock 規則指定只有在 IRQL = DISPATCH_LEVEL時,驅動程式才必須呼叫 KeReleaseSpinLock。
0x00020016 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlKeSetEvent。 IrqlKeSetEvent 規則指定 KeSetEvent 常式只有在 IRQL < = DISPATCH_LEVEL設定為 FALSE 時呼叫 KeSetEvent 常式,而當 Wait 設定為 TRUE 時,在 IRQL < = APC_LEVEL呼叫。
0x00020019 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlMmApcLte。 IrqlMmApcLte 規則指定只有在 IRQL < = APC_LEVEL時,驅動程式才必須呼叫特定的記憶體管理員常式。
0x0002001A 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlMmDispatch。 IrqlMmDispatch 規則指定驅動程式只有在 IRQL = DISPATCH_LEVEL時,才必須呼叫 MmFreeContiguousMemory
0x0002001B 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlObPassive。 IrqlObPassive 規則指定驅動程式只有在 IRQL = PASSIVE_LEVEL時,才必須呼叫 ObReferenceObjectByHandle
0x0002001C 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlPsPassive。 IrqlPsPassive 規則指定只有在 IRQL = PASSIVE_LEVEL 時,驅動程式才必須呼叫特定進程和執行緒管理員常式。
0x0002001D 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 DDI 合規性規則 IrqlReturn
0x0002001E 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlRtlPassive。 IrqlRtlPassive 規則指定只有在 IRQL = PASSIVE_LEVEL時,驅動程式才必須呼叫 RtlDeleteRegistryValue
0x0002001F 描述違反規則條件之字串的指標。 規則狀態變數 () 選擇性指標。 保留 驅動程式違反 DDI 合規性規則 IrqlZwPassive。 IrqlZwPassive 規則指定只有在 IRQL = PASSIVE_LEVEL時,驅動程式才必須呼叫 ZwClose
0x00020022 描述違反規則條件之字串的指標。 保留 (未使用的) 保留 (未使用的) 驅動程式違反 DDI 合規性規則 IrqlIoDispatch
0x00020023 字串的指標,描述違反的規則條件。 保留 (未使用的) 。 保留 (未使用的) 。 驅動程式違反 DDI 合規性規則 IrqlIoRtlZwPassive。 IrqlIoRtlZwPassive 規則會指定只有在以 IRQL = PASSIVE_LEVEL執行時,驅動程式才會呼叫規則中列出的 DIS。
0x00020024 字串的指標,描述違反的規則條件。 保留 (未使用的) 。 保留 (未使用的) 。 驅動程式違反 DDI 合規性規則 IrqlNtifsApcPassive。 IrqlNtifsApcPassive 規則指定只有當驅動程式在 IRQL = PASSIVE_LEVEL或 IRQL < = APC_LEVEL執行時,驅動程式才會呼叫規則中列出的 DIS。
0x00020025 字串的指標,描述違反的規則條件。 保留 (未使用的) 。 保留 (未使用的) 。 驅動程式違反 Microsoft 內部 DDI 合規性規則 IrqlKeMore。

0x00040003至 0x00043006 - DDI 合規性規則違規

參數 1 參數 2 參數 3 參數 4 錯誤的原因
0x00040003 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 DDI 合規性規則 CriticalRegions
0x00040006 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 DDI 合規性規則 QueuedSpinLock
0x00040007 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 DDI 合規性規則 QueuedSpinLockRelease
0x00040009 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 DDI 合規性規則 SpinLock
0x0004000A 描述違反規則條件之字串的指標。 將內部規則狀態 (第二個引數的位址!ruleinfo) 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 DDI 合規性規則 SpinlockRelease
0x0004000E 描述違反規則條件之字串的指標。 對 !ruleinfo) 的第二個引數 (內部規則狀態的位址。 !ruleinfo) 的第三個引數 (補充狀態的位址。 驅動程式違反 DDI 合規性規則 GuardedRegions
0x0004100B 描述違反規則條件之字串的指標。 保留 (未使用) 保留 (未使用) 驅動程式違反 DDI 合規性規則 RequestedPowerIrp
0x0004100F 描述違反規則條件之字串的指標。 對 !ruleinfo) 的第二個引數 (內部規則狀態的位址。 !ruleinfo) 的第三個引數 (補充狀態的位址。 驅動程式違反 DDI 合規性規則 IoSetCompletionExCompleteIrp
0x00043006 描述違反規則條件之字串的指標。 保留 (未使用) 保留 (未使用) 驅動程式違反 DDI 合規性規則 PnpRemove

0x00081001 0x00082005 - AVStream 驅動程式合規性規則違規

參數 1 參數 2 參數 3 參數 4 錯誤原因
0x00081001 描述違反規則條件之字串的指標。 對 !ruleinfo) 的第二個引數 (內部規則狀態的位址。 !ruleinfo) 的第三個引數 (補充狀態的位址。 驅動程式違反 DDI 合規性規則 KsDeviceMutex
0x00081002 描述違反規則條件之字串的指標。 對 !ruleinfo) 的第二個引數 (內部規則狀態的位址。 !ruleinfo) 的第三個引數 (補充狀態的位址。 驅動程式違反 DDI 合規性規則 KsStreamPointerClone
0x00081003 描述違反規則條件之字串的指標。 保留 (未使用) 保留 (未使用) 驅動程式違反 DDI 合規性規則 KsStreamPointerLock
0x00081004 描述違反規則條件之字串的指標。 對 !ruleinfo) 的第二個引數 (內部規則狀態的位址。 !ruleinfo) 的第三個引數 (補充狀態的位址。 驅動程式違反 DDI 合規性規則 KsStreamPointerUnlock
0x00081005 描述違反規則條件之字串的指標。 保留 (未使用) 保留 (未使用) 驅動程式違反 DDI 合規性規則 KsCallbackReturn
0x00081006 描述違反規則條件之字串的指標。 對 !ruleinfo) 的第二個引數 (內部規則狀態的位址。 !ruleinfo) 的第三個引數 (補充狀態的位址。 驅動程式違反 DDI 合規性規則 KsIrqlDeviceCallbacks
0x00081007 描述違反規則條件之字串的指標。 對 !ruleinfo) 的第二個引數 (內部規則狀態的位址。 !ruleinfo) 的第三個引數 (補充狀態的位址。 驅動程式違反 DDI 合規性規則 KsIrqlFilterCallbacks
0x00081008 描述違反規則條件之字串的指標。 對 !ruleinfo) 的第二個引數 (內部規則狀態的位址。 !ruleinfo) 的第三個引數 (補充狀態的位址。 驅動程式違反 DDI 合規性規則 KsIrqlPinCallbacks
0x00081009 描述違反規則條件之字串的指標。 保留 (未使用) 保留 (未使用) 驅動程式違反 DDI 合規性規則 KsIrqlDIS
0x0008100A 描述違反規則條件之字串的指標。 對 !ruleinfo) 的第二個引數 (內部規則狀態的位址。 !ruleinfo) 的第三個引數 (補充狀態的位址。 驅動程式違反 DDI 合規性規則 KsFilterMutex
0x0008100B 描述違反規則條件之字串的指標。 對 !ruleinfo) 的第二個引數 (內部規則狀態的位址。 !ruleinfo) 的第三個引數 (補充狀態的位址。 驅動程式違反 DDI 合規性規則 KsProcessingMutex
0x0008100C 描述違反規則條件之字串的指標。 對 !ruleinfo) 的第二個引數 (內部規則狀態的位址。 !ruleinfo) 的第三個引數 (補充狀態的位址。 驅動程式違反 DDI 合規性規則 KsInvalidStreamPointer
0x00082001 描述違反規則條件之字串的指標。 對 !ruleinfo) 的第二個引數 (內部規則狀態的位址。 !ruleinfo) 的第三個引數 (補充狀態的位址。 驅動程式違反 DDI 合規性規則 KsTimedPinSetDeviceState
0x00082002 描述違反規則條件之字串的指標。 對 !ruleinfo) 的第二個引數 (內部規則狀態的位址。 !ruleinfo) 的第三個引數 (補充狀態的位址。 驅動程式違反 DDI 合規性規則 KsTimedDeviceCallbacks
0x00082003 描述違反規則條件之字串的指標。 對 !ruleinfo) 的第二個引數 (內部規則狀態的位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 DDI 合規性規則 KsTimedFilterCallbacks
0x00082004 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 DDI 合規性規則 KsTimedPinCallbacks
0x00082005 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 DDI 合規性規則 KsTimedProcessingMutex

0x00091001至 0x0009400C - NDIS DDI 合規性規則違規

參數 1 參數 2 參數 3 參數 4 錯誤的原因
0x00091001 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 DDI 合規性規則 NdisOidComplete
0x00091002 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 DDI 合規性規則 NdisOidDoubleComplete
0x0009100E 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 DDI 合規性規則 NdisOidDoubleRequest
0x00092003 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 NDIS/WIFI 驗證規則 NdisTimedOidComplete
0x0009200D 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 NDIS/WIFI 驗證規則 NdisTimedDataSend
0x0009200F 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 NDIS/WIFI 驗證規則 NdisTimedDataHang
0x00092010 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 NDIS/WIFI 驗證規則 NdisFilterTimedPauseComplete
0x00092011 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 NDIS/WIFI 驗證規則 NdisFilterTimedDataSend
0x00092012 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 NDIS/WIFI 驗證規則 NdisFilterTimedDataReceive
0x00093004 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 NDIS/WIFI 驗證規則 WlanAssociation
0x00093005 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 NDIS/WIFI 驗證規則 WlanConnectionRoaming
0x00093006 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 NDIS/WIFI 驗證規則 WlanDisassociation
0x00093101 描述違反規則條件的字串指標。 保留 (未使用的) 保留 (未使用的) 驅動程式違反 NDIS/WIFI 驗證規則 WlanAssert
0x00094007 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 NDIS/WIFI 驗證規則 WlanTimedAssociation
0x00094008 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 NDIS/WIFI 驗證規則 WlanTimedConnectionRoaming
0x00094009 描述違反規則條件之字串的指標。 將第二個引數 (至 !ruleinfo) 的內部規則狀態位址。 補充狀態 (第三個引數的位址!ruleinfo) 。 驅動程式違反 NDIS/WIFI 驗證規則 WlanTimedConnectRequest
0x0009400B 描述違反規則條件之字串的指標。 對 !ruleinfo) 的第二個引數 (內部規則狀態的位址。 !ruleinfo) 的第三個引數 (補充狀態的位址。 驅動程式違反 NDIS/WIFI 驗證規則 WlanTimedLinkQuality
0x0009400C 描述違反規則條件之字串的指標。 對 !ruleinfo) 的第二個引數 (內部規則狀態的位址。 !ruleinfo) 的第三個引數 (補充狀態的位址。 驅動程式違反 NDIS/WIFI 驗證規則 WlanTimedScan

原因

如需原因的描述,請參閱 Parameters 區段中每個程式碼的描述。 您可以使用 !analyze -v 延伸模組取得進一步的資訊。

解決方案

只有在指示驅動程式驗證程式監視一或多個驅動程式時,才會進行這個錯誤檢查。 如果您不想使用驅動程式驗證器,您應該停用它。 您也可以考慮移除造成此問題的驅動程式。

如果您是驅動程式寫入器,請使用透過這個錯誤檢查取得的資訊來修正程式碼中的 Bug。

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

備註

_POOL_TYPE程式碼會在 Ntddk.h 中列舉。 特別是, 0 (零) 表示非分頁集區,而 1 (一個) 表示分頁集區。

(Windows 8 和更新版本的 Windows) 如果DDI 合規性檢查造成錯誤檢查,請在驅動程式原始程式碼上執行靜態驅動程式驗證程式,並指定參數 1 值所識別的 DDI 合規性 (規則,) 導致錯誤檢查。 靜態驅動程式驗證程式可協助您找出原始程式碼中問題的原因。

另請參閱

啟用驅動程式驗證程式時處理錯誤檢查