DXGKDDI_OPM_CREATE_PROTECTED_OUTPUT 콜백 함수(dispmprt.h)

DxgkDdiOPMCreateProtectedOutput 함수는 COPP(Certified Output Protection Protocol) 또는 OPM 의미 체계를 사용하여 보호된 새 출력 개체를 만듭니다.

구문

DXGKDDI_OPM_CREATE_PROTECTED_OUTPUT DxgkddiOpmCreateProtectedOutput;

NTSTATUS DxgkddiOpmCreateProtectedOutput(
  [in]  PVOID MiniportDeviceContext,
  [in]  D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId,
  [in]  DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS NewVideoOutputSemantics,
  [out] PHANDLE NewProtectedOutputHandle
)
{...}

매개 변수

[in] MiniportDeviceContext

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

[in] VidPnTargetId

보호된 새 출력 개체에 해당하는 비디오 현재 대상을 고유하게 식별하는 정수입니다. 존재하는 각 비디오 대상은 하나의 물리적 모니터 커넥터에 해당해야 합니다. VidPnTargetId가 여러 물리적 모니터 커넥터에 해당하는 경우 DxgkDdiOPMCreateProtectedOutput은 STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED 또는 STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED 오류 코드를 반환해야 합니다.

[in] NewVideoOutputSemantics

새 보호된 출력에 COPP 또는 OPM 의미 체계가 있는지 여부를 결정하는 DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS 형식의 값입니다.

[out] NewProtectedOutputHandle

DxgkDdiOPMCreateProtectedOutput이 성공적으로 반환되는 경우 보호된 새 출력 개체에 대한 핸들을 수신하는 변수에 대한 포인터입니다. DirectX 그래픽 커널 하위 시스템은 디스플레이 미니포트 드라이버의 DxgkDdiOPMGetRandomNumber에 대한 호출에서 이 핸들을 전달합니다. DxgkDdiOPMSetSigningKeyAndSequenceNumbersDxgkDdiOPMGetInformation, DxgkDdiOPMGetCOPPCompatibleInformation, DxgkDdiOPMConfigureProtectedOutputDxgkDdiOPMDestroyProtectedOutput.

DxgkDdiOPMCreateProtectedOutput이 실패하면 변수 값이 변경되지 않습니다.

반환 값

DxgkDdiOPMCreateProtectedOutput 은 다음 값 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS 함수는 보호된 새 출력 개체를 만들었습니다.
STATUS_GRAPHICS_OPM_NOT_SUPPORTED 디스플레이 미니포트 드라이버는 하드웨어 공급업체가 OPM 사용권 계약에 서명한 적이 없거나 미니포트 드라이버의 그래픽 하드웨어가 OPM 규칙을 준수하지 않기 때문에 OPM을 지원하지 않습니다.
STATUS_GRAPHICS_COPP_NOT_SUPPORTED 디스플레이 미니포트 드라이버는 하드웨어 공급업체가 COPP 사용권 계약에 서명하지 않았거나 미니포트 드라이버의 그래픽 하드웨어가 COPP 규칙을 준수하지 않기 때문에 COPP를 지원하지 않습니다.
STATUS_NO_MEMORY DxgkDdiOPMCreateProtectedOutput은 완료하는 데 필요한 메모리를 할당할 수 없습니다.
STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED DxgkDdiOPMCreateProtectedOutput은 비디오 현재 대상이 스팬 모드에 있기 때문에 보호된 출력을 만들 수 없습니다. 비디오 제공 대상이 스팬 모드에 있는 경우 여러 물리적 모니터 커넥터에 해당하며 각 커넥터는 프레임 버퍼의 별도 부분을 표시합니다. 디스플레이 미니포트 드라이버가 일반적으로 스팬 모드를 구현하는 방법에 대한 다이어그램은 주의 섹션을 참조하세요. 디스플레이 미니포트 드라이버는 프레임 버퍼가 특정 모니터에 해당하는 방식을 운영 체제에 알릴 수 있습니다. 프레임 버퍼의 왼쪽 절반은 하나의 모니터에 표시되고 프레임 버퍼의 오른쪽 절반은 다른 모니터에 표시됩니다.
STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED DxgkDdiOPMCreateProtectedOutput은 현재 비디오 대상이 극장 모드에 있기 때문에 보호된 출력을 만들 수 없습니다. 비디오 제공 대상이 극장 모드에 있는 경우 두 개의 물리적 모니터 커넥터에 해당합니다. 한 커넥터는 전체 프레임 버퍼를 표시하고 다른 커넥터는 프레임 버퍼의 일부만 표시합니다. 극장 모드를 미러 모드라고도 합니다. 디스플레이 미니포트 드라이버가 일반적으로 극장 모드를 구현하는 방법에 대한 다이어그램은 주의 섹션을 참조하세요. 디스플레이 미니포트 드라이버는 프레임 버퍼가 특정 모니터에 해당하는 방식을 운영 체제에 알릴 수 있습니다. 전체 프레임 버퍼가 하나의 모니터에 표시되고 프레임 버퍼의 일부만 다른 모니터에 표시됩니다.

이 함수는 Ntstatus.h에 정의된 다른 오류 코드를 반환할 수도 있습니다.

설명

다음 그림에서는 디스플레이 미니포트 드라이버가 일반적으로 스팬 모드를 구현하는 방법을 보여 줍니다.

스팬 모드를 보여 주는 다이어그램 다음 그림에서는 디스플레이 미니포트 드라이버가 일반적으로 극장 모드를 구현하는 방법을 보여 줍니다. 극장 모드 *DxgkDdiOPMCreateProtectedOutput*을 페이징 가능하게 만드는 다이어그램

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 dispmprt.h(Dispmprt.h 포함)
IRQL PASSIVE_LEVEL(설명 섹션 참조)

추가 정보

DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS

DxgkDdiAddDevice

DxgkDdiOPMConfigureProtectedOutput

DxgkDdiOPMDestroyProtectedOutput

DxgkDdiOPMGetCOPPCompatibleInformation

DxgkDdiOPMGetInformation

DxgkDdiOPMGetRandomNumber

DxgkDdiOPMSetSigningKeyAndSequenceNumbers