Compartilhar via


Método ID3D11VideoContext::EncryptionBlt (d3d11.h)

Lê dados criptografados de uma superfície protegida.

Sintaxe

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

Parâmetros

[in] pCryptoSession

Um ponteiro para a interface ID3D11CryptoSession da sessão criptográfica.

[in] pSrcSurface

Um ponteiro para a interface ID3D11Texture2D da superfície protegida.

[in] pDstSurface

Um ponteiro para a interface ID3D11Texture2D da superfície que recebe os dados criptografados.

[in] IVSize

O tamanho do buffer pIV , em bytes.

[in] pIV

Um ponteiro para um buffer que recebe o IV (vetor de inicialização). O chamador aloca esse buffer, mas o driver gera o IV.

Para criptografia AES-CTR de 128 bits, o pIV aponta para uma estrutura de D3D11_AES_CTR_IV . Quando o driver gera o primeiro IV, ele inicializa a estrutura para um número aleatório. Para cada IV subsequente, o driver simplesmente incrementa o membro IV da estrutura, garantindo que o valor sempre aumente. O aplicativo pode validar que o mesmo IV nunca é usado mais de uma vez com o mesmo par de chaves.

Retornar valor

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

Nem todos os drivers dão suporte a esse método. Para consultar os recursos do driver, chame ID3D11VideoDevice::GetContentProtectionCaps e marcar para o sinalizador D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK no membro Caps da estrutura D3D11_VIDEO_CONTENT_PROTECTION_CAPS.

Alguns drivers podem exigir uma chave separada para descriptografar os dados que são lidos novamente. Para marcar para esse requisito, chame GetContentProtectionCaps e marcar para o sinalizador D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY. Se esse sinalizador estiver presente, chame ID3D11VideoContext::GetEncryptionBltKey para obter a chave de descriptografia.

Esse método tem as seguintes limitações:

  • Não há suporte para leitura de subtângulos de volta.
  • Não há suporte para a leitura de superfícies parcialmente criptografadas.
  • A superfície protegida deve ser uma superfície simples fora da tela ou um destino de renderização.
  • A superfície de destino deve ser um recurso D3D11_USAGE_STAGING .
  • A superfície protegida não pode ser de várias superfícies.
  • Não há suporte para alongamento e conversão de colorspace.

Essa função não respeita um predicado D3D11 que pode ter sido definido.

Se o aplicativo usar consultas D3D11, essa função poderá não ser contabilizado com D3D11_QUERY_EVENT e D3D11_QUERY_TIMESTAMP ao usar níveis de recursos inferiores a 11. D3D11_QUERY_PIPELINE_STATISTICS não incluirá essa função para nenhum nível de recurso.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2012 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho d3d11.h

Confira também

ID3D11VideoContext