DXGKDDI_INTERRUPT_ROUTINE 콜백 함수(dispmprt.h)

DxgkDdiInterruptRoutine 함수는 디스플레이 어댑터에서 생성된 인터럽트를 처리합니다.

구문

DXGKDDI_INTERRUPT_ROUTINE DxgkddiInterruptRoutine;

BOOLEAN DxgkddiInterruptRoutine(
  [in] IN_CONST_PVOID MiniportDeviceContext,
  [in] IN_ULONG MessageNumber
)
{...}

매개 변수

[in] MiniportDeviceContext

디스플레이 어댑터와 연결된 컨텍스트 블록에 대한 핸들입니다. 디스플레이 미니포트 드라이버의 DxgkDdiAddDevice 함수는 이전에 DirectX 그래픽 커널 하위 시스템에 이 핸들을 제공했습니다.

[in] MessageNumber

인터럽트에서 메시지 신호를 받은 경우의 메시지 번호입니다. 줄 기반 인터럽트에서 이 매개 변수는 0입니다.

반환 값

DxgkDdiInterruptRoutineMiniportDeviceContext가 나타내는 어댑터가 인터럽트를 생성하지 않았다고 판단하면 FALSE를 반환합니다. 그렇지 않으면 TRUE를 반환하기 전에 어댑터에서 인터럽트 해제해야 합니다.

설명

인터럽트가 줄 기반(MessageNumber = 0)인 경우 DxgkDdiInterruptRoutineMiniportDeviceContext 로 표현된 어댑터가 인터럽트를 생성했는지 여부를 결정해야 하며 그렇지 않은 경우 FALSE 를 즉시 반환해야 합니다.

MiniportDeviceContext로 표시되는 어댑터가 인터럽트를 생성한 경우 DxgkDdiInterruptRoutine은 다음 단계를 수행해야 합니다.

  • 어댑터의 인터럽트 해제
  • 인터럽트 발생시킨 요청된 작업을 완료하거나 나중에 작업을 완료할 DPC를 큐에 대기합니다.
  • 가능한 한 빨리 TRUE 를 반환합니다.
DxgkDdiInterruptRoutine과 메모리를 공유하는 다른 디스플레이 미니포트 드라이버 함수(예: MiniportDeviceContext가 나타내는 상태의 일부)는 DxgkCbSynchronizeExecution을 호출하여 공유 메모리에 대한 액세스를 동기화해야 합니다.

DxgkDdiInterruptRoutine 함수는 DxgkCbQueueDpcDxgkCbNotifyInterrupt를 호출할 수 있지만 다른 DxgkCbXxx 함수를 호출해서는 안 됩니다. 함수 호출의 적절한 시퀀스에 대한 자세한 내용은 명령 버퍼 제출을 참조하세요.

DxgkDdiInterruptRoutine 은 관리자 권한 IRQL에서 실행되므로 호출하는 모든 함수는 페이징할 수 없어야 합니다. 또한 DxgkDdiInterruptRoutine (및 호출하는 모든 함수)은 페이징 가능한 메모리에 액세스하려고 시도해서는 안 됩니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
대상 플랫폼 데스크톱
헤더 dispmprt.h
IRQL 주의 섹션을 참조하세요.

참고 항목

DxgkCbNotifyInterrupt

DxgkCbQueueDpc

DxgkCbSynchronizeExecution