WdfInterruptReportInactive function (wdfinterrupt.h)
[Applies to KMDF only]
The WdfInterruptReportInactive method informs the system that the interrupt is no longer active and the driver is not expecting interrupt requests on the associated lines.
Syntax
void WdfInterruptReportInactive(
[in] WDFINTERRUPT Interrupt
);
Parameters
[in] Interrupt
A handle to a framework interrupt object.
Return value
None
Remarks
Only drivers that implement functional state power management call WdfInterruptReportInactive.
When a driver calls WdfInterruptReportInactive, the power management framework (PoFx) can then perform related power management tasks.
Typically, a driver calls WdfInterruptReportInactive from either its ComponentIdleConditionCallback routine, or from ComponentIdleStateCallback when State is greater than zero (indicating a low-power Fx state).
If your driver calls this method on an operating system earlier than Windows 8, the framework's verifier reports an error.
Examples
The following example shows how a driver might call WdfInterruptReportInactive from the ComponentIdleStateCallback routine of a KMDF driver. The driver registers a single component by calling WdfDeviceWdmAssignPowerFrameworkSettings.
VOID
MyComponentIdleStateCallback(
_In_ PVOID Context,
_In_ ULONG Component,
_In_ ULONG State
)
{
PFDO_DEVICE_DATA deviceData;
PFDO_INTERRUPT_CONTEXT interruptContext;
deviceData = FdoGetData((WDFDEVICE)Context);
interruptContext = InterruptGetData(deviceData->Interrupt);
switch (State) {
case 0:
…
break;
//
// PoFx may make us go to any of the F-states directly, hence we execute
// F0Exit code for all of the Fx states. Note that transition to any Fx
// state happens from F0 (and not another Fx state).
//
default:
//
// Disable interrupt generation at hardware if needed.
//
WdfInterruptAcquireLock(deviceData->Interrupt);
DisableInterruptInHardware();
WdfInterruptReleaseLock(deviceData->Interrupt);
//
// Report that interrupt is now inactive.
//
WdfInterruptReportInactive(deviceData->Interrupt);
interruptContext->ReportedInactive = TRUE;
break;
…
}
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 8 |
Target Platform | Universal |
Minimum KMDF version | 1.11 |
Header | wdfinterrupt.h (include Wdf.h) |
Library | Wdf01000.sys (see Framework Library Versioning.) |
IRQL | <=DISPATCH_LEVEL |
DDI compliance rules | DriverCreate(kmdf) |