다음을 통해 공유


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) 디코딩에 사용되지 않습니다. DecodeProfileNULL_GUID 설정되지 않은 경우 CryptoType 멤버가 디코딩 프로필에서 지원되지 않는 암호화 형식으로 설정된 경우 드라이버가 D3DDDIERR_UNSUPPORTEDCRYPTO 호출에 실패해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
지원되는 최소 서버 Windows Server 2012
대상 플랫폼 데스크톱
머리글 d3d10umddi.h(D3d10umddi.h 포함)

추가 정보

CalcPrivateCryptoSessionSize

D3D11_1DDIARG_CREATECRYPTOSESSION

NegotiateCryptoSessionKeyExchange