다음을 통해 공유


PFND3D11_1DDI_ENCRYPTIONBLT 콜백 함수(d3d10umddi.h)

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

구문

PFND3D11_1DDI_ENCRYPTIONBLT Pfnd3d111DdiEncryptionblt;

void Pfnd3d111DdiEncryptionblt(
  D3D10DDI_HDEVICE hDevice,
  D3D11_1DDI_HCRYPTOSESSION hCryptoSession,
  D3D10DDI_HRESOURCE hSrcResource,
  D3D10DDI_HRESOURCE hDstResource,
  UINT IVSize,
  const VOID *pIV
)
{...}

매개 변수

hDevice

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

hCryptoSession

암호화 세션에 대한 드라이버의 개인 데이터에 대한 핸들입니다. 이 핸들은 Direct3D 런타임에 의해 만들어졌으며 CreateCryptoSession 함수 호출에서 드라이버에 전달되었습니다.

hSrcResource

원본 데이터를 포함하는 리소스에 대한 핸들입니다.

hDstResource

암호화된 데이터를 쓸 리소스에 대한 포인터입니다.

IVSize

IV(초기화 벡터)의 크기(바이트)입니다.

pIV

비트blt 데이터를 암호화하는 데 필요한 초기화 벡터가 포함된 메모리 블록에 대한 포인터입니다. 자세한 내용은 주의 섹션을 참조하세요.

참고  

pIV가 NULL인 경우 그래픽 어댑터는 데이터를 암호화하기 위해 별도의 초기화 벡터가 필요하지 않습니다. 즉, 세션 키는 데이터를 암호화하는 데 사용됩니다.

 

반환 값

없음

설명

이 함수에는 다음과 같은 제한 사항이 있습니다.

  • 함수는 하위 영역 또는 부분적으로 암호화된 표면을 다시 읽을 수 없습니다.
  • 함수는 부분적으로 암호화된 버퍼를 다시 읽을 수 없습니다. 많은 하드웨어 기반 암호화 솔루션은 보호된 메모리에서 암호화되지 않은 읽기를 허용하지 않습니다.
  • 보호된 표면은 오프 스크린 일반 표면 또는 렌더링 대상이어야 합니다.
  • 대상 표면은 앞에서 설명한 대로 적절한 맞춤을 사용하여 만든 시스템 메모리 표면이어야 합니다.
  • 보호된 표면은 다중 샘플링할 수 없습니다.
  • 함수는 늘어나거나 색 공간 변환을 지원하지 않습니다.
128비트 AES-CTR 암호화의 경우 pIV 매개 변수는 애플리케이션에서 할당하는 D3D11_1DDI_AES_CTR_IV 구조를 가리킵니다. 그러나 이 구조체의 실제 콘텐츠는 드라이버 또는 그래픽 어댑터에 의해 채워집니다. 첫 번째 IV가 생성되면 드라이버 또는 어댑터는 이 구조체의 IV 멤버를 난수로 초기화합니다. 이후의 각 IV에 대해 호출자는 IV 멤버를 증가하여 값이 항상 증가하도록 합니다. 이 절차를 통해 애플리케이션은 동일한 IV가 동일한 키 쌍에서 두 번 이상 사용되지 않는지 확인할 수 있습니다.

다른 암호화 유형의 경우 다른 구조가 사용되거나 암호화가 IV를 사용하지 않을 수 있습니다.

참고 이 함수는 설정되었을 수 있는 Direct3D 버전 11 조건자를 적용하지 않습니다.
 

요구 사항

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

추가 정보

CreateCryptoSession

D3D11_1DDI_AES_CTR_IV