次の方法で共有


使用制限の分野

手記

このトピックは Windows 7 以降に適用されます。

 

使用分野の 制限は、特定のテクノロジのライセンスの使用方法を制限する規定です。

Media Foundation には、Media Foundation 変換 (MFT) 、特にコーデックに使用フィールド制限を適用するためのメカニズムが用意されています。 このメカニズムでは、アプリケーションが MFT とのハンドシェイクを実行するまで、MFT はアプリケーションによる独自の使用をブロックする必要があります。 Media Foundation ではハンドシェイクは定義されません。通常、何らかの暗号化交換が含まれます。

登録と列挙

MFT に使用フィールド制限がある場合は、MFT を登録するときに MFT_ENUM_FLAG_FIELDOFUSE フラグを設定します。 このフラグは、次の MFT 登録 API に適用されます。

既定では、このフラグに登録されている MFT は列挙結果から除外されます。 使用フィールド制限がある MFT を列挙するには、MFTEnumEx呼び出し、Flags パラメーターに MFT_ENUM_FLAG_FIELDOFUSE フラグを指定します。 次の図は、このプロセスを示しています。

mft とレジストリ図

MFTEnum 関数は、使用フィールド制限がある MFT を常に除外します。

MFT のロック解除

使用フィールド制限で MFT を使用するには、次の手順を実行します。

  1. アプリケーションは、IMFFieldOfUseMFTUnlock インターフェイスを実装します。
  2. IMFFieldOfUseMFTUnlock::Unlock メソッドは、MFT の IUnknown インターフェイスへのポインターを受け取ります。
  3. Unlock メソッドでは、アプリケーションは、MFT によって定義されている任意のメカニズムを使用して、必要なハンドシェイクを実行します。 この手順は、Media Foundation API では定義されていません。
  4. Unlock メソッドが成功した場合、MFT はロックを解除します。

アプリケーションは、MFT_FIELDOFUSE_UNLOCK_Attribute 属性を設定して、IMFFieldOfUseMFTUnlockポインターを指定します。 アプリケーションでデコーダーまたはエンコード パイプラインを作成する方法に応じて、この属性を設定する方法はいくつかあります。

API フィールドのロックを解除する方法 -Of-Use
ソース リーダー アプリケーションで ソース リーダー を使用してメディア ファイルをデコードする場合は、構成パラメーターで MFT_FIELDOFUSE_UNLOCK_Attribute 属性を設定します。 ソース リーダー属性 を参照してください。
シンク ライター アプリケーションでシンク ライターを使用してメディア ファイルをエンコードする場合は、構成パラメーターで MFT_FIELDOFUSE_UNLOCK_Attribute 属性を設定します。 シンク ライター属性 を参照してください。
高速トランスコード アプリケーションで高速トランスコード機能を使用してエンコード トポロジを作成する場合は、IMFTranscodeProfile::SetContainerAttributes呼び出すときに MFT_FIELDOFUSE_UNLOCK_Attribute を設定します。 高速トランスコード機能の詳細については、「トランスコード API」を参照してください。
位相幾何学 トポロジを直接作成する場合は、MFT_FIELDOFUSE_UNLOCK_Attribute をトポロジの属性として設定します。 「トポロジ属性 」を参照してください。
MFT Activation オブジェクト アプリケーションが使用するデコーダーまたはエンコーダーを直接列挙する場合は、MFTEnumEx 関数によって返される IMFActivate ポインターに MFT_FIELDOFUSE_UNLOCK_Attribute を設定します。
IMFActivate::ActivateObject を呼び出して MFT を作成する前に、属性を設定します。 アクティブ化オブジェクトは、MFT の作成時 IMFFieldOfUseMFTUnlock::Unlock を呼び出します。

 

次の図は、MFT アクティブ化オブジェクトと IMFFieldOfUseMFTUnlock インターフェイスの関係を示しています。

アプリケーション、アクティブ化オブジェクト、および mft に戻る矢印を持つ fou オブジェクトへの矢印を示す図

Media Foundation Transforms