DrmForwardContentToInterface 関数 (drmk.h)
関数は DrmForwardContentToInterface
、呼び出し元が保護されたコンテンツを転送するオブジェクトの COM インターフェイスへのポインターを受け取ります。 この関数は、オブジェクトを認証し、システムが保護されたコンテンツに割り当てたコンテンツ ID と DRM 権限をオブジェクトに送信します。
構文
NTSTATUS DrmForwardContentToInterface(
[in] ULONG ContentId,
[in] PUNKNOWN pUnknown,
[in] ULONG NumMethods
);
パラメーター
[in] ContentId
DRM コンテンツ ID を指定します。 このパラメーターは、保護された KS オーディオ ストリームを識別します。
[in] pUnknown
KS オーディオ フィルターの KS オーディオ ストリーム データを直接受信する COM インターフェイスへのポインター。
[in] NumMethods
pUnknown が指す COM インターフェイス内のメソッドの合計数を指定します。これには、基本インターフェイス内のすべてのメソッドが含まれます。
戻り値
DrmForwardContentToInterface
は、呼び出しが成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、メソッドは適切なエラー コードを返します。 次の表は、考えられる戻り状態コードの一部を示しています。
リターン コード | 説明 |
---|---|
|
pUnknown に関連付けられている KS オーディオ ストリームが、ContentId に割り当てられている DRM コンテンツ権限をサポートしていないことを示します。 |
注釈
保護されたコンテンツがデータ パスを通過できるようにする前に、システムはデータ パスがセキュリティで保護されていることを確認します。 これを行うために、システムは、データ パスの上流端からダウンストリームに移動するデータ パス内の各モジュールを認証します。 各モジュールが認証されると、そのモジュールはデータ パス内の次のモジュールに関するシステム情報を提供して、認証することもできます。 正常に認証するには、モジュールのバイナリ ファイルに DRM 準拠として署名する必要があります。
データ パス内の 2 つの隣接するモジュールがダウンストリーム モジュールの COM インターフェイスを介して相互に通信する場合、アップストリーム モジュールは 関数を DrmForwardContentToInterface
呼び出して、COM インターフェイスへのポインターをシステムに提供します。 (2 つのモジュールが IoCallDriver 関数またはダウンストリーム モジュールのコンテンツ ハンドラーを介して通信する場合、アップストリーム モジュールは代わりに DrmForwardContentToDeviceObject または DrmAddContentHandlers を呼び出します)。
DrmForwardContentToInterface
は、pUnknown が指す COM インターフェイスのメソッドを実装するモジュールを認証します。 (メソッドが複数のモジュール間で分散されている場合、関数はこれらすべてのモジュールを認証します)。このベンダー定義インターフェイスは、インターフェイスを呼び出すモジュールとインターフェイスを実装するモジュールの両方で理解する必要があります。 DrmForwardContentToInterface
は、 IUnknown から派生する以外に、このインターフェイスに関する仮定を行いません。
DrmForwardContentToInterface
ドライバーまたはライブラリの認証に成功すると、次の処理が行われます。
-
pUnknown インターフェイスの IDrmAudioStream インターフェイスに対してクエリを実行します。 は pUnknown インターフェイスのすべてのメソッドを認証します
DrmForwardContentToInterface
が、基本の IUnknown メソッド以外の pUnknown インターフェイス内のメソッドは呼び出しません。 -
IDrmAudioStream::SetContentId を呼び出して、オーディオ ストリームの DRM コンテンツ ID と DRM コンテンツ権限を設定します。 を返す前に、
DrmForwardContentToInterface
IDrmAudioStream インターフェイスを解放します。
DrmForwardContentToInterface
は、 PcForwardContentToInterface および IDrmPort::ForwardContentToInterface と同じ関数を実行します。 詳細については、「 DRM 関数とインターフェイス」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | drmk.h (Drmk.h を含む) |
Library | Drmk.lib |
IRQL | PASSIVE_LEVEL |
こちらもご覧ください
DrmForwardContentToDeviceObject