다음을 통해 공유


DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION 콜백 함수(dispmprt.h)

DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION 함수는 지정된 보호된 출력 개체에서 COPP(Certified Output Protection Protocol)와 호환되는 정보를 검색합니다.

구문

DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION DxgkddiOpmGetCoppCompatibleInformation;

NTSTATUS DxgkddiOpmGetCoppCompatibleInformation(
  [in]  PVOID MiniportDeviceContext,
  [in]  HANDLE ProtectedOutputHandle,
  [in]  const DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS *Parameters,
  [out] PDXGKMDT_OPM_REQUESTED_INFORMATION RequestedInformation
)
{...}

매개 변수

[in] MiniportDeviceContext

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

[in] ProtectedOutputHandle

보호된 출력 개체에 대한 핸들입니다. DxgkDdiOPMCreateProtectedOutput 함수는 보호된 출력 개체를 만들고 개체에 대한 핸들을 반환합니다. 이 핸들에 해당하는 보호된 출력 개체에는 COPP 의미 체계가 있어야 합니다.

[in] Parameters

ProtectedOutputHandle 매개 변수에 핸들이 지정된 보호된 출력 개체에서 검색할 COPP 호환 정보의 형식을 포함하는 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS 구조체에 대한 포인터입니다. DxgkDdiOPMGetCOPPCompatibleInformation 은 매개 변수에 간접적으로 보호된 출력 개체를 만든 애플리케이션의 유효한 요청이 포함되어 있는지 확인합니다. 자세한 내용은 주의 섹션을 참조하세요.

[out] RequestedInformation

DxgkDdiOPMGetCOPPCompatibleInformation이 성공적으로 반환되는 경우 보호된 출력 개체의 COPP 호환 정보를 수신하는 DXGKMDT_OPM_REQUESTED_INFORMATION 구조체에 대한 포인터입니다.

DxgkDdiOPMGetCOPPCompatibleInformation이 실패하면 RequestedInformation이 가리키는 값은 변경되지 않습니다.

반환 값

DxgkDdiOPMGetCOPPCompatibleInformation 은 STATUS_SUCCESS 또는 Ntstatus.h 오류 코드를 반환합니다.

설명

DirectX 그래픽 커널 하위 시스템은 출력에 COPP 의미 체계가 있는 경우에만 DxgkDdiOPMGetCOPPCompatibleInformation 을 호출해야 합니다.

DirectX 그래픽 커널 하위 시스템이 DxgkDdiOPMGetCOPPCompatibleInformation 호출에서 ProtectedOutputHandle 매개 변수에 보호된 출력 핸들을 전달하기 전에 DirectX 그래픽 커널 하위 시스템은 항상 보호된 출력 핸들을 DxgkDdiOPMSetSigningKeyAndSequenceNumbersDxgkDdiOPMGetRandomNumber 함수에 전달합니다.

다음은 DxgkDdiOPMGetCOPPCompatibleInformation 과 관련이 있으며 DxgkDdiOPMGetInformation 함수와 관련이 없는 몇 가지 사실입니다.

  • DirectX 그래픽 커널 하위 시스템은 COPP 의미 체계를 통해서만 보호된 출력에 핸들을 전달할 수 있습니다.

  • Parameters 매개 변수가 가리키는 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS 구조체는 서명되지 않았습니다.

  • DirectX 그래픽 커널 하위 시스템은 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS guidInformation 멤버에 DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING 및 DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION GUID를 전달할 수 있습니다.

  • DirectX 그래픽 커널 하위 시스템은 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS guidInformation 멤버의 DXGKMDT_OPM_GET_CURRENT_HDCP_SRM_VERSION GUID를 전달할 수 없습니다.

  • DirectX 그래픽 커널 하위 시스템은 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS guidInformation 멤버의 DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL 또는 DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL GUID와 함께 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS abParameters 멤버의 처음 4바이트에서 DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP 지정할 수 있습니다.

  • DirectX 그래픽 커널 하위 시스템은 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS guidInformation 멤버의 DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL 또는 DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL GUID와 함께 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS abParameters 멤버의 처음 4바이트에서 DXGKMDT_OPM_PROTECTION_TYPE_HDCP 지정할 수 없습니다.

드라이버는 DxgkDdiOPMGetCOPPCompatibleInformation 함수가 호출되면 다음 시퀀스를 수행해야 합니다.

  1. DxgkDdiOPMGetCOPPCompatibleInformationProtectedOutputHandle 매개 변수에 전달된 보호된 출력 핸들에 COPP 의미 체계가 있는지 확인합니다.

  2. 요청된 정보를 검색합니다.

  3. DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS rnRandomNumber 멤버가 지정하는 난수를 DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT , DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING 또는 DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION 구조체의 rnRandomNumber 멤버에 복사합니다. 사용되는 구조는 호출자가 요청한 정보 유형에 따라 달라집니다. 구조체는 RequestedInformation 매개 변수가 가리키는 DXGKMDT_OPM_REQUESTED_INFORMATION 구조체의 abRequestedInformation 멤버에 설정됩니다.

  4. DXGKMDT_OPM_REQUESTED_INFORMATION 구조체에 서명하고 DXGKMDT_OPM_REQUESTED_INFORMATION omac 멤버에 서명을 배치합니다. AES 블록 암호 및 OMAC-1 서명 알고리즘을 사용하여 구조체에 서명해야 합니다. AES에 대한 자세한 내용은 RSA Labies 웹 사이트를 참조하세요. OMAC-1에 대한 자세한 내용은 DXGKMDT_OPM_OMAC 참조 페이지를 참조하세요.

처음에 DirectX 그래픽 커널 하위 시스템은 DxgkDdiOPMGetCOPPCompatibleInformation 을 호출하여 출력에 대한 정보를 검색한 다음 DxgkDdiOPMConfigureProtectedOutput 을 한 번 이상 호출하여 출력을 구성합니다. 그 후 DirectX 그래픽 커널 하위 시스템은 DxgkDdiOPMGetCOPPCompatibleInformationDxgkDdiOPMConfigureProtectedOutput을 호출하지 않고 DxgkDdiOPMGetCOPPCompatibleInformation을 호출합니다.

DxgkDdiOPMGetCOPPCompatibleInformation 을 페이징 가능으로 만들어야 합니다.

요구 사항

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

추가 정보

DxgkDdiAddDevice

DxgkDdiOPMConfigureProtectedOutput

DxgkDdiOPMCreateProtectedOutput

DxgkDdiOPMGetInformation

DxgkDdiOPMGetRandomNumber

DxgkDdiOPMSetSigningKeyAndSequenceNumbers

DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS

DXGKMDT_OPM_OMAC

DXGKMDT_OPM_REQUESTED_INFORMATION