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