PVIDEO_HW_INTERRUPT callback function (video.h)

HwVidInterrupt detects and dismisses interrupts generated by the associated video adapter.

Syntax

PVIDEO_HW_INTERRUPT PvideoHwInterrupt;

BOOLEAN PvideoHwInterrupt(
  PVOID HwDeviceExtension
)
{...}

Parameters

HwDeviceExtension

Pointer to the miniport driver's per-adapter storage area. For more information, see Device Extensions.

Return value

If HwVidInterrupt determines that its associated hardware did not generate the interrupt, it returns FALSE. Otherwise, it must dismiss the interrupt on its adapter before it returns TRUE.

Remarks

A miniport driver must implement HwVidInterrupt if its video adapter generates interrupts.

First, HwVidInterrupt should determine whether its adapter actually caused the interrupt. If not, this function should return FALSE immediately so the ISR of the device that caused the interrupt will be called promptly.

Otherwise, HwVidInterrupt is generally responsible for completing the I/O operation that caused the interrupt, and should do the following:

  • Dismiss the interrupt on the adapter (required).
  • Complete the requested operation that caused the interrupt.
  • Return control as quickly as possible (required).
If a miniport driver has an HwVidInterrupt function, no register or memory location that can be accessed by HwVidInterrupt can be visible to the corresponding display driver. An interrupt can occur while the display driver is modifying one of the registers or memory locations involved, and there is no way to ensure synchronization. Therefore, all functions requiring access to the critical registers or memory locations for interrupt-driven operations must be in the miniport driver.

If any other miniport driver function shares memory, such as part of the HwDeviceExtension, with HwVidInterrupt, it must call VideoPortSynchronizeExecution to synchronize its access to the shared area.

HwVidInterrupt can call only the following system-supplied VideoPortXxx routines (see Functions Exported by the Video Port Driver):

HwVidInterrupt must not call any VideoPortXxx function that is not in the preceding list. Violation of this requirement will cause system failure (a "blue screen").

A HwVidInterrupt function cannot be pageable, nor can any function that it calls.

Requirements

Requirement Value
Target Platform Desktop
Header video.h (include Video.h)

See also

Functions Exported by the Video Port Driver

HwVidSynchronizeExecutionCallback

VideoPortDisableInterrupt

VideoPortEnableInterrupt

VideoPortLogError

VideoPortStallExecution

VideoPortSynchronizeExecution

VideoPortZeroDeviceMemory

VideoPortZeroMemory