Obtendo a cadeia de certificados drivers
[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
Para usar o COPP (Certified Output Protection Protocol), o aplicativo primeiro deve criar um grafo do DirectShow que inclua o filtro de Renderização de Combinação de Vídeo (VMR-7 ou VMR-9). O filtro do Renderizador de Vídeo mais antigo não dá suporte ao COPP. Antes de chamar qualquer método COPP, o aplicativo deve criar um grafo de reprodução de vídeo e conectar o decodificador ao pin de entrada do filtro VMR. Não é necessário reproduzir o arquivo de vídeo.
Depois de criar o grafo, consulte a VMR para a interface IAMCertifiedOutputProtection e chame IAMCertifiedOutputProtection::KeyExchange. Esse método retorna um número aleatório de 128 bits digitado como GUID, juntamente com um ponteiro para uma matriz de bytes que contém a cadeia de certificados XML do driver no formato UTF-8. O código a seguir mostra como obter a cadeia de certificados.
GUID guidRandom;
BYTE *pbCertificateChain = NULL;
DWORD cbCertificateChainLen; // Size of the certificate chain, in bytes.
hr = pCOPP->KeyExchange(&guidRandom, &pbCertificateChain,
&cbCertificateChainLen);
if (SUCCEEDED(hr))
{
// TODO: Validate the certificate chain and get the driver's
// public key.
// When you are done, free the buffer that contains the
// certificate chain.
CoTaskMemFree(pbCertificateChain);
}
Tópicos relacionados