IAMCertifiedOutputProtection::KeyExchange 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 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 值。 可能的值包括以下值。

返回代码 说明
S_OK
成功。
E_UNEXPECTED
无效状态。 应用程序可能传递了意外数据,或者以错误的顺序调用 了 IAMCertifiedOutputProtection 方法。 如果发生此错误,应用程序应释放 VMR 的当前实例。
VFW_E_NO_COPP_HW
显示设备不支持 COPP;或 VMR 尚未连接到显示设备。
ERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE
没有监视器对应于显示设备。 如果显示模式发生更改,则会发生此错误;或者用户关闭监视器或删除监视器。

备注

图形驱动程序的证书包含驱动程序的公共加密密钥。

如果此方法返回E_UNEXPECTED,则应用程序应通过释放 VMR、创建 VMR 的新实例并在新实例上再次调用 KeyExchange 来创建新的 COPP 会话。

要求

   
最低受支持的客户端 具有 SP2 的 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 R2 [仅限桌面应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)
Library Strmiids.lib

另请参阅

IAMCertifiedOutputProtection 接口

使用认证输出保护协议 (COPP)