Bewerken

Delen via


EVT_WDF_INTERRUPT_DISABLE callback function (wdfinterrupt.h)

[Applies to KMDF and UMDF]

A driver's EvtInterruptDisable event callback function disables a specified hardware interrupt.

Syntax

EVT_WDF_INTERRUPT_DISABLE EvtWdfInterruptDisable;

NTSTATUS EvtWdfInterruptDisable(
  [in] WDFINTERRUPT Interrupt,
  [in] WDFDEVICE AssociatedDevice
)
{...}

Parameters

[in] Interrupt

A handle to a framework interrupt object.

[in] AssociatedDevice

A handle to the framework device object that the driver passed to WdfInterruptCreate.

Return value

The EvtInterruptDisable callback function must return STATUS_SUCCESS or another status value for which NT_SUCCESS(status) equals TRUE if the function encounters no errors. Otherwise, this function must return a status value for which NT_SUCCESS(status) equals FALSE.

Remarks

To register an EvtInterruptDisable callback function, your driver must place the callback function's address in a WDF_INTERRUPT_CONFIG structure before calling WdfInterruptCreate.

The framework calls the driver's EvtInterruptDisable callback function each time the device leaves its working (D0) state. Additionally, a driver can cause the framework to call the EvtInterruptDisable callback function by calling WdfInterruptDisable. Note that most framework-based drivers should not call WdfInterruptDisable, because the framework calls the driver's EvtInterruptDisable callback function each time the device leaves its working (D0) state.

Before calling the EvtInterruptDisable callback function, the framework raises the processor's IRQL to the device's DIRQL and acquires the spin lock that the driver specified in the interrupt object's WDF_INTERRUPT_CONFIG structure.

Beginning with version 1.11 of KMDF, your driver can provide passive-level interrupt handling. If the driver has requested passive-level interrupt handling, then before calling the EvtInterruptDisable function at IRQL = PASSIVE_LEVEL, the framework acquires the passive-level interrupt lock that the driver configured in the interrupt object's WDF_INTERRUPT_CONFIG structure.

Before calling the EvtInterruptDisable callback function, the framework calls the driver's EvtDeviceD0ExitPreInterruptsDisabled event callback function at IRQL = PASSIVE_LEVEL.

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

Requirements

Requirement Value
Target Platform Universal
Minimum KMDF version 1.0
Minimum UMDF version 2.0
Header wdfinterrupt.h (include Wdf.h)
IRQL (See Remarks section.)

See also

EvtDeviceD0ExitPreInterruptsDisabled

EvtInterruptEnable

WDF_INTERRUPT_CONFIG

WdfInterruptCreate

WdfInterruptDisable