DXGKDDI_OPM_GET_INFORMATION 콜백 함수(dispmprt.h)
DXGKDDI_OPM_GET_INFORMATION 함수는 지정된 보호된 출력 개체에서 정보를 검색합니다.
구문
DXGKDDI_OPM_GET_INFORMATION DxgkddiOpmGetInformation;
NTSTATUS DxgkddiOpmGetInformation(
[in] PVOID MiniportDeviceContext,
[in] HANDLE ProtectedOutputHandle,
[in] const DXGKMDT_OPM_GET_INFO_PARAMETERS *Parameters,
[out] PDXGKMDT_OPM_REQUESTED_INFORMATION RequestedInformation
)
{...}
매개 변수
[in] MiniportDeviceContext
디스플레이 어댑터와 연결된 컨텍스트 블록에 대한 핸들입니다. 이전에는 디스플레이 미니포트 드라이버의 DxgkDdiAddDevice 함수가 DirectX 그래픽 커널 하위 시스템에 이 핸들을 제공했습니다.
[in] ProtectedOutputHandle
보호된 출력 개체에 대한 핸들입니다. DxgkDdiOPMCreateProtectedOutput 함수는 보호된 출력 개체를 만들고 개체에 대한 핸들을 반환합니다. 이 핸들에 해당하는 보호된 출력 개체에는 OPM 의미 체계가 있어야 합니다.
[in] Parameters
ProtectedOutputHandle 매개 변수에 핸들이 지정된 보호된 출력 개체에서 정보를 검색하는 데 사용되는 매개 변수가 포함된 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS 구조체에 대한 포인터입니다. DXGKDDI_OPM_GET_INFORMATION 매개 변수에 간접적으로 보호된 출력 개체를 만든 애플리케이션의 유효한 요청이 포함되어 있는지 확인합니다. 자세한 내용은 주의 섹션을 참조하세요.
[out] RequestedInformation
DXGKDDI_OPM_GET_INFORMATION 성공적으로 반환되는 경우 보호된 출력 개체의 정보를 수신하는 DXGKMDT_OPM_REQUESTED_INFORMATION 구조체에 대한 포인터입니다.
DXGKDDI_OPM_GET_INFORMATION 실패하면 RequestedInformation이 가리키는 값은 변경되지 않습니다.
반환 값
DxgkDdiOPMGetCOPPCompatibleInformation 은 STATUS_SUCCESS 또는 Ntstatus.h 오류 코드를 반환합니다.
설명
DirectX 그래픽 커널 하위 시스템은 출력에 OPM 의미 체계가 있는 경우에만 DXGKDDI_OPM_GET_INFORMATION 호출해야 합니다.
DirectX 그래픽 커널 하위 시스템이 DXGKDDI_OPM_GET_INFORMATION 호출 시 ProtectedOutputHandle 매개 변수에 보호된 출력 핸들을 전달하기 전에 DirectX 그래픽 커널 하위 시스템은 항상 보호된 출력 핸들을 DxgkDdiOPMSetSigningKeyAndSequenceNumbers 및 DxgkDdiOPMGetRandomNumber 함수에 전달합니다.
DXGKDDI_OPM_GET_INFORMATION 다음 정보 유형 중 하나를 검색합니다.
- 보호된 출력의 커넥터 유형입니다.
- 보호된 출력에서 지원하는 콘텐츠 보호 형식입니다. 보호된 출력은 현재 ACP, CGMS-A 및 HDCP를 지원할 수 있습니다.
- 특정 보호 유형에 대한 보호된 출력의 현재 가상 보호 수준입니다.
- 특정 보호 유형에 대한 실제 출력의 실제 보호 수준입니다.
- 보호된 출력이 현재 사용하는 HDCP SRM의 버전입니다.
- 그래픽 어댑터가 사용하는 확장 버스 유형 및 그래픽 어댑터가 컴퓨터의 북쪽 브리지에 연결되는 방식입니다.
- 그래픽 어댑터가 물리적 출력에서 모니터로 보내는 이미지의 형식입니다.
PARAMETERS 매개 변수가 가리키는 DXGKMDT_OPM_GET_INFO_PARAMETERS 구조체의 guidInformation 멤버는 COPP 애플리케이션만 이러한 GUID를 지정해야 하므로 DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION 및 DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING GUID를 포함해서는 안 됩니다.
DXGKMDT_OPM_GET_INFO_PARAMETERSabParameters 멤버의 처음 4바이트에는 COPP 애플리케이션만 이 보호 유형을 사용하기 때문에 DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL 또는 DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL GUID가 DXGKMDT_OPM_GET_INFO_PARAMETERS guidInformation 멤버에 지정된 경우 DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP 보호 형식을 포함해서는 안 됩니다.
드라이버는 DXGKDDI_OPM_GET_INFORMATION 함수가 호출되면 다음 시퀀스를 수행해야 합니다.
DXGKDDI_OPM_GET_INFORMATIONProtectedOutputHandle 매개 변수에 전달된 보호된 출력 핸들에 OPM 의미 체계가 있는지 확인합니다.
Parameters 매개 변수의 정보가 보호된 출력 개체의 서명 키로 서명되었는지 확인합니다. 보호된 출력 개체의 서명 키는 이전에 DxgkDdiOPMSetSigningKeyAndSequenceNumbers 함수가 호출되었을 때 설정되었습니다. AES(Advanced Encryption Standard) 블록 암호 및 OMAC-1 서명 알고리즘을 사용하여 서명을 확인해야 합니다. AES에 대한 자세한 내용은 RSA Labies 웹 사이트를 참조하세요. OMAC-1에 대한 자세한 내용은 DXGKMDT_OPM_OMAC 참조 페이지를 참조하세요.
요청된 정보를 검색합니다.
DXGKMDT_OPM_GET_INFO_PARAMETERS rnRandomNumber 멤버가 지정하는 난수를 DXGKMDT_OPM_STANDARD_INFORMATION 또는 DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT 구조체의 rnRandomNumber 멤버에 복사합니다. 사용되는 구조체는 호출자가 요청한 정보 유형에 따라 달라지고 RequestedInformation 매개 변수가 가리키는 DXGKMDT_OPM_REQUESTED_INFORMATION 구조체의 abRequestedInformation 멤버에 설정됩니다.
DXGKMDT_OPM_REQUESTED_INFORMATION 구조체에 서명하고 서명을 DXGKMDT_OPM_REQUESTED_INFORMATION omac 멤버에 배치합니다. AES 블록 암호 및 OMAC-1 서명 알고리즘을 사용하여 구조체에 서명해야 합니다.
처음에 DirectX 그래픽 커널 하위 시스템은 DXGKDDI_OPM_GET_INFORMATION 호출하여 출력에 대한 정보를 검색한 다음 DxgkDdiOPMConfigureProtectedOutput 을 한 번 이상 호출하여 출력을 구성합니다. 그 후 DirectX 그래픽 커널 하위 시스템은 DxgkDdiOPMConfigureProtectedOutput도 호출하지 않고 DXGKDDI_OPM_GET_INFORMATION 호출합니다.
DXGKDDI_OPM_GET_INFORMATION 페이지 가능으로 만들어야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | dispmprt.h(Dispmprt.h 포함) |
IRQL | PASSIVE_LEVEL(설명 섹션 참조) |
추가 정보
DxgkDdiOPMConfigureProtectedOutput
DxgkDdiOPMCreateProtectedOutput
DxgkDdiOPMSetSigningKeyAndSequenceNumbers