PVIDEO_HW_INTERRUPT 콜백 함수(video.h)

HwVidInterrupt 는 연결된 비디오 어댑터에서 생성된 인터럽트를 감지하고 해제합니다.

구문

PVIDEO_HW_INTERRUPT PvideoHwInterrupt;

BOOLEAN PvideoHwInterrupt(
  PVOID HwDeviceExtension
)
{...}

매개 변수

HwDeviceExtension

미니포트 드라이버의 어댑터별 스토리지 영역에 대한 포인터입니다. 자세한 내용은 디바이스 확장을 참조하세요.

반환 값

HwVidInterrupt가 연결된 하드웨어가 인터럽트를 생성하지 않았다고 판단하면 FALSE를 반환합니다. 그렇지 않으면 TRUE를 반환하기 전에 어댑터의 인터럽트 를 해제해야 합니다.

설명

비디오 어댑터가 인터럽트를 생성하는 경우 미니포트 드라이버는 HwVidInterrupt 를 구현해야 합니다.

먼저 HwVidInterrupt 는 어댑터가 실제로 인터럽트를 발생시켰는지 여부를 결정해야 합니다. 그렇지 않은 경우 이 함수는 즉시 FALSE 를 반환해야 인터럽트 발생 디바이스의 ISR이 즉시 호출됩니다.

그렇지 않으면 HwVidInterrupt 는 일반적으로 인터럽트를 발생시킨 I/O 작업을 완료해야 하며 다음을 수행해야 합니다.

  • 어댑터의 인터럽트 해제(필수).
  • 인터럽트 발생시킨 요청된 작업을 완료합니다.
  • 가능한 한 빨리 컨트롤을 반환합니다(필수).
미니포트 드라이버에 HwVidInterrupt 함수가 있는 경우 HwVidInterrupt 에서 액세스할 수 있는 레지스터 또는 메모리 위치는 해당 디스플레이 드라이버에 표시될 수 없습니다. 디스플레이 드라이버가 관련된 레지스터 또는 메모리 위치 중 하나를 수정하는 동안 인터럽트는 발생할 수 있으며 동기화를 보장할 방법이 없습니다. 따라서 인터럽트 기반 작업을 위해 중요한 레지스터 또는 메모리 위치에 액세스해야 하는 모든 함수는 미니포트 드라이버에 있어야 합니다.

HwDeviceExtension의 일부와 같은 다른 미니포트 드라이버 함수가 HwVidInterrupt와 메모리를 공유하는 경우 VideoPortSynchronizeExecution을 호출하여 공유 영역에 대한 액세스를 동기화해야 합니다.

HwVidInterrupt 는 다음 시스템에서 제공하는 VideoPortXxx 루틴만 호출할 수 있습니다( 비디오 포트 드라이버에서 내보낸 함수 참조).

HwVidInterrupt는 이전 목록에 없는 VideoPortXxx 함수를 호출해서는 안 됩니다. 이 요구 사항을 위반하면 시스템 오류가 발생합니다("블루 스크린").

HwVidInterrupt 함수는 페이징할 수 없으며 호출하는 함수도 사용할 수 없습니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 video.h(Video.h 포함)

추가 정보

비디오 포트 드라이버에서 내보낸 함수

HwVidSynchronizeExecutionCallback

VideoPortDisableInterrupt

VideoPortEnableInterrupt

VideoPortLogError

VideoPortStallExecution

VideoPortSynchronizeExecution

VideoPortZeroDeviceMemory

VideoPortZeroMemory