다음을 통해 공유


PFND3DDDI_DECRYPTIONBLT 콜백 함수(d3dumddi.h)

DecryptionBlt 함수는 보호된 표면에 데이터를 씁니다.

구문

PFND3DDDI_DECRYPTIONBLT Pfnd3dddiDecryptionblt;

HRESULT Pfnd3dddiDecryptionblt(
  HANDLE hDevice,
  const D3DDDIARG_DECRYPTIONBLT *unnamedParam2
)
{...}

매개 변수

hDevice

디스플레이 디바이스(그래픽 컨텍스트)에 대한 핸들입니다.

unnamedParam2

pData [in]

암호 해독된 비트 블록 전송(비트blt) 작업의 매개 변수를 설명하는 D3DDDIARG_DECRYPTIONBLT 구조체에 대한 포인터입니다.

반환 값

DecryptionBlt은 다음 값 중 하나를 반환합니다.

반환 코드 설명
S_OK 암호 해독된 비트blt 작업이 성공적으로 수행되었습니다.
E_OUTOFMEMORY DecryptionBlt에서 완료하는 데 필요한 메모리를 할당할 수 없습니다.
D3DDDIERR_NOTAVAILABLE 드라이버는 DecryptionBlt 함수를 지원하지 않습니다.

설명

하드웨어 및 드라이버는 필요에 따라 일부 암호화 유형에 대해 DecryptionBlt 을 지원할 수 있습니다.

호출하는 애플리케이션에서 콘텐츠 키를 사용해야 하는 경우 애플리케이션은 콘텐츠 키를 사용하여 데이터를 암호화하고 세션 키를 사용하여 콘텐츠 키를 암호화한 후 D3DDDIARG_DECRYPTIONBLTpContentKey 멤버가 가리키는 메모리 블록에 콘텐츠 키를 전달합니다. pContentKeyNULL인 경우 애플리케이션이 세션 키를 사용하여 데이터를 암호화했음을 나타냅니다.

드라이버의 CreateCryptoSession 함수가 이전에 D3DCRYPTOTYPE_AES128_CTR 설정된 D3DDDIARG_CREATECRYPTOSESSION 구조체의 CryptoType 멤버를 사용하여 암호화 세션을 만든 경우 D3DDDIARG_DECRYPTIONBLTpIV 멤버는 DXVADDI_PVP_HW_IV 구조를 가리키고 애플리케이션이 버퍼를 암호화하는 데 사용한 초기화 벡터를 포함합니다. 드라이버의 DecryptionBlt 함수는 초기화 벡터가 이전에 동일한 콘텐츠 키(또는 콘텐츠 키를 사용하지 않는 경우 세션 키)에 사용되었다고 판단되면 실패해야 합니다. 애플리케이션은 애플리케이션이 암호화하는 각 버퍼에 대해 DXVADDI_PVP_HW_IV 구조의 IV 멤버를 증가시켜야 합니다. 따라서 IV 멤버가 DecryptionBlt에 전달된 이전 IV 값보다 작거나 같으면 드라이버의 DecryptionBlt 함수가 실패할 수 있습니다.

드라이버와 하드웨어가 부분적으로 암호화된 버퍼를 지원하는 경우 D3DDDIARG_DECRYPTIONBLTpEncryptedBlockInfo 멤버는 암호화된 버퍼 부분과 암호화되지 않은 부분을 나타냅니다. 전체 버퍼가 암호화된 경우 pEncryptedBlockInfoNULL이어야 합니다.

DecryptionBlt은 하위 사각형을 작성할 수 없습니다.

Direct3D 런타임은 D3DDDIARG_DECRYPTIONBLT 구조체의 SrcSubResourceIndex 멤버가 지정한 원본 표면이 시스템 메모리에 있고 늘어나고 색 공간 변환이 수행되지 않는지 확인합니다. 애플리케이션은 시스템 메모리 버퍼가 제대로 정렬되고 버퍼의 크기가 대상 표면과 일치하는지 확인해야 합니다. 드라이버는 메모리 맞춤 및 버퍼 크기(D3DDDIARG_DECRYPTIONBLT SrcResourceSize 멤버)를 확인하고 이러한 조건이 올바르지 않으면 실패해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 DecryptionBlt은 Windows 7 운영 체제부터 지원됩니다.
대상 플랫폼 데스크톱
머리글 d3dumddi.h(D3dumddi.h 포함)

추가 정보

CreateCryptoSession

D3DDDIARG_CREATECRYPTOSESSION

D3DDDIARG_DECRYPTIONBLT

D3DDDI_DEVICEFUNCS