PVIDEO_HW_INTERRUPT callback function

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

Syntax


PVIDEO_HW_INTERRUPT HwVidInterrupt;

BOOLEAN HwVidInterrupt(
   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

Target platform

Header

Video.h (include Video.h)

See also

Functions Exported by the Video Port Driver
HwVidSynchronizeExecutionCallback
VideoPortDisableInterrupt
VideoPortEnableInterrupt
VideoPortLogError
VideoPortStallExecution
VideoPortSynchronizeExecution
VideoPortZeroDeviceMemory
VideoPortZeroMemory

 

 

Send comments about this topic to Microsoft

Show: