Win32 API 日本語リファレンス
ホームMedia.MediaFoundation › IDirect3DDevice9Video

IDirect3DDevice9Video

COM
IID26dc4561-a1ee-4ae7-96da-118a36c0ec95継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

グラフィックスドライバーが実装するコンテンツ保護および暗号化サービスをアプリケーションが利用できるようにします。このインターフェイスへのポインターを取得するには、D3D9Ex デバイスに対して QueryInterface を呼び出します。

メソッド 3

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetContentProtectionCaps(GUID* pCryptoType, GUID* pDecodeProfile, D3DCONTENTPROTECTIONCAPS* pCaps)

ディスプレイドライバーにコンテンツ保護機能を問い合わせます。

pCryptoTypeGUID*in

使用する暗号化の種類を指定する GUID へのポインター。次の GUID が定義されています。

D3DCRYPTOTYPE_AES128_CTR

128 ビットの Advanced Encryption Standard CTR モード (AES-CTR) ブロック暗号。

D3DCRYPTOTYPE_PROPRIETARY

独自の暗号化アルゴリズム。

pDecodeProfileGUID*inDirectX Video Acceleration 2 (DXVA-2) のデコードプロファイルを指定する GUID へのポインター。指定可能な値の一覧については、IDirectXVideoDecoderService::GetDecoderDeviceGuids を参照してください。DXVA-2 デコードを使用しない場合は、このパラメーターを NULL に設定します。
pCapsD3DCONTENTPROTECTIONCAPS*inoutD3DCONTENTPROTECTIONCAPS 構造体へのポインター。このメソッドは、ドライバーのコンテンツ保護機能をこの構造体に設定します。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 4 HRESULT CreateAuthenticatedChannel(D3DAUTHENTICATEDCHANNELTYPE ChannelType, IDirect3DAuthenticatedChannel9** ppAuthenticatedChannel, HANDLE* pChannelHandle)

Direct3D デバイスまたはグラフィックスドライバーと通信するためのチャネルを作成します。

ChannelTypeD3DAUTHENTICATEDCHANNELTYPEinチャネルの種類を、D3DAUTHENTICATEDCHANNELTYPE 列挙型のメンバーとして指定します。
ppAuthenticatedChannelIDirect3DAuthenticatedChannel9**outIDirect3DAuthenticatedChannel9 インターフェイスへのポインターを受け取ります。呼び出し元はこのインターフェイスを解放する必要があります。
pChannelHandleHANDLE*inoutチャネルのハンドルへのポインターを受け取ります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

ChannelType パラメーターが D3DAUTHENTICATEDCHANNEL_D3D9 の場合、このメソッドは Direct3D デバイスとのチャネルを作成します。この種類のチャネルは認証をサポートしません。

ChannelTypeD3DAUTHENTICATEDCHANNEL_DRIVER_SOFTWARE または D3DAUTHENTICATEDCHANNEL_DRIVER_HARDWARE の場合、このメソッドはグラフィックスドライバーとの認証済みチャネルを作成します。

vtbl 5 HRESULT CreateCryptoSession(GUID* pCryptoType, GUID* pDecodeProfile, IDirect3DCryptoSession9** ppCryptoSession, HANDLE* pCryptoHandle)

ディスプレイドライバーに送信されるビデオコンテンツを暗号化するための暗号セッションを作成します。

pCryptoTypeGUID*in

使用する暗号化の種類を指定する GUID へのポインター。次の GUID が定義されています。

pDecodeProfile

型: GUID

DirectX Video Acceleration 2 (DXVA-2) のデコードプロファイルを指定する GUID へのポインター。指定可能な値の一覧については、IDirectXVideoDecoderService::GetDecoderDeviceGuids を参照してください。DXVA-2 デコードを使用しない場合は、このパラメーターを NULL に設定します。

pCaps

型: D3DCONTENTPROTECTIONCAPS

D3DCONTENTPROTECTIONCAPS 構造体へのポインター。このメソッドは、ドライバーのコンテンツ保護機能をこの構造体に設定します。

pDecodeProfileGUID*inDirectX Video Acceleration 2 (DXVA-2) のデコードプロファイルを指定する GUID へのポインター。指定可能な値の一覧については、IDirectXVideoDecoderService::GetDecoderDeviceGuids を参照してください。DXVA-2 デコードを使用しない場合は、このパラメーターを NULL に設定します。
ppCryptoSessionIDirect3DCryptoSession9**outIDirect3DCryptoSession9 インターフェイスへのポインターを受け取ります。呼び出し元はこのインターフェイスを解放する必要があります。
pCryptoHandleHANDLE*inoutセッションのハンドルを受け取ります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDirect3DDevice9Video "{26DC4561-A1EE-4AE7-96DA-118A36C0EC95}"
#usecom global IDirect3DDevice9Video IID_IDirect3DDevice9Video "{}"
#comfunc global IDirect3DDevice9Video_GetContentProtectionCaps    3 var,var,var
#comfunc global IDirect3DDevice9Video_CreateAuthenticatedChannel  4 int,sptr,sptr
#comfunc global IDirect3DDevice9Video_CreateCryptoSession         5 var,var,sptr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。