PFN_WDFINTERRUPTRELEASELOCK callback function (wdfinterrupt.h)

[Applies to KMDF and UMDF]

The WdfInterruptReleaseLock method ends a code sequence that executes at the device's DIRQL while holding an interrupt object's spin lock.

For passive level interrupt objects, the method ends a code sequence that executes at passive level while holding an interrupt object's passive lock.

Syntax

PFN_WDFINTERRUPTRELEASELOCK PfnWdfinterruptreleaselock;

VOID * PfnWdfinterruptreleaselock(
  PWDF_DRIVER_GLOBALS DriverGlobals,
  WDFINTERRUPT Interrupt
)
{...}

Parameters

DriverGlobals

Interrupt

Return value

None

Remarks

A bug check occurs if the driver supplies an invalid object handle.

The WdfInterruptReleaseLock method releases the specified interrupt object's spin lock or wait lock and returns the processor's IRQL to the level that it was set to before the driver called WdfInterruptAcquireLock.

Your driver cannot call WdfInterruptReleaseLock before the framework has called the driver's EvtInterruptEnable callback function or after the framework has called the driver's EvtInterruptDisable callback function.

For more information about the WdfInterruptReleaseLock method, see Synchronizing Interrupt Code.

For more information about handling interrupts in framework-based drivers, see Handling Hardware Interrupts.

This method must be called at the DIRQL that was set by WdfInterruptAcquireLock.

For passive level interrupts, the driver must call WdfInterruptReleaseLock at IRQL = PASSIVE_LEVEL.

Requirements

   
Target Platform Universal
Minimum KMDF version 1.0
Minimum UMDF version 2.0
Header wdfinterrupt.h (include Wdf.h)
IRQL See Remarks section.
DDI compliance rules DriverCreate, KmdfIrql, KmdfIrql2, WdfInterruptLock, WdfInterruptLockRelease

See also

WdfInterruptSynchronize

WdfInterruptAcquireLock

EvtInterruptEnable

EvtInterruptDisable