DrmCreateContentMixed 関数 (drmk.h)

関数は DrmCreateContentMixed 、複数のストリームからの混合コンテンツを含む KS オーディオ ストリームを識別する DRM コンテンツ ID を作成します。

構文

NTSTATUS DrmCreateContentMixed(
  [in]  PULONG paContentId,
  [in]  ULONG  cContentId,
  [out] PULONG pMixedContentId
);

パラメーター

[in] paContentId

DRM コンテンツ ID の配列へのポインター。 各配列要素は ULONG 型で、保護された KS オーディオ ストリームを表すコンテンツ ID を含みます。 cContentId が 0 の場合、paContentIDNULL にすることができます。 コンテンツ ID が 0 の場合は、既定の DRM コンテンツ権限を持つオーディオ ストリームを表す特別な値です ( 「DEFINE_DRMRIGHTS_DEFAULT」を参照)。

[in] cContentId

paContentId 配列内の DRM コンテンツ ID の数を指定します。 配列には、0 個以上のコンテンツ ID を保持できます。

[out] pMixedContentId

複合コンテンツ ID の出力ポインター。 このパラメーターは、関数が複合 KS オーディオ ストリームの新しいコンテンツ ID を書き込む呼び出し元によって割り当てられた ULONG 変数を指します。 cContentId が 0 の場合、関数は既定の DRM コンテンツ権限を新しいコンテンツ ID に割り当てます。

戻り値

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

注釈

KS オーディオ フィルターは 関数を DrmCreateContentMixed 呼び出して、複合ストリームの DRM コンテンツ ID を取得します。 このフィルターは、コンテンツ ID が paContentId 配列に一覧表示されている KS オーディオ ストリームを混在させることによって、このストリームを生成します。 このミキサー入力のストリームのコンテンツ ID の一覧を指定すると、関数は複合ストリームのコンテンツ権限を計算し、そのストリームに新しいコンテンツ ID を割り当てます。

呼び出し元がコンテンツ ID を指定しない場合 ( つまり、cContentId が 0 の場合)、関数は、複合ストリームを識別するために作成するコンテンツ ID に既定のコンテンツ権限を割り当てます。

から DrmCreateContentMixedコンテンツ ID を取得した後、呼び出し元は DrmGetContentRights を呼び出すことによって、コンテンツ ID に割り当てられたコンテンツ権限を取得できます。

複合オーディオ ストリームのコンポーネントのコンテンツ権限を変更した後、ストリームを混在させる KS オーディオ フィルターは を呼び出 DrmCreateContentMixed して、複合オーディオ ストリームの新しいコンテンツ ID を取得する必要があります。 DrmCreateContentMixedは、paContentId 配列で指定された個々のコンテンツ ID に割り当てられる最も制限の厳しいコンテンツ権限を決定し、これらの権限を新しいコンテンツ ID に割り当てます。

KS オーディオ フィルターが を使用して作成した DrmCreateContentMixedコンテンツ ID の使用を終了した後、フィルターは DrmDestroyContent を呼び出してコンテンツ ID を削除する必要があります。 ただし、古いコンテンツ ID を削除する前に、KS オーディオ フィルターは、以前に古いコンテンツ ID を転送したすべてのストリームに新しいコンテンツ ID を最初に正常に転送する必要があります。 KS オーディオ フィルターは、 DrmForwardContentToXxx 関数を呼び出してコンテンツ ID を転送します。

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

要件

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

こちらもご覧ください

DEFINE_DRMRIGHTS_DEFAULT

DrmDestroyContent

DrmForwardContentToDeviceObject

DrmForwardContentToInterface

DrmGetContentRights

IDrmPort::CreateContentMixed

PcCreateContentMixed