!ruleinfo
!ruleinfo 命令會顯示驅動程式驗證器規則的相關信息。
!ruleinfo RuleId [RuleState [SubState]]
參數
RuleId
驗證程式規則的識別碼。 這是DRIVER_VERIFIER_DETECTED_VIOLATION錯誤檢查的第一個自變數。
RuleState
有關違規的其他狀態資訊。 這是DRIVER_VERIFIER_DETECTED_VIOLATION錯誤檢查的第三個自變數。
SubState
違規的子狀態資訊。 這是DRIVER_VERIFIER_DETECTED_VIOLATION錯誤檢查的第四個自變數。
DLL
ext.dll
備註
此命令僅適用於驅動程式驗證器擴充功能中的規則;也就是說,標識符大於或等於0x10000的規則。
下列範例顯示DRIVER_VERIFIER_DETECTED_VIOLATION錯誤檢查的四個自變數。
DRIVER_VERIFIER_DETECTED_VIOLATION (c4)
...
Arguments:
Arg1: 0000000000091001, ID of the 'NdisOidComplete' rule that was violated.
Arg2: fffff800002d49d0, A pointer to the string describing the violated rule condition.
Arg3: ffffe000027b8370, Address of internal rule state (second argument to !ruleinfo).
Arg4: ffffe000027b83f8, Address of supplemental states (third argument to !ruleinfo).
## Debugging Details:
DV_VIOLATED_CONDITION: This OID should only be completed with NDIS_STATUS_NOT_ACCEPTED,
NDIS_STATUS_SUCCESS, or NDIS_STATUS_PENDING.
DV_MSDN_LINK: https://go.microsoft.com/fwlink/p/?linkid=278802
DRIVER_OBJECT: ffffe0000277a2b0
...
STACK_TEXT:
ffffd000`2118ff58 fffff803`4c83afa2 : 00000000`000000c4 00000000`00000001 ...
ffffd000`2118ff60 fffff803`4c83a8c0 : 00000000`00000003 00000000`00091001 ...
...
STACK_COMMAND: kb
FOLLOWUP_NAME: Xxxx
FAILURE_BUCKET_ID: Xxxx
...
在上述輸出中,規則標識碼 (0x91001) 會顯示為Arg1。 Arg3 和 Arg4 是規則狀態和子狀態資訊的位址。 您可以將規則標識碼、規則狀態和子狀態傳遞至 !ruleinfo ,以取得規則的描述,以及規則詳細文件的連結。
3: kd> !ruleinfo 0x91001 0xffffe000027b8370 0xffffe000027b83f8
RULE_ID: 0x91001
RULE_NAME: NdisOidComplete
RULE_DESCRIPTION: ""
This rule verifies if an NDIS miniport driver completes an OID correctly.
Check RULE_STATE for Oid ( use !ndiskd.oid ), which can be one of the following:
1) NULL,
2) Pending OID, or
3) Previous OID if no OID is pending.
MSDN_LINK: https://learn.microsoft.com/windows-hardware/drivers/devtest/ndis-ndisoidcomplete
CONTEXT: Miniport 0xFFFFE0000283F1A0
CURRENT_TIME (Timed Rules): 142 seconds
RULE_STATE: 0xFFFFE000027B83F8