보호된 출력의 보고 상태

외부 이벤트는 커넥터에 적용되는 보호의 특성을 변경하거나 커넥터 유형을 수정할 수도 있습니다. 디스플레이 미니포트 드라이버는 드라이버가 DxgkDdiOPMGetInformation 또는 DxgkDdiOPMGetCOPPCompatibleInformation 함수에 대한 호출을 받을 때마다 OPM 애플리케이션에 이러한 이벤트를 보고해야 합니다. 디스플레이 미니포트 드라이버는 이벤트가 발생한 후 DxgkDdiOPMGetInformation 또는 DxgkDdiOPMGetCOPPCompatibleInformation에 대한 다음 호출에서만 DXGKMDT_OPM_STATUS 열거형에서 지정된 상태 플래그를 반환하여 다음 외부 이벤트를 보고해야 합니다.

연결이 제대로 작동
컴퓨터와 디스플레이 디바이스 간의 연결이 제대로 작동하는 경우 디스플레이 미니포트 드라이버는 DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING 또는DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION 구조체의 ulStatusFlags 멤버에서 DXGKMDT_OPM_STATUS_NORMAL 상태 플래그를 설정해야 합니다.

연결 무결성
컴퓨터와 디스플레이 디바이스의 연결이 끊어지면 디스플레이 미니포트 드라이버는 DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING 또는 DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION 구조체의 ulStatusFlags 멤버에서 DXGKMDT_OPM_STATUS_LINK_LOST 상태 플래그를 설정해야 합니다.

커넥터 재구성
최종 사용자가 물리적 커넥터의 구성을 변경하는 경우 디스플레이 미니포트 드라이버는 DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING 또는 DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION 구조체의 ulStatusFlags 멤버에서 DXGKMDT_OPM_STATUS_RENEGOTIATION_REQUIRED 상태 플래그를 설정해야 합니다.

변조
그래픽 어댑터 또는 어댑터의 디스플레이 미니포트 드라이버가 변조된 경우 디스플레이 미니포트 드라이버는 DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING 또는 DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION 구조체의 ulStatusFlags 멤버에서 DXGKMDT_OPM_STATUS_TAMPERING_DETECTED 상태 플래그를 설정해야 합니다.

해지된 HDCP 디바이스
해지된 HDCP(High-Bandwidth Digital Content Protection) 디바이스가 커넥터에 직접 또는 간접적으로 연결되어 있고 HDCP를 사용하는 경우 디스플레이 미니포트 드라이버는 DXGKMDT_OPM_STANDARD_INFORMATION 또는 DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT 구조체의 ulStatusFlags 멤버에서 DXGKMDT_OPM_STATUS_REVOKED_HDCP_DEVICE_ATTACHED 상태 플래그를 설정해야 합니다. HDCP를 사용하도록 설정하지 않으면 드라이버가 이 상태 플래그를 설정할 필요가 없습니다. 드라이버는 DxgkDdiOPMGetInformation 함수 호출에서만 이 상태 값을 설정하여 HDCP가 사용하도록 설정되어 있는지 확인합니다.

디스플레이 미니포트 드라이버는 DXGKMDT_OPM_REQUESTED_INFORMATION 구조체의 abRequestedInformation 멤버에 있는 DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING 또는 DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION 구조체에 대한 포인터를 반환합니다. DXGKMDT_OPM_REQUESTED_INFORMATION 대한 포인터는 DxgkDdiOPMGetInformation 또는 DxgkDdiOPMGetCOPPCompatibleInformationRequestedInformation 매개 변수를 통해 반환됩니다.

예를 들어 두 개의 미디어 재생 애플리케이션인 A와 B를 고려합니다. 각 애플리케이션은 OPM을 통해 컴퓨터를 디스플레이 모니터에 연결하는 커넥터의 HDCP 보호 수준을 제어합니다. 각 애플리케이션은 고유한 보호된 출력을 제어합니다. 커넥터가 분리되면 다음에 애플리케이션이 DxgkDdiOPMGetInformation 또는 DxgkDdiOPMGetCOPPCompatibleInformation 요청을 해당 보호된 출력에 시작할 때 디스플레이 미니포트 드라이버는 DXGKMDT_OPM_STATUS_LINK_LOST 상태 플래그를 반환해야 합니다.

애플리케이션 A가 보호된 출력에서 DxgkDdiOPMGetInformation 또는 DxgkDdiOPMGetCOPPCompatibleInformation 에 대한 호출을 처음 시작하는 경우라고 가정합니다. 그런 다음 애플리케이션 A는 DXGKMDT_OPM_STATUS_LINK_LOST 플래그를 수신하고 그에 따라 작동합니다. 애플리케이션 A가 후속 DxgkDdiOPMGetInformation 또는 DxgkDdiOPMGetCOPPCompatibleInformation 호출을 시작하는 경우 커넥터가 다시 분리되지 않는 한 DXGKMDT_OPM_STATUS_LINK_LOST 플래그를 수신해서는 안 됩니다. 애플리케이션 B가 보호된 출력에서 DxgkDdiOPMGetInformation 또는 DxgkDdiOPMGetCOPPCompatibleInformation 에 대한 호출을 시작하면 DXGKMDT_OPM_STATUS_LINK_LOST 플래그를 수신하고 그에 따라 작동합니다. 다시 말하지만, 애플리케이션 B는 커넥터가 다시 분리될 때까지 DXGKMDT_OPM_STATUS_LINK_LOST 플래그를 다시 수신해서는 안 됩니다.