ID3D11VideoContext::EncryptionBlt 메서드(d3d11.h)

보호된 표면에서 암호화된 데이터를 읽습니다.

구문

void EncryptionBlt(
  [in] ID3D11CryptoSession *pCryptoSession,
  [in] ID3D11Texture2D     *pSrcSurface,
  [in] ID3D11Texture2D     *pDstSurface,
  [in] UINT                IVSize,
  [in] void                *pIV
);

매개 변수

[in] pCryptoSession

암호화 세션의 ID3D11CryptoSession 인터페이스에 대한 포인터입니다.

[in] pSrcSurface

보호된 표면의 ID3D11Texture2D 인터페이스에 대한 포인터입니다.

[in] pDstSurface

암호화된 데이터를 수신하는 표면의 ID3D11Texture2D 인터페이스에 대한 포인터입니다.

[in] IVSize

pIV 버퍼의 크기(바이트)입니다.

[in] pIV

IV(초기화 벡터)를 수신하는 버퍼에 대한 포인터입니다. 호출자는 이 버퍼를 할당하지만 드라이버는 IV를 생성합니다.

128비트 AES-CTR 암호화의 경우 pIVD3D11_AES_CTR_IV 구조를 가리킵니다. 드라이버는 첫 번째 IV를 생성할 때 구조를 난수로 초기화합니다. 이후의 각 IV에 대해 드라이버는 단순히 구조체의 IV 멤버를 증가시켜 값이 항상 증가하도록 합니다. 애플리케이션은 동일한 키 쌍에서 동일한 IV가 두 번 이상 사용되지 않는지 확인할 수 있습니다.

반환 값

메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

모든 드라이버가 이 메서드를 지원하는 것은 아닙니다. 드라이버 기능을 쿼리하려면 ID3D11VideoDevice::GetContentProtectionCaps를 호출하고 D3D11_VIDEO_CONTENT_PROTECTION_CAPS 구조체의 Caps 멤버에서 D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK 플래그를 검사.

일부 드라이버는 다시 읽은 데이터의 암호를 해독하기 위해 별도의 키가 필요할 수 있습니다. 이 요구 사항을 검사 위해 GetContentProtectionCaps를 호출하고 D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY 플래그에 대한 검사. 이 플래그가 있으면 ID3D11VideoContext::GetEncryptionBltKey 를 호출하여 암호 해독 키를 가져옵니다.

이 메서드에는 다음과 같은 제한 사항이 있습니다.

  • 하위 사각형을 다시 읽는 것은 지원되지 않습니다.
  • 부분적으로 암호화된 표면을 다시 읽는 것은 지원되지 않습니다.
  • 보호된 표면은 오프 스크린 일반 표면 또는 렌더링 대상이어야 합니다.
  • 대상 표면은 D3D11_USAGE_STAGING 리소스여야 합니다.
  • 보호된 표면은 다중 샘플링할 수 없습니다.
  • 늘이기 및 색 영역 변환은 지원되지 않습니다.

이 함수는 설정되었을 수 있는 D3D11 조건자를 적용하지 않습니다.

애플리케이션에서 D3D11 쿼리를 사용하는 경우 이 함수는 11보다 낮은 기능 수준을 사용할 때 D3D11_QUERY_EVENTD3D11_QUERY_TIMESTAMP 고려하지 않을 수 있습니다. D3D11_QUERY_PIPELINE_STATISTICS 기능 수준에 대해 이 함수를 포함하지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 d3d11.h

추가 정보

ID3D11VideoContext