PFND3D11_1DDI_DECRYPTIONBLT função de retorno de chamada (d3d10umddi.h)
Grava dados criptografados em uma superfície protegida. Essa função será chamada somente se D3D11_1DDI_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT estiver definido no membro Caps da estrutura D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS .
Sintaxe
PFND3D11_1DDI_DECRYPTIONBLT Pfnd3d111DdiDecryptionblt;
void Pfnd3d111DdiDecryptionblt(
D3D10DDI_HDEVICE hDevice,
D3D11_1DDI_HCRYPTOSESSION hCryptoSession,
D3D10DDI_HRESOURCE hSrcResource,
D3D10DDI_HRESOURCE hDstResource,
const D3D11_1DDI_ENCRYPTED_BLOCK_INFO *pEncryptedBlockInfo,
UINT ContentKeySize,
const VOID *pContentKey,
UINT IVSize,
const VOID *pIV
)
{...}
Parâmetros
hDevice
Um identificador para o dispositivo de exibição (contexto gráfico).
hCryptoSession
Um identificador para os dados privados do driver para a sessão criptográfica. Esse identificador foi criado pelo runtime do Direct3D e passado para o driver na chamada para a função CreateCryptoSession .
hSrcResource
Um identificador para o recurso que contém os dados de origem.
hDstResource
Um ponteiro para o recurso em que os dados criptografados devem ser gravados.
pEncryptedBlockInfo
Um ponteiro para uma estrutura D3D11_1DDI_ENCRYPTED_BLOCK_INFO que descreve as partes do buffer criptografadas.
ContentKeySize
O tamanho, em bytes, da chave de conteúdo.
pContentKey
Um ponteiro para um bloco de memória que contém a chave de conteúdo necessária para descriptografar os dados de transferência de bloco de bits (bitblt).
Se pContentKey não estiver definido como NULL, os dados do buffer serão criptografados usando a chave de conteúdo especificada. Os dados dessa chave são criptografados usando a chave de sessão com o algoritmo AES-ECB.
Se pContentKey for NULL, o adaptador gráfico não exigirá uma chave de conteúdo separada para descriptografar os dados. Nesse caso, a chave de sessão é usada para descriptografar os dados.
IVSize
O tamanho, em bytes, do iv (vetor de inicialização).
pIV
Um ponteiro para um bloco de memória que contém o vetor de inicialização necessário para descriptografar os dados bitblt. Para obter mais informações, consulte a seção Comentários.
Se pIV for NULL, o adaptador gráfico não exigirá um vetor de inicialização separado para descriptografar os dados. Ou seja, a chave de sessão é usada para descriptografar os dados.
Retornar valor
Nenhum
Comentários
Para criptografia AES-CTR de 128 bits, o parâmetro pIV aponta para uma estrutura de D3D11_1DDI_AES_CTR_IV alocada pelo aplicativo. No entanto, o conteúdo real dessa estrutura é preenchido pelo driver ou adaptador gráfico. Quando o primeiro IV é gerado, o driver ou adaptador inicializa o membro IV dessa estrutura para um número aleatório. Para cada IV subsequente, o chamador incrementa o membro IV , garantindo que o valor sempre aumente. Esse procedimento permite que o aplicativo valide se o mesmo IV nunca é usado mais de uma vez com o mesmo par de chaves.
Para outros tipos de criptografia, uma estrutura diferente pode ser usada ou a criptografia pode não usar um IV.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 |
Servidor mínimo com suporte | Windows Server 2012 |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | d3d10umddi.h (inclua D3d10umddi.h) |