다음을 통해 공유


DXGKDDI_PROTECTED_CALLBACK 콜백 함수(dispmprt.h)

DxgkProtectedCallback 콜백 루틴은 디스플레이 미니포트 드라이버에 의해 구현되며 디스플레이 어댑터에 대한 모든 액세스가 차단되는 경우 보호된 상태 동안 DxgkCbExcludeAdapterAccess에서 호출됩니다.

구문

DXGKDDI_PROTECTED_CALLBACK DxgkddiProtectedCallback;

void DxgkddiProtectedCallback(
  [in] IN_CONST_PVOID MiniportDeviceContext,
  [in] PVOID ProtectedCallbackContext,
  [in] NTSTATUS ProtectionStatus
)
{...}

매개 변수

[in] MiniportDeviceContext

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

[in] ProtectedCallbackContext

DxgkCbExcludeAdapterAccess에 대한 이전 호출에서 지정한 드라이버 정의 정보에 대한 포인터입니다.

[in] ProtectionStatus

디스플레이 어댑터의 보호된 상태 상태입니다. STATUS_SUCCESS 어댑터가 액세스로부터 보호되었습니다. 오류 상태 코드는 어댑터가 보호되지 않음을 나타냅니다.

반환 값

없음

설명

DxgkProtectedCallback은 상태 매개 변수 ProtectionStatus에 표시된 대로 디스플레이 어댑터에 대한 모든 액세스가 중단된 경우에만 호출해야 합니다.

드라이버는 콜백 루틴 중에 다음 조건이 충족되는지 확인해야 합니다.

  • 디바이스의 모든 인터럽트는 사용하지 않도록 설정되며, CPU에서 큐에 대기되었지만 아직 서비스되지 않은 모든 DPC를 포함하여 보류 중인 모든 인터럽트는 처리됩니다.
  • 모든 쓰기 결합 메모리 및 기타 캐시 관련 상태가 플러시되었습니다.
  • 발생하는 ACPI 또는 BIOS/SMI 이벤트는 하드웨어에 액세스하지 않습니다.
  • 연결된 어댑터 상태 구성의 모든 어댑터 간에 일관성이 달성됩니다.
  • 레지스터 및 디스플레이 모드를 포함한 어댑터는 DxgkProtectedCallback 루틴에서 반환될 때 발생하는 DMA 버퍼를 처리하기 위해 적절한 상태로 유지됩니다. 드라이버는 애플리케이션의 표시 상태 또는 기능을 변경해서는 안 됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
대상 플랫폼 데스크톱
머리글 dispmprt.h(Dispmprt.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

DxgkCbExcludeAdapterAccess