出力保護レベルの操作
[このページに関連付けられている機能である 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 によって許可されている必要があります。 たとえば、保護されたオーディオの一部のライセンスでは、安全なオーディオ パスを使用して再生する必要がある場合があります。
出力保護レベルを評価するためのリーダーの構成
リーダーに読み込まれたファイルの OPL をチェックする前に、IWMDRMReader2::SetEvaluateOutputLevelLicenses メソッドを呼び出し、fEvaluate パラメーターに TRUE を渡す必要があります。 このメソッドを呼び出さない場合、OPL を必要とするライセンスはアプリケーションに表示されません。
コピー出力保護レベルの評価
コピー アクションの出力保護レベルを取得するには、 IWMDRMReader2::GetCopyOutputLevels メソッドを 呼び出します。 呼び出しから受信したデータは、 DRM_COPY_OPL 構造に格納されます。 構造体には、ライセンスのコピー アクションの最小出力レベルを指定する基本出力保護レベルが含まれています。 ただし、DRM_COPY_OPL構造には、2 つのテクノロジ識別子の一覧も含まれています。1 つは、ベースよりも低い OPL で評価される許可されたテクノロジ用と、基本 OPL 以上の評価を受けたがライセンスによって制限されているテクノロジ用です。 アプリケーションが使用しているテクノロジがライセンスによって許可されるように、包含と除外をチェックする必要があります。
再生出力保護レベルの評価
再生アクションの出力保護レベルを取得するには、 IWMDRMReader2::GetPlayOutputLevels メソッドを 呼び出します。 呼び出しから受信したデータは、 DRM_PLAY_OPL 構造に格納されます。 構造体には、他のいくつかの構造体が含まれています。 再生アクションの基本出力保護レベルは、さまざまな形式でコンテンツを再生するために必要な最小 OPL を定義するDRM_MINIMUM_OUTPUT_PROTECTION_LEVELS構造 (DRM_PLAY_OPL の minOPL メンバー) に格納されます。 アプリケーションが提供する出力形式の種類のメンバーをチェックする必要があります。
DRM_PLAY_OPL構造では、必要なダウンサンプリングと許可されるビデオ出力保護識別子という 2 種類の制限が定義されています。
必要なダウンサンプリングは、出力テクノロジ識別子 (DRM_PLAY_OPL の oplIdDownsample メンバー) の一覧として定義されます。この識別子を使用すると、コンテンツが最初に低いビット レートにダウンサンプリングされた場合にのみ、再生用のコンテンツを受信できます。
許可されるビデオ出力保護識別子は、それぞれの構成情報を含むビデオ出力テクノロジの一覧として定義されます。
複数のライセンスの処理
一部のファイルには、ローカル ライセンス ストアに複数のライセンスが関連付けられている場合があります。 読み取っているファイルの OPL を評価する場合は、IWMDRMReader2::TryNextLicense メソッドを呼び出して、追加のライセンスをチェックできます。 実行するアクションを許可するものが見つかるまで、または TryNextLicense がDRM_S_FALSEを返すまで、ライセンスの試行を続ける必要があります。これは、ライセンスがそれ以上ないことを示します。
場合によっては、アプリケーションでサポートできない OPL を必要とするライセンスがファイルに関連付けられている場合があります。 このような場合は、OPL を指定しないライセンスが存在する可能性があるため、追加のライセンスをチェックすることが重要です。
メモ DRM は、この SDK の x64 ベースのバージョンではサポートされていません。
関連トピック