共用方式為


IAMCertifiedOutputProtection::KeyExchange 方法 (strmif.h)

[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 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)
程式庫 Strmiids.lib

另請參閱

IAMCertifiedOutputProtection 介面

使用認證輸出保護通訊協定 (COPP)