PFND3D11_1DDI_CREATECRYPTOSESSION 콜백 함수(d3d10umddi.h)
디스플레이 미니포트 드라이버로 전송되는 비디오 콘텐츠를 암호화하는 암호화 세션을 만듭니다.
구문
PFND3D11_1DDI_CREATECRYPTOSESSION Pfnd3d111DdiCreatecryptosession;
HRESULT Pfnd3d111DdiCreatecryptosession(
D3D10DDI_HDEVICE hDevice,
const D3D11_1DDIARG_CREATECRYPTOSESSION *pCreateData,
D3D11_1DDI_HCRYPTOSESSION hCryptoSession,
D3D11_1DDI_HRTCRYPTOSESSION hRTCryptoSession
)
{...}
매개 변수
hDevice
디스플레이 디바이스(그래픽 컨텍스트)에 대한 핸들입니다.
pCreateData
D3D11_1DDIARG_CREATECRYPTOSESSION 구조체에 대한 포인터입니다. 이 구조체는 만들 암호화 세션의 특성을 지정합니다.
hCryptoSession
암호화 세션에 대한 드라이버의 개인 데이터에 대한 핸들입니다. 자세한 내용은 주의 섹션을 참조하세요.
hRTCryptoSession
드라이버가 Direct3D 런타임으로 다시 호출할 때 사용해야 하는 암호화 세션에 대한 핸들입니다.
반환 값
다음 값 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
S_OK | 인증된 채널이 성공적으로 만들어졌습니다. |
D3DDDIERR_DEVICEREMOVED | 그래픽 어댑터가 제거되었습니다. |
D3DDDIERR_UNSUPPORTEDCRYPTO | 디코딩 프로필에서 지원되지 않는 암호화 형식을 지정했습니다. |
E_OUTOFMEMORY | 메모리를 사용하여 작업을 완료할 수 없습니다. |
설명
Direct3D 런타임은 CreateCryptoSession 을 호출하여 런타임이 세션 키를 관리하고 보호된 메모리에 저장된 비디오 콘텐츠에 대한 암호화 작업을 수행하는 데 사용하는 암호화 세션을 만듭니다.
런타임은 드라이버의 CalcPrivateCryptoSessionSize를 호출한 후 CreateCryptoSession을 호출하여 드라이버가 암호화 세션에 필요한 프라이빗 데이터의 크기(바이트)를 결정합니다. 런타임은 드라이버에 대해 이 프라이빗 데이터에 대한 메모리를 할당합니다. 드라이버는 이 메모리를 사용하여 암호화 세션과 관련된 개인 데이터를 저장합니다.
런타임이 CreateCryptoSession을 호출하면 hCryptoSession 매개 변수의 프라이빗 데이터 메모리에 핸들을 전달합니다. 이 핸들은 실제로 메모리에 대한 포인터입니다.
드라이버는 암호화 세션을 만드는 데 사용된 디스플레이 디바이스에 대한 핸들을 추적해야 합니다. 드라이버가 이 만든 암호화 세션을 사용하는 모든 후속 호출(예: NegotiateCryptoSessionKeyExchange)에 실패해야 합니다. 이러한 호출에 지정된 표시 디바이스가 암호화 세션을 만드는 데 사용된 디스플레이 디바이스와 다른 경우.
D3D11_1DDIARG_CREATECRYPTOSESSION 구조체의 DecodeProfile 멤버가 NULL_GUID 설정된 경우 암호화 세션은 DXVA(DirectX Video Acceleration) 디코딩에 사용되지 않습니다. DecodeProfile이 NULL_GUID 설정되지 않은 경우 CryptoType 멤버가 디코딩 프로필에서 지원되지 않는 암호화 형식으로 설정된 경우 드라이버가 D3DDDIERR_UNSUPPORTEDCRYPTO 호출에 실패해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 |
지원되는 최소 서버 | Windows Server 2012 |
대상 플랫폼 | 데스크톱 |
머리글 | d3d10umddi.h(D3d10umddi.h 포함) |