Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

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)

See also

WdfInterruptReportActive


Feedback

Was this page helpful?

Additional resources