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

IAMCertifiedOutputProtection

COM
IID6feded3e-0ff1-4901-a2f1-43f7012c8515継承元IUnknown自前メソッド開始 vtbl3

メソッド 4

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

vtbl 3 HRESULT KeyExchange(GUID* pRandom, BYTE** VarLenCertGH, DWORD* pdwLengthCertGH)
pRandomGUID*outドライバが生成した乱数を受け取るGUID。COPP認証の鍵交換に用いる。
VarLenCertGHBYTE**out可変長の証明書(グラフィックハードウェア証明書)を受け取る出力先。呼び出し側で解放する。
pdwLengthCertGHDWORD*out返された証明書のバイト長を受け取る出力先。
vtbl 4 HRESULT SessionSequenceStart(AMCOPPSignature* pSig)
pSigAMCOPPSignature*inセッション開始のためのデジタル署名を格納したAMCOPPSignature。
vtbl 5 HRESULT ProtectionCommand(AMCOPPCommand* cmd)
cmdAMCOPPCommand*in出力保護を設定するCOPPコマンドを格納したAMCOPPCommand。
vtbl 6 HRESULT ProtectionStatus(AMCOPPStatusInput* pStatusInput, AMCOPPStatusOutput* pStatusOutput)
pStatusInputAMCOPPStatusInput*in状態問い合わせ要求と署名を格納した入力AMCOPPStatusInput。
pStatusOutputAMCOPPStatusOutput*out暗号化された保護状態応答を受け取るAMCOPPStatusOutput。

HSP用 COM定義

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

出力引数:
#define global IID_IAMCertifiedOutputProtection "{6FEDED3E-0FF1-4901-A2F1-43F7012C8515}"
#usecom global IAMCertifiedOutputProtection IID_IAMCertifiedOutputProtection "{}"
#comfunc global IAMCertifiedOutputProtection_KeyExchange           3 var,var,var
#comfunc global IAMCertifiedOutputProtection_SessionSequenceStart  4 var
#comfunc global IAMCertifiedOutputProtection_ProtectionCommand     5 var
#comfunc global IAMCertifiedOutputProtection_ProtectionStatus      6 var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。