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 |