Freigeben über


Abrufen der Treiberzertifikatkette

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

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

Nachdem Sie das Diagramm erstellt haben, fragen Sie den VMR für die IAMCertifiedOutputProtection-Schnittstelle ab, und rufen Sie dann IAMCertifiedOutputProtection::KeyExchange auf. Diese Methode gibt eine als GUID eingegebene 128-Bit-Zufallszahl zusammen mit einem Zeiger auf ein Bytearray zurück, 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 des Certified Output Protection Protocol (COPP)