保護されたコンテンツの処理
Windows Media Digital Rights Management (DRM) によって保護されたコンテンツを使用するアプリケーションまたはサービス プロバイダーを構築する場合は、Microsoft によって発行されたキーと証明書のペアが必要です。 この証明書を取得する場所については、「 開発用ツール」を参照してください。 保護されたコンテンツを処理する予定がない場合は、key.c という名前のファイルで、この SDK で提供されるダミー キーと証明書を使用できます。
DRM テクノロジによって保護されているファイルの場合、Windows Media デバイス マネージャーでは、そのファイル形式にセキュリティで保護されたコンテンツ プロバイダー (SCP) が存在する必要があります。 Microsoft では、WMA ファイルと WMV ファイル用の SCP モジュールを提供しています。 アプリケーションまたはサービス プロバイダーが DRM で保護された別の形式のコンテンツを処理する場合は、独自の SCP モジュールを指定する必要があります。 SCP モジュールは、 セキュリティで保護されたコンテンツ プロバイダーのすべてのインターフェイスを実装する COM オブジェクトです。
アプリケーションは、Windows Media DRM 10 for Portable Devices またはポータブル デバイス DRM (PDDRM) 上に構築されたデバイスに DRM で保護されたコンテンツを送信できます。 ただし、PDDRM 上に構築されたデバイス用のサービス プロバイダーのみを作成できます。ポータブル デバイス用の Windows Media DRM 10 上に構築されたデバイス用のサービス プロバイダーを作成することはできません。 これらの後者のデバイスでは、Microsoft 提供の MTP サービス プロバイダーのみを使用できます。
PDDRM 上に構築されたデバイスは、購入したコンテンツのライセンスのみをサポートできます。 有効期限の条件があるライセンスは、Windows Media DRM 10 for Portable Devices に基づいて構築されたデバイスでのみサポートされます。このデバイスには、セキュリティで保護されたクロックや個別化などの特別な要件があります。 Windows Media DRM 10 for Portable Devices SDK では、バージョン 10 テクノロジをサポートするためのデバイス要件について詳しく説明します。
DRM コンテンツをデバイスに送信する前に、アプリケーションでいくつかのことを確認する必要があります。
- デバイスが DRM テクノロジをサポートしていること。
- サポートされている DRM テクノロジのバージョン (バージョン 10 以前)。
- デバイスがバージョン 10 で構築されている場合、そのすべてのコンポーネントが最新の状態になります (セキュリティで保護されたクロックや個別化の要件など)。
これらの質問に回答するすべてのメソッド呼び出しは、クライアントによって行われ、Windows Media デバイス マネージャーとセキュリティで保護されたコンテンツ プロバイダー コンポーネントによって処理されます。サービス プロバイダーはこれらの呼び出しを処理しません。
デバイスがポータブル デバイス用の Windows Media DRM 10 をサポートしていない場合でも、保護されたコンテンツ (コンテンツ ライセンスとデバイスの設計によっては) を使用できる可能性がありますが、そのデバイスに送信されるコンテンツには、制限付きの使用ライセンス (時間の有効期限なしなど) が含まれます。
- デバイスが保護されたコンテンツを処理できるかどうか、および DRM コンポーネントを更新する必要があるかどうかをアプリケーションで検証する方法を示す例については、「 アプリケーションでの保護されたコンテンツの処理」を参照してください。
- 保護されたコンテンツを処理できるサービス プロバイダーの構築の詳細については、「 サービス プロバイダーでの保護されたコンテンツの処理」を参照してください。
注意
デバッガーがアタッチされた DRM で保護されたファイルを処理する場合、多くの Windows Media デバイス マネージャーファイル転送または権限要求メソッドは失敗します (多くの場合、不思議な HRESULT 値が使用されます)。 そのため、Windows フォームまたはログ ファイルへの出力のログ記録など、コードをデバッグする別の方法を使用する必要があります。 ログ オプションの詳細については、「ログの 有効化」を参照してください。 保護されたコンテンツでデバッガーを実行している場合、メソッドは DRM セクションのエラー コードに記載されているエラー コードの 1 つ、または不明なエラー コードを返します。 保護されたコンテンツまたはメソッドでデバッガーを実行するときに不思議な HRESULT 値が得られる場合は、DRM 保護が原因である可能性があります。
関連トピック