共用方式為


使用輸出保護層級

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

使用 Windows Media Rights Manager 10 SDK 建立的授權可以使用輸出保護層級來指定動作限制, (OPL) 。 OPL 可讓授權建立者只在具有特定技術的裝置上允許某些動作。 使用 OPL 的優點是,相較于舊版,您可以取得更多建立授許可權制的彈性。 此外,OPL 可擴充以容納未來的技術。 您可以使用 IWMDRMReader2 介面的 方法來支援應用程式中的這類授權。

若要讀取由指定 OPL 之授權所保護的檔案,您必須檢查 OPL 是否有所需的動作。 應用程式所使用的輸出技術必須由授權中的 OPL 允許。 例如,某些受保護音訊的授權可能需要您使用安全音訊路徑來播放它。

設定讀取器以評估輸出保護層級

您必須先呼叫IWMDRMReader2::SetEvaluateOutputLevelLicenses方法,並針對fEvaluate參數傳遞TRUE,才能檢查讀取器中載入的檔案的 OPL。 如果您未呼叫此方法,應用程式看不到需要 OPL 的授權。

評估複製輸出保護層級

若要取得複製動作的輸出保護層級,請呼叫 IWMDRMReader2::GetCopyOutputLevels 方法。 您從呼叫收到的資料會儲存在 DRM_COPY_OPL 結構中。 結構包含基底輸出保護層級,指定授權中複製動作的最小輸出層級。 不過,DRM_COPY_OPL結構也包含兩份技術識別碼清單:一個用於低於基底的允許技術,另一個用於評等為或高於基底 OPL 但受授許可權制的技術。 您必須檢查包含和排除專案,以確保授權允許您的應用程式正在使用的技術。

評估播放輸出保護層級

若要取得播放動作的輸出保護等級,請呼叫 IWMDRMReader2::GetPlayOutputLevels 方法。 您從呼叫收到的資料會儲存在 DRM_PLAY_OPL 結構中。 結構包含數個其他結構。 播放動作的基底輸出保護層級會儲存在DRM_MINIMUM_OUTPUT_PROTECTION_LEVELS結構中 (DRM_PLAY_OPL) 的 minOPL成員,這會定義以各種格式播放內容所需的最小 OPL。 您必須檢查成員,以取得應用程式所傳遞的輸出格式類型。

DRM_PLAY_OPL結構會定義兩種限制:必要的向下取樣和允許的視訊輸出保護識別碼。

必要的向下取樣定義為輸出技術識別碼清單, (DRM_PLAY_OPL的 oplIdDownsample成員) 使用時,只有在內容第一次向下取樣為較低的位元速率時,才能接收播放的內容。

允許的視訊輸出保護識別碼會定義為視訊輸出技術的清單,其中包含每個專案的組態資訊。

處理多個授權

某些檔案在本機授權存放區中可能會有多個相關聯的授權。 當您評估所讀取檔案的 OPL 時,您可以呼叫 IWMDRMReader2::TryNextLicense 方法來檢查是否有其他授權。 您應該繼續嘗試授權,直到您找到允許執行動作的授權,或直到 TryNextLicense 傳回DRM_S_FALSE為止,這表示沒有更多授權。

在某些情況下,檔案可能有相關聯的授權,需要您的應用程式無法支援的 OPL。 在這種情況下,請務必檢查是否有其他授權,因為授權可能存在但未指定 OPL。

注意 此 SDK 的 x64 型版本不支援 DRM。

啟用 DRM 支援

IWMDRMReader2 介面