Share via


DRM の関数とインターフェイス

システム ドライバー コンポーネント Drmk.sys および Portcls.sys は、カーネル ストリーミング オーディオ コンテンツのデジタル著作権を管理するためにドライバーが使用する DRM 関数とインターフェイスのコレクションを実装します。 Drmk.sys コンポーネントは多数の DrmXxx 関数を実装し、Portcls.sys は DRM 固有の PcXxx 関数のセットと、IDrmPort および IDrmPort2 インターフェイスも実装します。

以下の DRM 関数を使用できます。

DrmAddContentHandlers

保護されたコンテンツを処理するための関数の一覧で構成されるドライバー インターフェイスをシステムに提供します。 DrmCreateContentMixed

複数の入力ストリームからミックスされたコンテンツを含む KS オーディオ ストリームを識別する、DRM コンテンツ ID を作成します。 DrmDestroyContent

DRM コンテンツ ID を削除します。 DrmForwardContentToDeviceObject

ドライバーを認証し、システムが保護されたコンテンツを含むストリームに割り当てた DRM コンテンツ ID とコンテンツ著作権を送信します。 DrmForwardContentToFileObject

廃止された関数。 DrmForwardContentToInterface

ドライバー オブジェクトを認証し、システムが保護されたコンテンツを含むストリームに割り当てた DRM コンテンツ ID とコンテンツ著作権を送信します。 DrmGetContentRights

システムが DRM コンテンツ ID に割り当てた DRM コンテンツ著作権を取得します。 このリストの関数は、ヘッダー ファイル Drmk.h で宣言されています。 カーネル モード DRMK システム ドライバー (Drmk.sys) は、これらの関数のエントリ ポイントをエクスポートします。

Windows XP 以降では、PortCls システム ドライバー (Portcls.sys) は、同じ DRM 関数のセットに対して異なるエントリ ポイントのセットをエクスポートします。 PortCls 関数の名前は、Drm の代わりにプレフィックス Pc を使用する点を除き、前の一覧の名前と似ています。

PcAddContentHandlers

PcCreateContentMixed

PcDestroyContent

PcForwardContentToDeviceObject

PcForwardContentToFileObject

PcForwardContentToInterface

PcGetContentRights

これらの関数名は、ヘッダー ファイル Portcls.h で宣言されています。 Portcls.sys のエントリ ポイントは、Drmk.sys で対応する関数を呼び出す以外には何も行いません。 PortCls エントリ ポイントは、Portcls.sys に既に接続されているオーディオ ドライバーが明示的に Drmk.sys を読み込む必要がないように、便宜上提供されます。

Windows XP 以降では、IDrmPort インターフェイスと IDrmPort2 インターフェイスのメソッドと同じ関数セットも公開されます。

IDrmPort2::AddContentHandlers

IDrmPort::CreateContentMixed

IDrmPort::DestroyContent

IDrmPort2::ForwardContentToDeviceObject

IDrmPort::ForwardContentToFileObject

IDrmPort::ForwardContentToInterface

IDrmPort::GetContentRights

IDrmPort インターフェイスと IDrmPort2 インターフェイスは、ヘッダー ファイル Portcls.h で宣言され、Portcls.sys で実装されます。 これらのメソッドは、Drmk.sys で対応する関数を呼び出す以外には何も行いません。 ミニポート ドライバーは、このインターフェイスのポート ドライバーをクエリすることによって、IDrmPortx インターフェイスへの参照を取得します。 対応する DrmXxx または PcXxx 関数の代わりに IDrmPortx インターフェイスを使用する利点は、ドライバーがこのクエリを使用して、オペレーティング システムのバージョンが DRM をサポートしているかどうかを実行時に判断できることです。 これにより、DRM をサポートする新しいバージョンの Windows と、サポートされていない古いバージョンの両方で実行できる 1 つのドライバーを記述するタスクが簡略化されます。 IDrmPort2IDrmPort から派生し、2 つの追加メソッドを提供します。

WaveCyclic および WavePci ポート ドライバーは、対応するミニポート ドライバーでサポートされている場合は、IDrmAudioStream インターフェイスを使用します。 ポート ドライバーは、IDrmAudioStream::SetContentId メソッドを呼び出して、オーディオ ストリーム内のデジタル コンテンツに DRM 保護を割り当てます。

ヘッダー ファイル Drmk.h で定義されている DEFINE_DRMRIGHTS_DEFAULT マクロは、DRMRIGHTS 構造体のメンバーを既定値に初期化します。