電腦藍屏提示代碼DRIVER_VERIFIER_DETECTED_VIOLATION怎么辦
藍屏代碼0x000000C4代表"DRIVER_VERIFIER_DETECTED_VIOLATION",這意味著Windows驅(qū)動程序驗證器檢測到了一個違規(guī)情況導致系統(tǒng)崩潰。驅(qū)動程序驗證器是Windows中的一個工具,用于檢測和識別驅(qū)動程序中的錯誤或問題。當發(fā)現(xiàn)一個被驗證的驅(qū)動程序在執(zhí)行期間出現(xiàn)問題時,系統(tǒng)會產(chǎn)生此錯誤代碼的藍屏。
要解決這個問題,可以嘗試以下方法:
方法一:檢查硬件兼容性
藍屏錯誤可能是由于硬件與驅(qū)動程序不兼容而引起的,你可以查看硬件制造商的官方網(wǎng)站,以確保硬件兼容性,并下載適用于你的操作系統(tǒng)的驅(qū)動程序。
方法二:檢查硬件故障
有時候藍屏錯誤也可能是由于硬件故障引起的,您可以嘗試檢查和重新連接計算機中的硬件設(shè)備,如內(nèi)存條、硬盤等,或者運行Windows自帶的硬件診斷工具來檢測是否存在硬件問題。
方法三:執(zhí)行系統(tǒng)還原
如果您在遇到該錯誤之前進行了系統(tǒng)更改或驅(qū)動程序更新,您可以嘗試使用系統(tǒng)還原將計算機恢復到先前的工作狀態(tài)。
方法四:使用一鍵修復工具助手(強烈推薦)
1、首先你的電腦必須下載與完成安裝完成快快藍屏修復助手。如果你還沒有安裝點擊下方鏈接下載。
下載地址:>>>快快藍屏修復助手<<<
提示:安裝路徑不要選擇C盤,避免產(chǎn)生問題造成損失。
2、找到你電腦中的快快藍屏修復助手,點擊進入。看到首頁后,點擊首頁一鍵掃描按鈕開始掃描。等待幾分鐘,就能獲取你急切想要的結(jié)果。
3、掃描完成后會顯示電腦的所有藍屏記錄以及藍屏的詳細信息。
4、解決方案頁面顯示了導致該次藍屏的具體原因和解決方案,點擊右上角的一鍵修復進行修復。
5、切記,當修復完成之后我們還是需要重新啟動計算機的。畢竟一切修復的結(jié)果,需要重新后,才能被系統(tǒng)認可。
當你完成重啟后,你電腦的藍屏問題已經(jīng)基本解決了。相信小編,不要急需卸載快快藍屏修復助手。畢竟它強大的功能是你未來的一個保障,可以隨時隨地為你服務,讓你再次遇到藍屏問題不在抓狂。
其他相關(guān)信息:
DRIVER_VERIFIER_DETECTED_VIOLATION bug 檢查 的值為 0x000000C4。 這是驅(qū)動程序驗證程序發(fā)現(xiàn)的嚴重錯誤的常規(guī) bug 檢查代碼。 有關(guān)詳細信息,請參閱 啟用驅(qū)動程序驗證程序時處理 Bug 檢查。
DRIVER_VERIFIER_DETECTED_VIOLATION參數(shù)
參數(shù) 1 標識沖突的類型。 其余參數(shù)的含義因參數(shù) 1 的值而異。 下表描述了參數(shù)值。
注意 如果在查看此表中的所有 5 列時遇到問題,請嘗試以下操作:
將瀏覽器窗口擴展到完整大小。 將光標置于表格中,并使用箭頭鍵向左和向右滾動。0x00 0x70
參數(shù) 1 | 參數(shù) 2 | 參數(shù) 3 | 參數(shù) 4 | 錯誤消息的原因 |
---|---|---|---|---|
0x00 | 當前 IRQL | 池類型 | 字節(jié)數(shù) | 驅(qū)動程序請求了零字節(jié)池分配。 |
0x01 | 當前 IRQL | 池類型 | 分配大小(以字節(jié)為單位) | 驅(qū)動程序嘗試使用 IRQL > APC_LEVEL分配分頁內(nèi)存。 |
0x02 | 當前 IRQL | 池類型 | 分配大小(以字節(jié)為單位) | 驅(qū)動程序嘗試使用 IRQL > DISPATCH_LEVEL分配非分頁內(nèi)存。 |
0x03 | 調(diào)用方正在嘗試分配多個必須成功池的頁面,但一個頁面是此 API 允許的最大頁數(shù)。 | |||
0x10 | 錯誤地址 | 0 | 0 | 驅(qū)動程序嘗試釋放未從分配調(diào)用返回的地址。 |
0x11 | 當前 IRQL | 池類型 | 池的地址 | 驅(qū)動程序嘗試使用 IRQL > APC_LEVEL釋放分頁池。 |
0x12 | 當前 IRQL | 池類型 | 池的地址 | 驅(qū)動程序嘗試使用 IRQL > DISPATCH_LEVEL釋放非分頁池。 |
0x13 或 0x14 | 保留 | 指向池標頭的指針 | 池標頭內(nèi)容 | 驅(qū)動程序嘗試釋放已釋放的內(nèi)存池。 |
0x15 | 計時器條目 | 池類型 | 正在釋放的池地址 | 調(diào)用方嘗試釋放的池包含活動計時器。 |
0x16 | 保留 | 池地址 | 0 | 驅(qū)動程序嘗試釋放錯誤地址處的池,或驅(qū)動程序?qū)o效參數(shù)傳遞給內(nèi)存例程。 |
0X17 | 資源條目 | 池類型 | 正在釋放的池地址 | 調(diào)用方嘗試釋放的池包含活動的 ERESOURCE。 |
0x30 | 當前 IRQL | 請求的 IRQL | 0 | 驅(qū)動程序?qū)o效參數(shù)傳遞給 KeRaiseIrql。 (參數(shù)是低于當前 IRQL 的值,或高于 HIGH_LEVEL 的值。這可能是使用未初始化的 parameter.) |
0x31 | 當前 IRQL | 請求的 IRQL | 0:新 IRQL 錯誤 1:新 IRQL 在 DPC 例程中無效 | 驅(qū)動程序?qū)o效參數(shù)傳遞給 KeLowerIrql。 (參數(shù)的值高于當前 IRQL 或高于 HIGH_LEVEL。這可能是使用未初始化的 parameter.) |
0x32 | 當前 IRQL | 旋轉(zhuǎn)鎖地址 | 0 | 驅(qū)動程序在除 DISPATCH_LEVEL 以外的 IRQL 中調(diào)用 KeReleaseSpinLock 。 (這可能是由于旋轉(zhuǎn)鎖的雙重釋放。) |
0x33 | 當前 IRQL | 快速互斥地址 | 0 | 驅(qū)動程序嘗試使用 IRQL > APC_LEVEL獲取快速互斥。 |
0x34 | 當前 IRQL | 線程 APC 禁用計數(shù) | 快速互斥地址 | 驅(qū)動程序嘗試在除 APC_LEVEL 之外的 IRQL 處釋放快速互斥。 |
0x35 | 當前 IRQL | 旋轉(zhuǎn)鎖地址 | 舊 IRQL | 內(nèi)核釋放了 IRQL 不等于 DISPATCH_LEVEL 的旋轉(zhuǎn)鎖。 |
0x36 | 當前 IRQL | 旋轉(zhuǎn)鎖號 | 舊 IRQL | 內(nèi)核釋放了 IRQL 不等于DISPATCH_LEVEL的排隊旋轉(zhuǎn)鎖。 |
0x37 | 當前 IRQL | 線程 APC 禁用計數(shù) | 資源 | 驅(qū)動程序嘗試獲取資源,但未禁用 APC。 |
0x38 | 當前 IRQL | 線程 APC 禁用計數(shù) | 資源 | 驅(qū)動程序嘗試釋放資源,但未禁用 APC。 |
0x39 | 當前 IRQL | 線程 APC 禁用計數(shù) | Mutex | 驅(qū)動程序嘗試獲取一個互斥體“不安全”,IRQL 不等于輸入時APC_LEVEL。 |
0x3A | 當前 IRQL | 線程 APC 禁用計數(shù) | Mutex | 驅(qū)動程序嘗試釋放互斥體“不安全”,IRQL 不等于輸入時APC_LEVEL。 |
0x3B | 當前 IRQL | 要等待的對象 | 超時參數(shù) | KeWaitXxx 例程在 DISPATCH_LEVEL 或更高版本調(diào)用。 |
0x3C | 傳遞給例程的句柄 | 對象類型 | 0 | 驅(qū)動程序使用錯誤的句柄調(diào)用 ObReferenceObjectByHandle 。 |
0x3D | 0 | 0 | 錯誤資源的地址 | 驅(qū)動程序?qū)㈠e誤的 (未對齊) 資源傳遞給 ExAcquireResourceExclusive。 |
0x3E | 0 | 0 | 0 | 驅(qū)動程序為當前不在關(guān)鍵區(qū)域中的線程調(diào)用 KeLeaveCriticalRegion 。 |
0x3F | 對象地址 | 新的對象引用計數(shù)。 -1:取消引用案例 1:引用案例 | 0 | 驅(qū)動程序?qū)?ObReferenceObject 應用于引用計數(shù)為零的對象,或驅(qū)動程序?qū)?ObDereferenceObject 應用于引用計數(shù)為零的對象。 |
0x40 | 當前 IRQL | 旋轉(zhuǎn)鎖地址 | 0 | 驅(qū)動程序使用 IRQL < DISPATCH_LEVEL調(diào)用 KeAcquireSpinLockAtDpcLevel。 |
0x41 | 當前 IRQL | 旋轉(zhuǎn)鎖地址 | 0 | 驅(qū)動程序使用 IRQL < DISPATCH_LEVEL調(diào)用 KeReleaseSpinLockFromDpcLevel。 |
0x42 | 當前 IRQL | 旋轉(zhuǎn)鎖地址 | 0 | 驅(qū)動程序使用 IRQL > DISPATCH_LEVEL調(diào)用 KeAcquireSpinLock。 |
0x51 | 分配的基址 | 超出分配的引用的地址 | 收費字節(jié)數(shù) | 驅(qū)動程序在寫入到分配結(jié)束之后嘗試釋放內(nèi)存。 僅當驅(qū)動程序驗證程序的“池跟蹤”選項處于活動狀態(tài)時,才會使用此參數(shù)檢查 bug。 |
0x52 | 分配的基址 | 哈希條目 | 收費字節(jié)數(shù) | 驅(qū)動程序在寫入到分配結(jié)束之后嘗試釋放內(nèi)存。 僅當驅(qū)動程序驗證程序的“池跟蹤”選項處于活動狀態(tài)時,才會使用此參數(shù)檢查 bug。 |
0x53 | 分配的基址 | 標頭 | 保留 | 驅(qū)動程序在寫入到分配結(jié)束之后嘗試釋放內(nèi)存。 僅當驅(qū)動程序驗證程序的“池跟蹤”選項處于活動狀態(tài)時,才會使用此參數(shù)檢查 bug。 |
0x54 | 分配的基址 | 保留 | 池哈希大小 | 驅(qū)動程序在寫入到分配結(jié)束之后嘗試釋放內(nèi)存。 僅當驅(qū)動程序驗證程序的“池跟蹤”選項處于活動狀態(tài)時,才會使用此參數(shù)檢查 bug。 |
0x59 | 分配的基址 | Listindex | 保留 | 驅(qū)動程序在寫入到分配結(jié)束之后嘗試釋放內(nèi)存。 僅當驅(qū)動程序驗證程序的“池跟蹤”選項處于活動狀態(tài)時,才會使用此參數(shù)檢查 bug。 |
0x60 | 從分頁池分配的字節(jié)數(shù) | 從非分頁池分配的字節(jié)數(shù) | 未釋放的分配總數(shù) | 驅(qū)動程序正在卸載,但未首先釋放其池分配。 僅當驅(qū)動程序驗證程序的“池跟蹤”選項處于活動狀態(tài)時,才會使用此參數(shù)檢查 bug。 |
0x61 | 從分頁池分配的字節(jié)數(shù) | 從非分頁池分配的字節(jié)數(shù) | 未釋放的分配總數(shù) | 驅(qū)動程序線程正在嘗試在驅(qū)動程序卸載時分配池內(nèi)存。 僅當驅(qū)動程序驗證程序的“池跟蹤”選項處于活動狀態(tài)時,才會使用此參數(shù)檢查 bug。 |
0x62 | 驅(qū)動程序的名稱 | 保留 | 未釋放的分配總數(shù),包括分頁池和非分頁池 | 驅(qū)動程序正在卸載,但未首先釋放其池分配。 僅當驅(qū)動程序驗證程序的“池跟蹤”選項處于活動狀態(tài)時,才會使用此參數(shù)檢查 bug。 鍵入 !verifier 3 drivername.sys,獲取有關(guān)導致 bug 檢查的已泄漏分配的信息。 |
0x6F | MDL 地址 | 物理頁面被鎖定 | 系統(tǒng)中最高的物理頁 | 在不在 PFN 數(shù)據(jù)庫中的頁面上調(diào)用 MmProbeAndLockPages。 這通常是調(diào)用此例程以鎖定其自己的專用雙端口 RAM 的驅(qū)動程序。 這不僅不需要這樣做,而且還會損壞具有不連續(xù)物理 RAM 的計算機上的內(nèi)存。 |
0x70 0x91
參數(shù) 1 | 參數(shù) 2 | 參數(shù) 3 | 參數(shù) 4 | 錯誤消息的原因 |
---|---|---|---|---|
0x70 | 當前 IRQL | MDL 地址 | 訪問模式 | 驅(qū)動程序使用 IRQL > DISPATCH_LEVEL調(diào)用了 MmProbeAndLockPages。 |
0x71 | 當前 IRQL | MDL 地址 | 進程地址 | 驅(qū)動程序使用 IRQL > DISPATCH_LEVEL調(diào)用 MmProbeAndLockProcessPages。 |
0x72 | 當前 IRQL | MDL 地址 | 進程地址 | 驅(qū)動程序使用 IRQL > DISPATCH_LEVEL調(diào)用 MmProbeAndLockSelectedPages。 |
0x73 | 當前 IRQL | 在 32 位 Windows 中:物理地址的低 32 位在 64 位 Windows 中:64 位物理地址 | 字節(jié)數(shù) | 驅(qū)動程序使用 IRQL > DISPATCH_LEVEL調(diào)用 MmMapIoSpace。 |
0x74 | 當前 IRQL | MDL 地址 | 訪問模式 | 驅(qū)動程序在內(nèi)核模式下使用 IRQL > DISPATCH_LEVEL調(diào)用 MmMapLockedPages。 |
0x75 | 當前 IRQL | MDL 地址 | 訪問模式 | 驅(qū)動程序在用戶模式下使用 IRQL > APC_LEVEL調(diào)用 MmMapLockedPages。 |
0x76 | 當前 IRQL | MDL 地址 | 訪問模式 | 驅(qū)動程序在內(nèi)核模式下使用 IRQL > DISPATCH_LEVEL調(diào)用 MmMapLockedPagesSpecifyCache。 |
0x77 | 當前 IRQL | MDL 地址 | 訪問模式 | 驅(qū)動程序在用戶模式下使用 IRQL > APC_LEVEL調(diào)用 MmMapLockedPagesSpecifyCache。 |
0x78 | 當前 IRQL | MDL 地址 | 0 | 驅(qū)動程序使用 IRQL > DISPATCH_LEVEL調(diào)用 MmUnlockPages。 |
0x79 | 當前 IRQL | 正在取消映射的虛擬地址 | MDL 地址 | 驅(qū)動程序在內(nèi)核模式下使用 IRQL > DISPATCH_LEVEL調(diào)用 MmUnmapLockedPages。 |
0x7A | 當前 IRQL | 正在取消映射的虛擬地址 | MDL 地址 | 驅(qū)動程序在用戶模式下使用 IRQL > APC_LEVEL調(diào)用 MmUnmapLockedPages。 |
0x7B | 當前 IRQL | 正在取消映射的虛擬地址 | 字節(jié)數(shù) | 驅(qū)動程序使用 IRQL > APC_LEVEL調(diào)用 MmUnmapIoSpace。 |
0x7C | MDL 地址 | MDL 標志 | 0 | 驅(qū)動程序調(diào)用 MmUnlockPages,并傳遞了一個 MDL,該 MDL 的頁面從未成功鎖定。 |
0x7D | MDL 地址 | MDL 標志 | 0 | 驅(qū)動程序名為 MmUnlockPages,并傳遞了一個 MDL,該 MDL 的頁面來自非分頁池。 (這些永遠不應解鎖。) |
0x7E | 當前 IRQL | DISPATCH_LEVEL | 0 | 名為 MmAllocatePagesForMdl、 MmAllocatePagesForMdlEx 或 MmFreePagesFromMdl 的驅(qū)動程序與 IRQL > DISPATCH_LEVEL。 |
0x7F | 當前 IRQL | MDL 地址 | MDL 標志 | 驅(qū)動程序名為 BuildMdlForNonPagedPool ,并傳遞了一個 MDL,該 MDL 的頁面來自分頁池。 |
0x80 | 當前 IRQL | 事件地址 | 0 | 驅(qū)動程序使用 IRQL > DISPATCH_LEVEL調(diào)用 KeSetEvent。 |
0x81 | MDL 地址 | MDL 標志 | 0 | 名為 MmMapLockedPages 的驅(qū)動程序。 (應改用 MmMapLockedPagesSpecifyCache ,并將 BugCheckOnFailure 參數(shù)設(shè)置為 FALSE.) |
0x82 | MDL 地址 | MDL 標志 | 0 | 驅(qū)動程序名為 MmMapLockedPagesSpecifyCache ,BugCheckOnFailure 參數(shù)等于 TRUE。 (此參數(shù)應設(shè)置為 FALSE.) |
0x83 | 開始映射的物理地址范圍 | 要映射的字節(jié)數(shù) | 未鎖定的第一頁幀編號 | 驅(qū)動程序名為 MmMapIoSpace ,但未鎖定 MDL 頁面。 在進行此調(diào)用之前,由映射的物理地址范圍表示的物理頁面必須已鎖定。 |
0x85 | MDL 地址 | 要映射的頁數(shù) | 未鎖定的第一頁幀編號 | 驅(qū)動程序名為 MmMapLockedPages ,但未鎖定 MDL 頁面。 |
0x89 | MDL 地址 | 指向 MDL 中非內(nèi)存頁的指針 | MDL 中的非內(nèi)存頁碼 | MDL 未標記為“I/O”,但它包含非內(nèi)存頁地址。 |
0x91 | 預留 | 預留 | 預留 | 驅(qū)動程序使用操作系統(tǒng)不支持的方法切換堆棧。 擴展內(nèi)核模式堆棧的唯一支持方法是使用 KeExpandKernelStackAndCallout。 |
0xA0 0x140
參數(shù) 1 | 參數(shù) 2 | 參數(shù) 3 | 參數(shù) 4 | 錯誤消息的原因 |
---|---|---|---|---|
0xA0 | 指向發(fā)出讀取或?qū)懭胝埱蟮?IRP 的指針 | 較低設(shè)備的設(shè)備對象 | 檢測到錯誤的扇區(qū)數(shù) | 在硬盤上檢測到循環(huán)冗余檢查 (CRC) 錯誤。 僅當驅(qū)動程序驗證程序的磁盤完整性檢查選項處于活動狀態(tài)時,才會使用此參數(shù)檢查 bug。 |
0xA1 | 發(fā)出讀取或?qū)懭胝埱蟮?IRP 的副本。 (實際 IRP 已完成。) | 較低設(shè)備的設(shè)備對象 | 檢測到錯誤的扇區(qū)數(shù) | 在扇區(qū)上檢測到 CRC 錯誤, (異步) 。 僅當驅(qū)動程序驗證程序的磁盤完整性檢查選項處于活動狀態(tài)時,才會使用此參數(shù)檢查 bug。 |
0xA2 | 發(fā)出讀取或?qū)懭胝埱蟮?IRP,或此 IRP 的副本 | 較低設(shè)備的設(shè)備對象 | 檢測到錯誤的扇區(qū)數(shù) | CRCDISK 校驗和副本不匹配。 這可能是分頁錯誤。 僅當驅(qū)動程序驗證程序的磁盤完整性檢查選項處于活動狀態(tài)時,才會使用此參數(shù)檢查 bug。 |
0xB0 | MDL 地址 | MDL 標志 | MDL 標志不正確 | 驅(qū)動程序調(diào)用 MmProbeAndLockPages 的 MDL 具有不正確的標志。 例如,驅(qū)動程序?qū)?MmBuildMdlForNonPagedPool 創(chuàng)建的 MDL 傳遞給 MmProbeAndLockPages。 |
0xB1 | MDL 地址 | MDL 標志 | MDL 標志不正確 | 驅(qū)動程序調(diào)用 MmProbeAndLockProcessPages 的 MDL 具有不正確的標志。 例如,驅(qū)動程序?qū)?MmBuildMdlForNonPagedPool 創(chuàng)建的 MDL 傳遞給 MmProbeAndLockProcessPages。 |
0xB2 | MDL 地址 | MDL 標志 | MDL 標志不正確 | 對于具有錯誤標志的 MDL,驅(qū)動程序名為 MmMapLockedPages 。 例如,驅(qū)動程序傳遞了已映射到系統(tǒng)地址或未鎖定到 MmMapLockedPages 的 MDL。 |
0xB3 | MDL 地址 | MDL 標志 | 缺少 MDL 標志 (預計至少有一個) | 對于具有錯誤標志的 MDL,驅(qū)動程序名為 MmMapLockedPages 。 例如,驅(qū)動程序傳遞的 MDL 未鎖定到 MmMapLockedPages。 |
0xB4 | MDL 地址 | MDL 標志 | 意外的部分 MDL 標志 | 對于部分 MDL,驅(qū)動程序名為 MmUnlockPages 。 部分 MDL 是由 IoBuildPartialMdl 創(chuàng)建的。 |
0xB5 | MDL 地址 | MDL 標志 | 意外的部分 MDL 標志 | 使用 IoBuildPartialMdl) 創(chuàng)建的部分 MDL (調(diào)用 MmUnmapLockedPages。 |
0xB6 | MDL 地址 | MDL 標志 | 缺少 MDL 標志 | 在未映射到系統(tǒng)地址的 MDL 上調(diào)用的 MmUnmapLockedPages。 |
0xB7 | 損壞的物理頁數(shù)。 | 第一個損壞的物理頁。 | 上次損壞的物理頁。 | 系統(tǒng) BIOS 在睡眠轉(zhuǎn)換期間損壞了低物理內(nèi)存。 |
0xB8 | MDL 地址 | MDL 標志 | 保留 | 仍會映射由 MDL 描述的頁面。 在調(diào)用 IoFreeMdl 之前,驅(qū)動程序必須取消映射頁面。 |
0xB9 | 未映射的地址。 | MDL 地址。 | 保留 | 調(diào)用的 MmUnmapLockedPages 的用戶空間地址不正確。 |
0xC0 | IRP 的地址 | 0 | 保留 | 名為 IoCallDriver 的 驅(qū)動程序,其中禁用了中斷。 |
0xC1 | 驅(qū)動程序調(diào)度例程的地址 | 預留 | 預留 | 返回驅(qū)動程序調(diào)度例程時禁用了中斷。 |
0xC2 | 0 | 0 | 0 | 禁用中斷后,驅(qū)動程序調(diào)用了快速 I/O 調(diào)度例程。 |
0xC3 | 驅(qū)動程序快速 I/O 調(diào)度例程的地址 | 預留 | 預留 | 已返回驅(qū)動程序快速 I/O 調(diào)度例程,但中斷已禁用。 |
0xC5 | 驅(qū)動程序調(diào)度例程的地址 | 當前線程的 APC 禁用計數(shù) | 線程的 APC 在調(diào)用驅(qū)動程序調(diào)度例程之前禁用計數(shù) | 驅(qū)動程序調(diào)度例程已更改線程的 APC 禁用計數(shù)。 每次驅(qū)動程序調(diào)用 KeEnterCriticalRegion、 FsRtlEnterFileSystem 或獲取互斥體時,APC 禁用計數(shù)都會遞減。 每次驅(qū)動程序調(diào)用 KeLeaveCriticalRegion、 KeReleaseMutex 或 FsRtlExitFileSystem 時,APC 禁用計數(shù)都會遞增。 由于這些調(diào)用應始終成對,因此每當線程退出時,APC 禁用計數(shù)應為零。 負值表示驅(qū)動程序已禁用 APC 調(diào)用而不重新啟用它們。 正值表示反之,則為 true。 |
0xC6 | 驅(qū)動程序快速 I/O 調(diào)度例程的地址 | 當前線程的 APC 禁用計數(shù) | 線程的 APC 在調(diào)用快速 I/O 驅(qū)動程序調(diào)度例程之前禁用計數(shù) | 驅(qū)動程序快速 I/O 調(diào)度例程已更改線程的 APC 禁用計數(shù)。 每次驅(qū)動程序調(diào)用 KeEnterCriticalRegion、 FsRtlEnterFileSystem 或獲取互斥體時,APC 禁用計數(shù)都會遞減。 每次驅(qū)動程序調(diào)用 KeLeaveCriticalRegion、 KeReleaseMutex 或 FsRtlExitFileSystem 時,APC 禁用計數(shù)都會遞增。 由于這些調(diào)用應始終成對,因此每當線程退出時,APC 禁用計數(shù)應為零。 負值表示驅(qū)動程序已禁用 APC 調(diào)用而不重新啟用它們。 正值表示反之,則為 true。 |
0xCA | 旁觀列表的地址 | 預留 | 預留 | 驅(qū)動程序已嘗試重新初始化查看列表。 |
0xCB | 旁觀列表的地址 | 預留 | 預留 | 驅(qū)動程序嘗試刪除未初始化的 lookaside 列表。 |
0xCC | 旁觀列表的地址 | 池分配的起始地址 | 池分配的大小 | 驅(qū)動程序已嘗試釋放包含活動查看列表的池分配。 |
0xCD | 旁觀列表的地址 | 調(diào)用方指定的塊大小 | 支持的最小塊大小 | 驅(qū)動程序嘗試創(chuàng)建分配塊大小過小的旁觀列表。 |
0xD0 | ERESOURCE 結(jié)構(gòu)的地址 | 預留 | 預留 | 驅(qū)動程序已嘗試重新初始化 ERESOURCE 結(jié)構(gòu)。 |
0xD1 | ERESOURCE 結(jié)構(gòu)的地址 | 預留 | 預留 | 驅(qū)動程序嘗試刪除未初始化的 ERESOURCE 結(jié)構(gòu)。 |
0xD2 | ERESOURCE 結(jié)構(gòu)的地址 | 池分配的起始地址 | 池分配的大小 | 驅(qū)動程序已嘗試釋放包含活動 ERESOURCE 結(jié)構(gòu)的池分配。 |
0xD5 | 由驅(qū)動程序的已檢查內(nèi)部版本創(chuàng)建的 IO_REMOVE_LOCK 結(jié)構(gòu)的地址 | 當前 IoReleaseRemoveLock 標記 | 保留 | 當前的 IoReleaseRemoveLock 標記與以前的 IoAcquireRemoveLock 標記不匹配。 如果調(diào)用 IoReleaseRemoveLock 的驅(qū)動程序不在已檢查的內(nèi)部版本中,則參數(shù) 2 是驅(qū)動程序驗證程序代表驅(qū)動程序創(chuàng)建的影子IO_REMOVE_LOCK結(jié)構(gòu)的地址。 在這種情況下,驅(qū)動程序使用的 IO_REMOVE_LOCK 結(jié)構(gòu)的地址根本不使用,因為驅(qū)動程序驗證程序?qū)⑻鎿Q所有刪除鎖 API 的鎖地址。 僅當驅(qū)動程序驗證程序的 I/O 驗證選項處于活動狀態(tài)時,才會發(fā)生帶有此參數(shù)的 bug 檢查。 |
0xD6 | 由驅(qū)動程序的已檢查內(nèi)部版本創(chuàng)建的 IO_REMOVE_LOCK 結(jié)構(gòu)的地址 | 與以前的 IoAcquireRemoveLock 標記不匹配的標記 | 以前的 IoAcquireRemoveLock 標記 | 當前的 IoReleaseRemoveLockAndWait 標記與以前的 IoAcquireRemoveLock 標記不匹配。 如果調(diào)用 IoReleaseRemoveLock 的驅(qū)動程序不是經(jīng)檢查的內(nèi)部版本,則參數(shù) 2 是驅(qū)動程序驗證程序代表驅(qū)動程序創(chuàng)建的影子IO_REMOVE_LOCK結(jié)構(gòu)的地址。 在這種情況下,驅(qū)動程序使用的 IO_REMOVE_LOCK 結(jié)構(gòu)的地址根本不使用,因為驅(qū)動程序驗證程序?qū)⑻鎿Q所有刪除鎖 API 的鎖地址。 僅當驅(qū)動程序驗證程序的 I/O 驗證選項處于活動狀態(tài)時,才會發(fā)生帶有此參數(shù)的 bug 檢查。 |
0xD7 | 驅(qū)動程序驗證程序在內(nèi)部使用的已檢查內(nèi)部版本的地址(刪除鎖定結(jié)構(gòu)) | 驅(qū)動程序指定的 Remove Lock 結(jié)構(gòu)的地址 | 保留 | 即使調(diào)用 IoReleaseRemoveLockAndWait 后,Remove Lock 也無法重新初始化,因為其他線程可能仍通過調(diào)用 IoAcquireRemoveLock) 來使用該鎖 (。 驅(qū)動程序應在其設(shè)備擴展內(nèi)分配 Remove Lock,并初始化它一次。 鎖將與設(shè)備擴展一起刪除。 |
0xDA | 驅(qū)動程序的起始地址 | 驅(qū)動程序內(nèi)的 WMI 回調(diào)地址 | 保留 | 嘗試卸載尚未取消注冊其 WMI 回調(diào)函數(shù)的驅(qū)動程序。 |
0xDB | 設(shè)備對象的地址 | 預留 | 預留 | 嘗試刪除未從 WMI 取消注冊的設(shè)備對象。 |
0xDC | 預留 | 預留 | 預留 | 將無效的 RegHandle 值指定為函數(shù) EtwUnregister 的參數(shù)。 |
0xDD | 調(diào)用 EtwRegister 的地址 | 卸載驅(qū)動程序的起始地址 | 對于 Windows 8 及更高版本,此參數(shù)是 ETW RegHandle 值。 | 嘗試在不調(diào)用 EtwUnregister 的情況下卸載驅(qū)動程序。 |
0xDF | 同步對象地址 | 0 | 0 | 同步對象位于會話地址空間中。 會話地址空間中不允許同步對象,因為它們可以從另一個會話或沒有會話虛擬地址空間的系統(tǒng)線程進行操作。 |
0xE0 | 用作參數(shù)的用戶模式地址 | 用作參數(shù)的地址范圍的大小(以字節(jié)為單位) | 保留 | 調(diào)用了指定用戶模式地址作為參數(shù)的操作系統(tǒng)內(nèi)核函數(shù)。 |
0xE1 | 同步對象的地址 | 預留 | 預留 | 發(fā)現(xiàn)同步對象的地址無效或可分頁。 |
0xE2 | IRP 的地址 | IRP 中存在的用戶模式地址 | 保留 | 發(fā)現(xiàn) Irp-RequestorMode> 設(shè)置為 KernelMode 的 IRP 具有用戶模式地址作為其成員之一。 |
0xE3 | 調(diào)用 API 的地址 | 在 API 中用作參數(shù)的用戶模式地址 | 保留 | 驅(qū)動程序調(diào)用了使用用戶模式地址作為參數(shù)的內(nèi)核模式 ZwXxx 例程。 |
0xE4 | 調(diào)用 API 的地址 | 格式不正確的UNICODE_STRING結(jié)構(gòu)的地址 | 保留 | 驅(qū)動程序調(diào)用了一個內(nèi)核模式 ZwXxx 例程,該例程使用格式不正確的UNICODE_STRING結(jié)構(gòu)作為參數(shù)。 |
0xE5 | 當前 IRQL | 預留 | 預留 | 在錯誤的 IRQL 下調(diào)用了內(nèi)核 API。 |
0xE6 | 進行 Zw API 調(diào)用的驅(qū)動程序內(nèi)的地址 | 當前 IRQL | 特殊內(nèi)核 APC。 | 未在 IRQL = PASSIVE_LEVEL 且啟用了特殊內(nèi)核 APC 的情況下調(diào)用內(nèi)核 Zw API。 |
0xEA | 當前 IRQL | 線程的 APC 禁用計數(shù) | 推送鎖的地址 | 驅(qū)動程序嘗試在啟用 APC 時獲取推送鎖。 |
0xEB | 當前 IRQL | 線程的 APC 禁用計數(shù) | 推送鎖的地址 | 驅(qū)動程序嘗試在啟用 APC 時釋放一個推送鎖。 |
0xF0 | 目標緩沖區(qū)的地址 | 源緩沖區(qū)的地址 | 要復制的字節(jié)數(shù) | 一個調(diào)用 memcpy 函數(shù)的驅(qū)動程序,其中包含重疊的源緩沖區(qū)和目標緩沖區(qū)。 |
0xF5 | NULL 句柄的地址 | 對象類型 | 保留 | 驅(qū)動程序?qū)?NULL 句柄傳遞給 ObReferenceObjectByHandle。 |
0xF6 | 處理被引用的值 | 當前進程的地址 | 執(zhí)行錯誤引用的驅(qū)動程序內(nèi)的地址 | 驅(qū)動程序?qū)⒂脩裟J骄浔脼閮?nèi)核模式。 |
0xF7 | 由調(diào)用方指定的句柄值 | 調(diào)用方指定的對象類型 | 調(diào)用方指定的 AccessMode | 驅(qū)動程序正在嘗試在系統(tǒng)進程的上下文中對內(nèi)核句柄進行用戶模式引用。 |
0xFA | 完成例程地址。 | 調(diào)用完成例程之前的 IRQL 值 | 調(diào)用完成例程后的當前 IRQL 值 | IRP 完成例程返回的 IRQL 不同于調(diào)用該例程的 IRQL。 |
0xFB | 完成例程地址 | 當前線程的 APC 禁用計數(shù) | 線程的 APC 在調(diào)用 IRP 完成例程之前禁用計數(shù) | 線程的 APC 禁用計數(shù)已由驅(qū)動程序的 IRP 完成例程更改。 每次驅(qū)動程序調(diào)用 KeEnterCriticalRegion、 FsRtlEnterFileSystem 或獲取互斥體時,APC 禁用計數(shù)都會遞減。 每次驅(qū)動程序調(diào)用 KeLeaveCriticalRegion、 KeReleaseMutex 或 FsRtlExitFileSystem 時,APC 禁用計數(shù)都會遞增。 由于這些調(diào)用應始終成對,因此每當線程退出時,APC 禁用計數(shù)應為零。 負值表示驅(qū)動程序已禁用 APC 調(diào)用而不重新啟用它們。 正值表示反之,則為 true。 |
0xFC | 進行錯誤 API 調(diào)用的驅(qū)動程序內(nèi)的地址。 | 提供了 ApcContext 值。 | 保留 | 使用不支持的 ApcContext 值從內(nèi)核模式) 調(diào)用 ZwNotifyChangeKey (。 |
0x105 0x140
參數(shù) 1 | 參數(shù) 2 | 參數(shù) 3 | 參數(shù) 4 | 錯誤消息的原因 |
---|---|---|---|---|
0x105 | IRP 的地址 | 0 | 0 | 驅(qū)動程序使用 ExFreePool 而不是 IoFreeIrp 來釋放 IRP。 |
0x10A | 0 | 0 | 0 | 驅(qū)動程序嘗試向空閑進程收取池配額費用。 |
0x10B | 0 | 0 | 0 | 驅(qū)動程序嘗試從 DPC 例程收取池配額費用。 這是不正確的,因為當前進程上下文未定義。 |
0x110 | 中斷服務例程的地址 | 在執(zhí)行 ISR 之前保存的擴展上下文的地址 | 擴展上下文的地址在執(zhí)行 ISR 后已保存 | 驅(qū)動程序 (ISR) 中斷服務例程損壞了擴展線程上下文。 |
0x111 | 中斷服務例程的地址 | 執(zhí)行 ISR 前的 IRQL | 執(zhí)行 ISR 后的 IRQL | 中斷服務例程返回了更改的 IRQL。 |
0x115 | 負責關(guān)閉的線程的地址,該地址可能是死鎖的。 | 0 | 0 | 驅(qū)動程序驗證程序檢測到系統(tǒng)花費的時間超過 20 分鐘,并且關(guān)閉未完成。 |
0x11A | 當前 IRQL | 0 | 0 | 驅(qū)動程序在 IRQL > APC_LEVEL調(diào)用 KeEnterCriticalRegion。 |
0x11B | 當前 IRQL | 0 | 0 | 驅(qū)動程序在 IRQL > APC_LEVEL調(diào)用 KeLeaveCriticalRegion。 |
0x120 | IRQL 值的地址 | 要等待的對象地址 | 超時值的地址 | 線程在 IRQL > DISPATCH_LEVEL等待。 KeWaitForSingleObject 或 KeWaitForMultipleObjects 的調(diào)用方必須在 IRQL <= DISPATCH_LEVEL 運行。 |
0x121 | IRQL 值的地址 | 要等待的對象地址 | 超時值的地址 | 線程在 IRQL 處等待等于 DISPATCH_LEVEL,超時為 NULL。 KeWaitForSingleObject 或 KeWaitForMultipleObjects 的調(diào)用方可以在 IRQL <= DISPATCH_LEVEL 運行。 如果為 Timeout 提供了 NULL 指針,則調(diào)用線程將保持等待狀態(tài),直到對象收到信號。 |
0x122 | IRQL 值的地址 | 要等待的對象地址 | 超時值的地址 | 線程在DISPATCH_LEVEL等待,超時值不等于零 (0) 。 如果 Timeout != 0,則 KeWaitForSingleObject 或 KeWaitForMultipleObjects 的調(diào)用方必須在 IRQL <= APC_LEVEL 運行。 |
0x123 | 要等待的對象地址 | 0 | 0 | KeWaitForSingleObject 或 KeWaitForMultipleObjects 的調(diào)用方將等待指定為 UserMode,但對象位于內(nèi)核堆棧上。 |
0x130 | 工作項的地址 | 0 | 0 | 工作項位于會話地址空間中。 不允許在會話地址空間中使用工作項,因為它們可以從另一個會話或從沒有會話虛擬地址空間的系統(tǒng)線程進行操作。 |
0x131 | 工作項的地址 | 0 | 0 | 工作項位于可分頁內(nèi)存中。 工作項必須位于不可分頁內(nèi)存中,因為內(nèi)核在DISPATCH_LEVEL使用它們。 |
0x135 | IRP 地址 | IoCancelIrp 調(diào)用與完成此 IRP 之間允許的毫秒數(shù) | 0 | 取消的 IRP 未在預期時間內(nèi)完成。驅(qū)動程序完成取消的 IRP 所花費的時間比預期長。 |
0x13A | 正在釋放的池塊的地址 | 值不正確 | 錯誤值的地址 | 驅(qū)動程序已調(diào)用 ExFreePool ,驅(qū)動程序驗證程序在用于跟蹤池使用情況的內(nèi)部值之一中檢測到錯誤。 |
0x13B | 正在釋放的池塊的地址 | 錯誤值的地址 | 指向錯誤內(nèi)存頁的指針的地址 | 驅(qū)動程序已調(diào)用 ExFreePool ,驅(qū)動程序驗證程序在用于跟蹤池使用情況的內(nèi)部值之一中檢測到錯誤。 |
0x13C | 正在釋放的池塊的地址 | 值不正確 | 錯誤值的地址 | 驅(qū)動程序已調(diào)用 ExFreePool ,驅(qū)動程序驗證程序在用于跟蹤池使用情況的內(nèi)部值之一中檢測到錯誤。 |
0x13D | 正在釋放的池塊的地址 | 錯誤值的地址 | 預期的正確值 | 驅(qū)動程序已調(diào)用 ExFreePool ,驅(qū)動程序驗證程序在用于跟蹤池使用情況的內(nèi)部值之一中檢測到錯誤。 |
0x13E | 調(diào)用方指定的池塊地址 | 驅(qū)動程序驗證程序跟蹤的池塊地址 | 指向驅(qū)動程序驗證程序跟蹤的池塊地址的指針 | ExFreePool 調(diào)用方指定的池塊地址不同于驅(qū)動程序驗證程序跟蹤的地址。 |
0x13F | 正在釋放的池塊的地址 | 正在釋放的字節(jié)數(shù) | 指向驅(qū)動程序驗證程序跟蹤的字節(jié)數(shù)的指針 | 調(diào)用 ExFreePool 時釋放的內(nèi)存字節(jié)數(shù)不同于驅(qū)動程序驗證程序跟蹤的字節(jié)數(shù)。 |
0x140 | 當前 IRQL | MDL 地址 | 與此 MDL 關(guān)聯(lián)的虛擬地址 | 非鎖定 MDL 是從可分頁內(nèi)存或可交易內(nèi)存構(gòu)造的。 |
0x141 | 驅(qū)動程序請求分配的最高物理地址 | 要分配的字節(jié)數(shù) | 0 | 驅(qū)動程序顯式請求的物理內(nèi)存低于 4GB。 |
0x1000到0x100B - 死鎖
參數(shù) 1 | 參數(shù) 2 | 參數(shù) 3 | 參數(shù) 4 | 錯誤消息的原因 |
---|---|---|---|---|
0x1000 | 資源的地址 | 預留 | 預留 | 自死鎖:當前線程嘗試以遞歸方式以獨占方式獲取它僅擁有共享的資源。 僅當驅(qū)動程序驗證程序的“死鎖檢測”選項處于活動狀態(tài)時,才會發(fā)生帶有此參數(shù)的 bug 檢查。 |
0x1001 | 死鎖最終原因的資源的地址 | 預留 | 預留 | 死鎖:已發(fā)現(xiàn)鎖層次結(jié)構(gòu)沖突。 僅當驅(qū)動程序驗證程序的“死鎖檢測”選項處于活動狀態(tài)時,才會發(fā)生帶有此參數(shù)的 bug 檢查。 (使用 !deadlock 擴展了解更多信息。) |
0x1002 | 資源的地址 | 預留 | 預留 | 未初始化的資源:已獲取資源,但尚未先初始化。 僅當驅(qū)動程序驗證程序的死鎖檢測選項處于活動狀態(tài)時,才會使用此參數(shù)檢查 bug。 |
0x1003 | 正在釋放死鎖的資源的地址 | 應先釋放的資源的地址 | 保留 | 意外發(fā)布:資源已按不正確的順序釋放。 僅當驅(qū)動程序驗證程序的死鎖檢測選項處于活動狀態(tài)時,才會使用此參數(shù)檢查 bug。 |
0x1004 | 資源的地址 | 獲取資源的線程的地址 | 當前線程的地址 | 意外線程:錯誤的線程釋放資源。 僅當驅(qū)動程序驗證程序的死鎖檢測選項處于活動狀態(tài)時,才會使用此參數(shù)檢查 bug。 |
0x1005 | 資源的地址 | 預留 | 預留 | 多次初始化:一個資源多次初始化。 僅當驅(qū)動程序驗證程序的死鎖檢測選項處于活動狀態(tài)時,才會使用此參數(shù)檢查 bug。 |
0x1007 | 資源的地址 | 預留 | 預留 | 未獲取的資源:在獲取資源之前釋放資源。 僅當驅(qū)動程序驗證程序的死鎖檢測選項處于活動狀態(tài)時,才會使用此參數(shù)檢查 bug。 |
0x1008 | 鎖地址 | 預留 | 預留 | 驅(qū)動程序嘗試通過使用此鎖類型不匹配的 API 來獲取鎖。 |
0x1009 | 鎖地址 | 預留 | 預留 | 驅(qū)動程序嘗試使用此鎖類型不匹配的 API 釋放鎖。 |
0x100A | 所有者線程地址 | 保留 | 終止的線程擁有鎖。 | |
0x100B | 鎖地址 | 所有者線程地址 | 保留 | 已刪除的鎖仍歸線程所有。 |
0x1010 | 向其發(fā)出寫入 IRP 的設(shè)備對象。 | IRP 的地址。 | System-Space MDL 描述的緩沖區(qū)的虛擬地址。 | 修改了寫入 Irp 的固定 MDL 緩沖區(qū)內(nèi)容。 |
0x1011 | 向其發(fā)出寫入 IRP 的設(shè)備對象。 | IRP 的地址。 | System-Space MDL 描述的緩沖區(qū)的虛擬地址。 | 讀取 Irp 的固定 MDL 緩沖區(qū)內(nèi)容是在調(diào)度期間修改的,或由虛擬頁面支持的緩沖區(qū)。 |
0x1012 | 指向描述沖突的字符串的指針。 | 如果未) 使用,則涉及此損壞的數(shù)據(jù) (0。 | 如果未) 使用,則涉及此損壞的數(shù)據(jù) (0。 | 驗證程序擴展狀態(tài)存儲檢測到損壞。 |
0x1013 | 指向驅(qū)動程序?qū)ο蟮闹羔槨?/td> | 指向捕獲的原始 I/O 回調(diào)的指針。 | 保留 (未使用的) 。 | 驗證程序在捕獲的原始 I/O 回調(diào)中檢測到內(nèi)部損壞。 |
0x2000到0x2005 - 代碼完整性問題
參數(shù) 1 | 參數(shù) 2 | 參數(shù) 3 | 參數(shù) 4 | 錯誤消息的原因 |
---|---|---|---|---|
0x2000 | 驅(qū)動程序代碼中檢測到錯誤的地址。 | 池類型。 | 池標記 ((如果) 提供)。 | 代碼完整性問題:調(diào)用方指定了可執(zhí)行池類型。 (預期:NonPagedPoolNx) |
0x2001 | 驅(qū)動程序代碼中檢測到錯誤的地址。 | 頁面保護 (WIN32_PROTECTION_MASK) 。 | 0 | 代碼完整性問題:調(diào)用方指定了可執(zhí)行頁保護。 預期 (:清除PAGE_EXECUTE* 位) |
0x2002 | 驅(qū)動程序代碼中檢測到錯誤的地址。 | 頁面優(yōu)先級 (MM_PAGE_PRIORITY MdlMapping*) 在邏輯上 OR'd。 | 0 | 代碼完整性問題:調(diào)用方指定了可執(zhí)行的 MDL 映射。 預期 (:MdlMappingNoExecute) |
0x2003 | 圖像文件名 (Unicode 字符串) 。 | 節(jié)標頭的地址。 | 節(jié)名稱 (UTF-8 編碼字符串) 。 | 代碼完整性問題:映像包含可執(zhí)行和可寫部分。 |
0x2004 | 圖像文件名 (Unicode 字符串) 。 | 節(jié)標頭的地址。 | 節(jié)名稱 (UTF-8 編碼字符串) 。 | 代碼完整性問題:圖像包含一個未對齊頁面的部分。 |
0x2005 | 圖像文件名 (Unicode 字符串) 。 | IAT 目錄。 | 節(jié)名稱 (UTF-8 編碼字符串) 。 | 代碼完整性問題:映像包含位于可執(zhí)行文件部分中的 IAT。 |
0xA001到0xA00D - VM 交換機問題
參數(shù) 1 | 參數(shù) 2 | 參數(shù) 3 | 參數(shù) 4 | 錯誤消息的原因 |
---|---|---|---|---|
0xA001 | 指向 NetBufferList 對象的指針 | 如果非 NULL) ,則指向虛擬交換機對象的指針 ( | 保留 (未使用的) | VM 交換機:必須設(shè)置調(diào)用方提供的 NetBufferList 的 SourceHandle。 請參閱 AllocateNetBufferListForwardingContext 例程。 |
0xA002 | 指向 NetBufferList 對象的指針 | 如果非 NULL) ,則指向虛擬交換機對象的指針 (。 | 保留 (未使用的) | VM 交換機:調(diào)用方提供的 NetBufferList 的轉(zhuǎn)發(fā)詳細信息不為零。 請參閱 AllocateNetBufferListForwardingContext 例程。 |
0xA003 | 指向 NetBufferList 對象的指針 | 如果非 NULL) ,則指向虛擬交換機對象的指針 (。 | 保留 (未使用的) | VM 交換機:調(diào)用方提供了一個 NetBufferList,其數(shù)據(jù)包標頭或路由上下文為 NULL。 請參閱 可擴展交換機數(shù)據(jù)路徑的數(shù)據(jù)包管理指南。 |
0xA004 | 無效端口的 ID | NIC 索引 | 如果非 NULL) ,則指向虛擬交換機對象的指針 (。 | VM 交換機:調(diào)用方指定的端口和 NIC 索引組合無效。 請參閱 Hyper-V 可擴展交換機端口和網(wǎng)絡適配器狀態(tài)。 |
0xA005 | 指向 NetBufferList 對象的指針 | 指向“目標”列表的指針。 | 如果非 NULL) ,則指向虛擬交換機對象的指針 (。 | VM 交換機:調(diào)用方提供的目標無效。 請參閱 AddNetBufferListDestination 和 UpdateNetBufferListDestinations。 |
0xA006 | 指向 NetBufferList 對象的指針 | 如果非 NULL) ,則指向虛擬交換機對象的指針 (。 | 保留 (未使用的) | VM 交換機:調(diào)用方提供了無效的源 NIC 或 Port 對象。 請參閱 Hyper-V 可擴展交換機端口和網(wǎng)絡適配器狀態(tài)。 |
0xA007 | 指向 NetBufferList 對象的指針 | 如果非 NULL) ,則指向虛擬交換機對象的指針 (。 | 保留 (未使用的) | VM 交換機:調(diào)用方提供的目標列表無效。 請參閱 AddNetBufferListDestination 和 UpdateNetBufferListDestinations。 |
0xA008 | 父 NIC 對象 | NIC 索引 | 如果非 NULL) ,則指向虛擬交換機對象的指針 (。 | VM 交換機:在不允許時嘗試引用 NIC。 請參閱 Hyper-V 可擴展交換機端口和網(wǎng)絡適配器狀態(tài)。 |
0xA009 | 正在引用的端口 | 如果非 NULL) ,則指向虛擬交換機對象的指針 ( | 保留 (未使用的) | VM 交換機:在不允許時嘗試引用端口。 請參閱 Hyper-V 可擴展交換機端口和網(wǎng)絡適配器狀態(tài)。 |
0xA00A | 指向 NetBufferList 對象的指針 | ContextTypeInfo 對象 | 保留 (未使用的) | VM 交換機:已設(shè)置失敗上下文。 請參閱 SetNetBufferListSwitchContext。 |
0xA00B | 指向 NetBufferList 對象的指針 | NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_* | 如果非 NULL) ,則指向虛擬交換機對象的指針 ( | VM 交換機:為已刪除的 NetBufferList 提供的方向無效。 請參閱 ReportFilteredNetBufferLists。 |
0xA00C | 指向 NetBufferList 對象的指針 | Send Flags 值 | 如果非 NULL) ,則指向虛擬交換機對象的指針 ( | VM 交換機:設(shè)置 NDIS_SEND_FLAGS_SWITCH_SINGLE_SOURCE 標志時,NetBufferList 鏈具有多個源端口。 請參閱 Hyper-V 可擴展交換機發(fā)送和接收標志。 |
0xA00D | 指向 NetBufferList 對象的指針 | 指向虛擬交換機上下文的指針 | 如果非 NULL) ,則指向虛擬交換機對象的指針 ( | VM 交換機:設(shè)置NDIS_RECEIVE_FLAGS_SWITCH_DESTINATION_GROUP標志時,鏈中的一個或多個 NetBufferList 的目標無效。 請參閱 Hyper-V 可擴展交換機發(fā)送和接收標志。 |
0xA00E | 指向 NetBufferLists 對象的指針。 | 指向虛擬交換機上下文的指針。 | 如果非 NULL) ,則指向虛擬交換機對象的指針 (。 | VM 交換機:設(shè)置VMS_NBL_ROUTING_CONTEXT_FLAG_NO_WNV_PROCESSING標志時,嘗試通過 WNV 完成 NetBufferList。 |
0x00020002 0x00020022 - DDI 合規(guī)性規(guī)則沖突
參數(shù) 1 | 參數(shù) 2 | 參數(shù) 3 | 參數(shù) 4 | 錯誤消息的原因 |
---|---|---|---|---|
0x00020002 | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量的可選指針 () 。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlApcLte。 規(guī)則指定驅(qū)動程序必須僅在 IRQL <= APC_LEVEL 時才調(diào)用 ObGetObjectSecurity 和 ObReleaseObjectSecurity。 |
0x00020003 | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量的可選指針 () 。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlDispatch。 IrqlDispatch 規(guī)則指定驅(qū)動程序必須僅在 IRQL = DISPATCH_LEVEL |
0x00020004 | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量的可選指針 () 。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlExAllocatePool。 IrqlExAllocatePool 規(guī)則指定驅(qū)動程序僅在 IRQL<=DISPATCH_LEVEL 時調(diào)用 ExAllocatePoolWithTag 和 ExAllocatePoolWithTagPriority。 |
0x00020005 | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量的可選指針 () 。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlExApcLte1。 IrqlExApcLte1 規(guī)則指定驅(qū)動程序僅在 IRQL <= APC_LEVEL 時才調(diào)用 ExAcquireFastMutex 和 ExTryToAcquireFastMutex。 |
0x00020006 | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量的可選指針 () 。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlExApcLte2。 IrqlExApcLte2 規(guī)則指定驅(qū)動程序僅在 IRQL <= APC_LEVEL時才調(diào)用某些例程。 |
0x00020007 | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量的可選指針 () 。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlExApcLte3。 IrqlExApcLte3 規(guī)則指定驅(qū)動程序必須僅在 IRQL <= APC_LEVEL時才調(diào)用某些執(zhí)行支持例程。 |
0x00020008 | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量的可選指針 () 。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlExPassive。 IrqlExPassive 規(guī)則指定驅(qū)動程序必須僅在 IRQL = PASSIVE_LEVEL時才調(diào)用某些執(zhí)行支持例程。 |
0x00020009 | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量的可選指針 () 。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlIoApcLte。 IrqlIoApcLte 規(guī)則指定驅(qū)動程序必須僅在 IRQL <= APC_LEVEL時才調(diào)用某些 I/O 管理器例程。 |
0x0002000A | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量的可選指針 () 。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlIoPassive1。 IrqlIoPassive1 規(guī)則指定驅(qū)動程序必須僅在 IRQL = PASSIVE_LEVEL時才調(diào)用某些 I/O 管理器例程。 |
0x0002000B | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量的可選指針 () 。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlIoPassive2。 IrqlIoPassive2 規(guī)則指定驅(qū)動程序必須僅在 IRQL = PASSIVE_LEVEL時才調(diào)用某些 I/O 管理器例程。 |
0x0002000C | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量的可選指針 () 。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlIoPassive3。 IrqlIoPassive3 規(guī)則指定驅(qū)動程序必須僅在 IRQL = PASSIVE_LEVEL時才調(diào)用某些 I/O 管理器例程。 |
0x0002000D | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量的可選指針 () 。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlIoPassive4。 IrqlIoPassive4 規(guī)則指定驅(qū)動程序必須僅在 IRQL = PASSIVE_LEVEL時才調(diào)用某些 I/O 管理器例程。 |
0x0002000E | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量的可選指針 () 。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlIoPassive5。 IrqlIoPassive5 規(guī)則指定驅(qū)動程序必須僅在 IRQL = PASSIVE_LEVEL時才調(diào)用某些 I/O 管理器例程。 |
0x0002000F | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量的可選指針 () 。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlKeApcLte1。 IrqlKeApcLte1 規(guī)則指定驅(qū)動程序必須僅在 IRQL <= APC_LEVEL時才調(diào)用某些內(nèi)核例程。 |
0x00020010 | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量的可選指針 () 。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlKeApcLte2。 IrqlKeApcLte2 規(guī)則指定驅(qū)動程序必須僅在 IRQL <= APC_LEVEL時才調(diào)用某些內(nèi)核例程。 |
0x00020011 | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量的可選指針 () 。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlKeDispatchLte。 IrqlKeDispatchLte 規(guī)則指定驅(qū)動程序必須僅在 IRQL <= DISPATCH_LEVEL時才調(diào)用某些內(nèi)核例程。 |
0x00020015 | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量的可選指針 () 。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlKeReleaseSpinLock。 IrqlKeReleaseSpinLock 規(guī)則指定驅(qū)動程序必須僅在 IRQL = DISPATCH_LEVEL時調(diào)用 KeReleaseSpinLock。 |
0x00020016 | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量 () 的可選指針。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlKeSetEvent。 IrqlKeSetEvent 規(guī)則指定僅在 Wait 設(shè)置為 FALSE 時在 IRQL <= DISPATCH_LEVEL調(diào)用 KeSetEvent 例程,在將 Wait 設(shè)置為 TRUE 時,在 IRQL <= APC_LEVEL 調(diào)用。 |
0x00020019 | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量 () 的可選指針。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlMmApcLte。 IrqlMmApcLte 規(guī)則指定僅在 IRQL <= APC_LEVEL時驅(qū)動程序必須調(diào)用某些內(nèi)存管理器例程。 |
0x0002001A | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量 () 的可選指針。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlMmDispatch。 IrqlMmDispatch 規(guī)則指定僅當 IRQL = DISPATCH_LEVEL時,驅(qū)動程序必須調(diào)用 MmFreeContiguousMemory 。 |
0x0002001B | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量 () 的可選指針。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlObPassive。 IrqlObPassive 規(guī)則指定僅當 IRQL = PASSIVE_LEVEL時,驅(qū)動程序必須調(diào)用 ObReferenceObjectByHandle 。 |
0x0002001C | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量 () 的可選指針。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlPsPassive。 IrqlPsPassive 規(guī)則指定僅當 IRQL = PASSIVE_LEVEL時,驅(qū)動程序必須調(diào)用某些進程和線程管理器例程。 |
0x0002001D | 指向描述違反規(guī)則條件的字符串的指針。 | !ruleinfo) 的第二個參數(shù) (內(nèi)部規(guī)則狀態(tài)的地址。 | 補充狀態(tài)的地址 (!ruleinfo) 的第三個參數(shù)。 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlReturn。 |
0x0002001E | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量 () 的可選指針。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlRtlPassive。 IrqlRtlPassive 規(guī)則指定僅當 IRQL = PASSIVE_LEVEL 時,驅(qū)動程序必須調(diào)用 RtlDeleteRegistryValue 。 |
0x0002001F | 指向描述違反規(guī)則條件的字符串的指針。 | 指向規(guī)則狀態(tài)變量 () 的可選指針。 | 保留 | 驅(qū)動程序違反了 DDI 符合性規(guī)則 IrqlZwPassive。 IrqlZwPassive 規(guī)則指定僅在 IRQL = PASSIVE_LEVEL時驅(qū)動程序必須調(diào)用 ZwClose 。 |
0x00020022 | 指向描述違反規(guī)則條件的字符串的指針。 | 保留 (未使用的) | 保留 (未使用的) |
相關(guān)推薦
最新文章
|