KsIrqlFilterCallbacks rule ()
The KsIrqlFilterCallbacks rule specifies that a kernel-streaming (KS) miniport driver returns from a KS filter callback function with the same IRQL it had when the callback function was called.
Tips for debugging
When Driver Verifier detects a violation of this rule, it triggers Bug Check 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION, with an arg1 value of 0x00081007. The arg3 (RuleState) and arg4 (SubState) of the bug check provide pointers to additional information about the rule violation.
Use the !ruleinfo debugger extension to find out what the IRQL values were at function entry and exit.
Use the command:
!ruleinfo 0x81007 RuleState SubState.
In the rule state data, the OldIrql is the IRQL when the callback is entered. The NewIrql is the IRQL when the callback function is exited.
Don't use !irql to determine the current IRQL because Driver Verifier might have raised IRQL before the bug check. Instead, use !verifier 0x008 to view the IRQL logs.
Driver model: KS
Bug check(s) found with this rule: Bug Check 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION (0x00081007)
How to test
At run time |
---|
To verify this rule, open a Command Prompt window. Enter a Driver Verifier command and specify /domain ks. For example: verifier /domain ks [options] /driver <yourdriver> For more information, see Driver Verifier. |