IAMCertifiedOutputProtection::KeyExchange 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
KeyExchange 方法返回图形驱动程序的证书。
语法
HRESULT KeyExchange(
[out] GUID *pRandom,
[out] BYTE **VarLenCertGH,
[out] DWORD *pdwLengthCertGH
);
参数
[out] pRandom
接收由图形驱动程序生成的 128 位随机数。 在 IAMCertifiedOutputProtection::SessionSequenceStart 方法中使用此值。
[out] VarLenCertGH
接收指向包含图形驱动程序证书的缓冲区的指针。 方法为缓冲区分配内存。 调用方必须通过调用 CoTaskMemFree 释放内存。
[out] pdwLengthCertGH
接收 VarLenCertGH 中返回的缓冲区的长度。
返回值
返回 HRESULT 值。 可能的值包括以下值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
无效状态。 应用程序可能传递了意外数据,或者以错误的顺序调用 了 IAMCertifiedOutputProtection 方法。 如果发生此错误,应用程序应释放 VMR 的当前实例。 |
|
显示设备不支持 COPP;或 VMR 尚未连接到显示设备。 |
|
没有监视器对应于显示设备。 如果显示模式发生更改,则会发生此错误;或者用户关闭监视器或删除监视器。 |
备注
图形驱动程序的证书包含驱动程序的公共加密密钥。
如果此方法返回E_UNEXPECTED,则应用程序应通过释放 VMR、创建 VMR 的新实例并在新实例上再次调用 KeyExchange
来创建新的 COPP 会话。
要求
最低受支持的客户端 | 具有 SP2 的 Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |
Library | Strmiids.lib |