Поделиться через


функция обратного вызова PVIDEO_HW_INTERRUPT (video.h)

HwVidInterrupt обнаруживает и закрывает прерывания, созданные связанным видеоадаптером.

Синтаксис

PVIDEO_HW_INTERRUPT PvideoHwInterrupt;

BOOLEAN PvideoHwInterrupt(
  PVOID HwDeviceExtension
)
{...}

Параметры

HwDeviceExtension

Указатель на область хранения для каждого адаптера драйвера мини-порта. Дополнительные сведения см. в разделе Расширения устройств.

Возвращаемое значение

Если HwVidInterrupt определяет, что связанное с ним оборудование не сгенерирует прерывание, возвращается значение FALSE. В противном случае необходимо закрыть прерывание в адаптере, прежде чем будет возвращено значение TRUE.

Комментарии

Драйвер мини-порта должен реализовать HwVidInterrupt, если его видеоадаптер создает прерывания.

Во-первых, HwVidInterrupt должен определить, действительно ли его адаптер вызвал прерывание. В противном случае эта функция должна немедленно возвращать ЗНАЧЕНИЕ FALSE , чтобы isR устройства, вызвавшего прерывание, был немедленно вызван.

В противном случае HwVidInterrupt обычно отвечает за выполнение операции ввода-вывода, вызвавшей прерывание, и должен выполнить следующие действия:

  • Закройте прерывание на адаптере (обязательно).
  • Завершите запрошенную операцию, которая вызвала прерывание.
  • Возврат элемента управления как можно быстрее (требуется).
Если драйвер мини-порта имеет функцию HwVidInterrupt , соответствующий драйвер дисплея не может видеть расположение регистра или памяти, к которым может получить доступ HwVidInterrupt . Прерывание может произойти, когда драйвер отображения изменяет один из регистров или расположений памяти, и невозможно обеспечить синхронизацию. Таким образом, все функции, требующие доступа к критически важным регистрам или расположениям памяти для операций, управляемых прерываниями, должны находиться в драйвере мини-порта.

Если какая-либо другая функция драйвера мини-порта использует память, например часть HwDeviceExtension, с HwVidInterrupt, она должна вызвать VideoPortSynchronizeExecution для синхронизации своего доступа к общей области.

HwVidInterrupt может вызывать только следующие системные подпрограммы VideoPortXxx (см. статью Функции, экспортированные драйвером видеопорта):

HwVidInterruptне должен вызывать функции VideoPortXxx , отсутствуют в предыдущем списке. Нарушение этого требования приведет к сбою системы ("синий экран").

Функция HwVidInterrupt не может быть доступной для страницы, а также не может быть любой из функций, которые она вызывает.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть video.h (включая Video.h)

См. также раздел

Функции, экспортированные драйвером видеопорта

HwVidSynchronizeExecutionCallback

VideoPortDisableInterrupt

VideoPortEnableInterrupt

VideoPortLogError

VideoPortStallExecution

VideoPortSynchronizeExecution

VideoPortZeroDeviceMemory

VideoPortZeroMemory