IAMCertifiedOutputProtection::KeyExchange

 
Microsoft DirectShow 9.0

IAMCertifiedOutputProtection::KeyExchange

This topic applies only to Windows XP Service Pack 2 or later.

The KeyExchange method returns the graphics driver's certificate.

Syntax

  HRESULT KeyExchange(
    GUID *pRandom,
    BYTE **VarLenCertGH,
    DWORD *pdwLengthCertGH
);

Parameters

pRandom

[out]  Receives a 128-bit random number, generated by the graphics driver. Use this value in the IAMCertifiedOutputProtection::SessionSequenceStart method.

VarLenCertGH

[out]  Receives a pointer to a buffer containing the graphics driver's certificate. The method allocates the memory for the buffer. The caller must release the memory by calling CoTaskMemFree.

pdwLengthCertGH

[out]  Receives the length of the buffer returned in VarLenCertGH.

Return Values

Returns an HRESULT value. Possible values include the following.

Return Code Description
S_OK Success.
E_UNEXPECTED Invalid state. Possibly the application passed unexpected data, or called IAMCertifiedOutputProtection methods in the wrong order. If this error occurs, the application should release the current instance of the VMR.
VFW_E_NO_COPP_HW The display device does not support COPP; or the VMR has not connected to a display device yet.

Remarks

The graphics driver's certificate contains the driver's public encryption key.

If this method returns E_UNEXPECTED, the application should create a new COPP session by releasing the VMR, creating a new instance of the VMR, and calling KeyExchange again on the new instance.

Requirements

Header: Declared in Strmif.h; include Dshow.h.

Library: Use Strmiids.lib.

See Also