Compartir a través de


Obtención de la cadena de certificados de controladores

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Para usar el Protocolo de protección de salida certificada (COPP), la aplicación primero debe compilar un gráfico directShow que incluya el filtro de representación de mezcla de vídeos (VMR-7 o VMR-9). El filtro de Video Renderer anterior no admite COPP. Antes de llamar a cualquier método COPP, la aplicación debe compilar un gráfico de reproducción de vídeo y conectar el descodificador al pin de entrada del filtro VMR. No es necesario reproducir el archivo de vídeo.

Después de compilar el gráfico, consulte vmR para la interfaz IAMCertifiedOutputProtection y, a continuación, llame a IAMCertifiedOutputProtection::KeyExchange. Este método devuelve un número aleatorio de 128 bits escrito como GUID, junto con un puntero a una matriz de bytes que contiene la cadena de certificados XML del controlador en formato UTF-8. En el código siguiente se muestra cómo obtener la cadena 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);
}

Uso del Protocolo de protección de salida certificada (COPP)