共用方式為


執行 DRM 個人化

[與此頁面相關聯的功能 Windows Media Format 11 SDK是舊版功能。 來源讀取器和接收寫入器已取代它。 來源讀取器和接收寫入器已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用來源讀取器和接收寫入器,而不是Windows 媒體格式 11 SDK。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。

個人化是更新用戶端電腦上的 DRM 元件、加密它,以及讓它成為唯一的程式。 當電腦個別化時,DRM 元件會系結至電腦,且無法解碼任何其他電腦上的內容。 Windows 媒體 DRM 用戶端擴充 API 支援在用戶端電腦上個別化 DRM 元件。

個別化是藉由呼叫 IWMDRMSecurity::P erformSecurityUpdate 方法來執行 。 您可以呼叫 PerformSecurityUpdate ,使其只有在伺服器上的版本比用戶端電腦上安裝的版本還新,或者您可以強制個別化而不考慮相對安全性版本。 視需要個別化的旗標是WMDRM_SECURITY_PERFORM_INDIV。 強制個別化的旗標WMDRM_SECURITY_PERFORM_FORCE_INDIV。

PerformSecurityUpdate 是非同步呼叫。 它會快速傳回,然後產生事件,以提供個別化程式的狀態資訊。 產生的大部分事件都是 MEWMDRMIndividualizationProgress 事件,而且每個事件都有相關聯的 IWMDRMIndividualizationStatus 介面。 若要取得狀態介面,您必須呼叫 IMFMediaEvent::GetValue 來擷取位於相同物件的 IUnknown 指標,然後查詢 IWMDRMIndividualizationStatus

您可以呼叫IWMDRMIndividualizeStatus::GetStatus來取得WM_INDIVIDUALIZE_STATUS結構的資料。 產生的每個事件都有自己的物件具有狀態,因此您必須每次取得事件值和查詢狀態介面的程式。

視下載大小而定,可能會有數十個或數百個 MEWMDRMIndividualizationProgress 事件。 當個別化程式完成時,會產生 MEWMDRMIndividualizationCompleted 事件。

完成個人化時,唯一會反映新個別化狀態的現有物件是繼承自 IWMDRMSecurity的物件。 所有其他現有物件都不會更新。 您必須釋放並重新建立任何其他物件,以便它們反映新的個別化狀態。

DRM 個人化範例

程式設計指南

使用媒體基礎事件模型

Windows 媒體 DRM 個人化最佳做法