Condividi tramite


Funzione COPPGetCertificateLength

La funzione COPPGetCertificateLength di esempio recupera le dimensioni, in byte, del certificato usato dall'hardware grafico.

Sintassi

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

Parametri

pThis [in]

  • Puntatore all'oggetto dispositivo COPP DirectX VA.

pCertificateLength [out]

  • Puntatore a una variabile che riceve le dimensioni, in byte, del certificato usato dall'hardware grafico.

Valore restituito

Restituisce zero (S_OK o DD_OK) se riuscito; in caso contrario, restituisce un codice di errore.

Commenti

Un dispositivo COPP DirectX VA deve essere inizializzato prima di ricevere una chiamata alla relativa funzione COPPGetCertificateLength. Vale a dire, la funzione COPPOpenVideoSession deve essere chiamata prima di COPPGetCertificateLength. Se COPPGetCertificateLength viene chiamato prima di COPPOpenVideoSession, COPPGetCertificateLength deve restituire E_UNEXPECTED.

Mapping di RenderMoComp a COPPGetCertificateLength

La funzione COPPGetCertificateLength di esempio esegue il mapping diretto a una chiamata al membro RenderMoComp della struttura DD_MOTIONCOMPCALLBACKS. Il membro RenderMoComp punta alla funzione di callback DdMoCompRender fornita dal driver visualizzato che fa riferimento alla struttura DD_RENDERMOCOMPDATA.

La funzione callback RenderMoComp viene chiamata senza la funzione BeginMoCompFrame fornita dal driver visualizzato o dalla funzione EndMoCompFrame chiamata prima.

La struttura DD_RENDERMOCOMPDATA viene riempita come indicato di seguito.

Membro Valore
dwNumBuffers Zero.
lpBufferInfo NULL
dwFunction DXVA_COPPGetCertificateLengthFnCode costante (definita in dxva.h).
lpInputData NULL
lpOutputData Puntatore a una variabile tipizzata ULONG.

Codice di esempio

Il codice seguente fornisce un esempio di come è possibile implementare la funzione 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;
}

Requisiti

Piattaforma di destinazione Versione
Desktop Questa funzione si applica solo a Windows Server 2003 con SP1 e versioni successive e Windows XP con SP2 e versioni successive.