Abrufen der Treiberzertifikatkette

Um das Certified Output Protection Protocol (COPP) verwenden zu können, muss die Anwendung zunächst ein DirectShow-Diagramm erstellen, das den Filter "Video Mixing Render" (VMR-7 oder VMR-9) enthält. Der ältere Videorendererfilter unterstützt COPP nicht. Vor dem Aufrufen von COPP-Methoden muss die Anwendung ein Videowiedergabediagramm erstellen und den Decoder mit dem Eingabepin des VMR-Filters verbinden. Es ist nicht erforderlich, die Videodatei wiederzuspielen.

Fragen Sie nach dem Erstellen des Diagramms die VMR für die IAMCertifiedOutputProtection-Schnittstelle ab, und rufen Sie dann IAMCertifiedOutputProtection::KeyExchangeauf. Diese Methode gibt eine 128-Bit-Zufallszahl zurück, die als GUID typisiert ist, zusammen mit einem Zeiger auf ein Bytearray, das die XML-Zertifikatkette des Treibers im UTF-8-Format enthält. Der folgende Code zeigt, wie Sie die Zertifikatkette abrufen.

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);
}

Verwenden von Certified Output Protection Protocol (COPP)