Compartilhar via


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.

Nota Se todo o buffer for criptografado, pEncryptedBlockinfo deverá ser definido como NULL.
 

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.

Observação  

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.

Nota Essa função não respeita um predicado direct3D versão 11 que pode ter sido definido.
 

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)

Confira também

D3D11_1DDI_AES_CTR_IV

D3D11_1DDI_ENCRYPTED_BLOCK_INFO

D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS