Partager via


Fonction COPPGetCertificateLength

L’exemple de fonction COPPGetCertificateLength récupère la taille, en octets, du certificat utilisé par le matériel graphique.

Syntaxe

HRESULT COPPGetCertificateLength(
  _In_  COPP_DeviceData pThis,
  _Out_ ULONG           *pCertificateLength
);

Paramètres

pThis [in]

  • Pointeur vers l’objet d’appareil COPP DirectX VA.

pCertificateLength [out]

  • Pointeur vers une variable qui reçoit la taille, en octets, du certificat utilisé par le matériel graphique.

Valeur retournée

Retourne zéro (S_OK ou DD_OK) en cas de réussite ; sinon, retourne un code d’erreur.

Remarques

Un appareil COPP DirectX VA doit être initialisé avant de recevoir un appel à sa fonction COPPGetCertificateLength. Autrement dit, la fonction COPPOpenVideoSession doit être appelée avant COPPGetCertificateLength. Si COPPGetCertificateLength est appelé avant COPPOpenVideoSession, COPPGetCertificateLength doit retourner E_UNEXPECTED.

Mappage de RenderMoComp à COPPGetCertificateLength

L’exemple de fonction COPPGetCertificateLength correspond directement à un appel au membre RenderMoComp de la structure DD_MOTIONCOMPCALLBACKS. Le membre RenderMoComp pointe vers la fonction de rappel DdMoCompRender fournie par le pilote d’affichage qui fait référence à la structure DD_RENDERMOCOMPDATA.

La fonction de rappel RenderMoComp est appelée sans que la fonction BeginMoCompFrame ou EndMoCompFrame fournie par le pilote d’affichage soit appelée en premier.

La structure DD_RENDERMOCOMPDATA est remplie comme suit.

Membre Valeur
dwNumBuffers Zéro.
lpBufferInfo NULL.
dwFunction DXVA_COPPGetCertificateLengthFnCode constante (définie dans dxva.h).
lpInputData NULL.
lpOutputData Pointeur vers une variable de type ULONG.

Exemple de code

Le code suivant fournit un exemple de la façon dont vous pouvez implémenter votre fonction COPPGetCertificateLength :

HRESULT
COPPGetCertificateLength(
    COPP_DeviceData* pThis,
    DWORD* pCertificateLength
    )
{
    if (pThis->m_COPPDevState != COPP_OPENED) {
        return E_UNEXPECTED;
    }
    *pCertificateLength = sizeof(TestCert);
    pThis->m_COPPDevState = COPP_CERT_LENGTH_RETURNED;
    return NO_ERROR;
}

Configuration requise

Plateforme cible Version
Desktop (Expérience utilisateur) Cette fonction s’applique uniquement à Windows Server 2003 avec SP1 et versions ultérieures, et à Windows XP avec SP2 et versions ultérieures.