Share via


IDrmPort::CreateContentMixed メソッド (portcls.h)

CreateContentMixed メソッドは、いくつかの KS オーディオ ストリームの混合コンテンツを含む複合ストリームの DRM コンテンツ権限を計算します。 このメソッドは DrmCreateContentMixed 関数と同じ操作であり、そのパラメーター定義と戻り値も同じであることに注意してください。

構文

NTSTATUS CreateContentMixed(
  PULONG paContentId,
  ULONG  cContentId,
  PULONG pMixedContentId
);

パラメーター

paContentId

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

cContentId

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

pMixedContentId

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

戻り値

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

注釈

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

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

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

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

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

DrmCreateContentMixed は、PcCreateContentMixed および IDrmPort::CreateContentMixed と同じ関数を実行します。

要件

要件
Header portcls.h

こちらもご覧ください

IDrmPort