次の方法で共有


DrmAddContentHandlers 関数 (drmk.h)

この関数は DrmAddContentHandlers 、保護されたコンテンツを処理する関数の一覧をシステムに提供します。

構文

NTSTATUS DrmAddContentHandlers(
  [in] ULONG ContentId,
  [in] PVOID *paHandlers,
  [in] ULONG NumHandlers
);

パラメーター

[in] ContentId

DRM コンテンツ ID を指定します。 このパラメーターは、保護された KS オーディオ ストリームを識別します。

[in] paHandlers

関数ポインターの配列へのポインター。 各配列要素は、コンテンツ ハンドラーを指します。

[in] NumHandlers

paHandlers 配列内の関数ポインターの数を指定します。

戻り値

DrmAddContentHandlers は、呼び出しが成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合は、適切なエラー コードを返します。

注釈

保護されたコンテンツがデータ パスを通過することを許可する前に、システムはデータ パスがセキュリティで保護されていることを確認します。 これを行うために、システムは、データ パスの上流端から下流に移動するデータ パス内の各モジュールを認証します。 各モジュールが認証されると、そのモジュールはデータ パス内の次のモジュールに関するシステム情報を提供して、認証もできるようにします。 正常に認証するには、モジュールのバイナリ ファイルに DRM 準拠として署名する必要があります。

2 つの隣接するモジュールが IoCallDriver 関数またはダウンストリーム モジュールの COM インターフェイスを介して相互に通信する場合、アップストリーム モジュールは、それぞれ DrmForwardContentToInterface または DrmForwardContentToDeviceObject 関数を呼び出して、ダウンストリーム モジュールに関する情報をシステムに提供します。 ただし、2 つのモジュールで他の種類のインターフェイスを使用して通信する場合、アップストリーム モジュールは代わりに 関数を DrmAddContentHandlers 呼び出します。

paHandlers 配列には、ダウンストリーム モジュール内のエントリ ポイントへの関数ポインターが含まれています。 DrmAddContentHandlers は、これらの関数を実装するモジュールを認証します。 (エントリ ポイントが複数のモジュールに分散されている場合、関数はこれらすべてのモジュールを認証します)。この配列のベンダー定義関数は、関数を呼び出すモジュールと関数を実装するモジュールの両方で理解されるインターフェイスを構成します。 DrmAddContentHandlers では、これらの関数は直接呼び出されません。

アップストリーム モジュールは、この目的のために paHandlers 配列の関数のいずれかを使用して、コンテンツ ID とコンテンツ権限の両方をダウンストリーム モジュールに渡すことができます。 ダウンストリーム モジュールには、保護されたコンテンツを送信するモジュールのシステムにアドバイスするコンテンツ ID が必要です。

DrmAddContentHandlers は、PcAddContentHandlers および IDrmPort2::AddContentHandlers と同じ関数を実行します。 詳細については、「 DRM 関数とインターフェイス」を参照してください。

要件

要件
対象プラットフォーム ユニバーサル
Header drmk.h (Drmk.h を含む)
Library Drmk.lib
IRQL PASSIVE_LEVEL

こちらもご覧ください

DrmForwardContentToDeviceObject

DrmForwardContentToInterface

IDrmPort2::AddContentHandlers

IoCallDriver

PcAddContentHandlers