IDirect3DDevice9Video
COM公式ドキュメント
グラフィックスドライバーが実装するコンテンツ保護および暗号化サービスをアプリケーションが利用できるようにします。このインターフェイスへのポインターを取得するには、D3D9Ex デバイスに対して QueryInterface を呼び出します。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
ディスプレイドライバーにコンテンツ保護機能を問い合わせます。
| pCryptoType | GUID* | in | 使用する暗号化の種類を指定する GUID へのポインター。次の GUID が定義されています。 128 ビットの Advanced Encryption Standard CTR モード (AES-CTR) ブロック暗号。 独自の暗号化アルゴリズム。 |
| pDecodeProfile | GUID* | in | DirectX Video Acceleration 2 (DXVA-2) のデコードプロファイルを指定する GUID へのポインター。指定可能な値の一覧については、IDirectXVideoDecoderService::GetDecoderDeviceGuids を参照してください。DXVA-2 デコードを使用しない場合は、このパラメーターを NULL に設定します。 |
| pCaps | D3DCONTENTPROTECTIONCAPS* | inout | D3DCONTENTPROTECTIONCAPS 構造体へのポインター。このメソッドは、ドライバーのコンテンツ保護機能をこの構造体に設定します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Direct3D デバイスまたはグラフィックスドライバーと通信するためのチャネルを作成します。
| ChannelType | D3DAUTHENTICATEDCHANNELTYPE | in | チャネルの種類を、D3DAUTHENTICATEDCHANNELTYPE 列挙型のメンバーとして指定します。 |
| ppAuthenticatedChannel | IDirect3DAuthenticatedChannel9** | out | IDirect3DAuthenticatedChannel9 インターフェイスへのポインターを受け取ります。呼び出し元はこのインターフェイスを解放する必要があります。 |
| pChannelHandle | HANDLE* | inout | チャネルのハンドルへのポインターを受け取ります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
ChannelType パラメーターが D3DAUTHENTICATEDCHANNEL_D3D9 の場合、このメソッドは Direct3D デバイスとのチャネルを作成します。この種類のチャネルは認証をサポートしません。
ChannelType が D3DAUTHENTICATEDCHANNEL_DRIVER_SOFTWARE または D3DAUTHENTICATEDCHANNEL_DRIVER_HARDWARE の場合、このメソッドはグラフィックスドライバーとの認証済みチャネルを作成します。
ディスプレイドライバーに送信されるビデオコンテンツを暗号化するための暗号セッションを作成します。
| pCryptoType | GUID* | in | 使用する暗号化の種類を指定する GUID へのポインター。次の GUID が定義されています。 pDecodeProfile 型: GUID DirectX Video Acceleration 2 (DXVA-2) のデコードプロファイルを指定する GUID へのポインター。指定可能な値の一覧については、IDirectXVideoDecoderService::GetDecoderDeviceGuids を参照してください。DXVA-2 デコードを使用しない場合は、このパラメーターを NULL に設定します。 pCaps 型: D3DCONTENTPROTECTIONCAPS D3DCONTENTPROTECTIONCAPS 構造体へのポインター。このメソッドは、ドライバーのコンテンツ保護機能をこの構造体に設定します。 |
| pDecodeProfile | GUID* | in | DirectX Video Acceleration 2 (DXVA-2) のデコードプロファイルを指定する GUID へのポインター。指定可能な値の一覧については、IDirectXVideoDecoderService::GetDecoderDeviceGuids を参照してください。DXVA-2 デコードを使用しない場合は、このパラメーターを NULL に設定します。 |
| ppCryptoSession | IDirect3DCryptoSession9** | out | IDirect3DCryptoSession9 インターフェイスへのポインターを受け取ります。呼び出し元はこのインターフェイスを解放する必要があります。 |
| pCryptoHandle | HANDLE* | inout | セッションのハンドルを受け取ります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
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 指定が可能。#define global IID_IDirect3DDevice9Video "{26DC4561-A1EE-4AE7-96DA-118A36C0EC95}" #usecom global IDirect3DDevice9Video IID_IDirect3DDevice9Video "{}" #comfunc global IDirect3DDevice9Video_GetContentProtectionCaps 3 sptr,sptr,sptr #comfunc global IDirect3DDevice9Video_CreateAuthenticatedChannel 4 int,sptr,sptr #comfunc global IDirect3DDevice9Video_CreateCryptoSession 5 sptr,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。