次の方法で共有


DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION コールバック関数 (dispmprt.h)

DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION 関数は、指定された保護された出力オブジェクトから認定出力保護プロトコル (COPP) と互換性のある情報を取得します。

構文

DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION DxgkddiOpmGetCoppCompatibleInformation;

NTSTATUS DxgkddiOpmGetCoppCompatibleInformation(
  [in]  PVOID MiniportDeviceContext,
  [in]  HANDLE ProtectedOutputHandle,
  [in]  const DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS *Parameters,
  [out] PDXGKMDT_OPM_REQUESTED_INFORMATION RequestedInformation
)
{...}

パラメーター

[in] MiniportDeviceContext

ディスプレイ アダプターに関連付けられているコンテキスト ブロックへのハンドル。 以前は、ディスプレイ ミニポート ドライバーの DxgkDdiAddDevice 関数は、DirectX グラフィックス カーネル サブシステムにこのハンドルを提供しました。

[in] ProtectedOutputHandle

保護された出力オブジェクトへのハンドル。 DxgkDdiOPMCreateProtectedOutput 関数は、保護された出力オブジェクトを作成し、そのハンドルをオブジェクトに返します。 このハンドルに対応する保護された出力オブジェクトには、COPP セマンティクスが必要です。

[in] Parameters

ProtectedOutputHandle パラメーターでハンドルが指定されている保護された出力オブジェクトから取得する COPP 互換情報の型を格納している DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS 構造体へのポインター。 DxgkDdiOPMGetCOPPCompatibleInformation 、保護された出力オブジェクトを間接的に作成したアプリケーションからの有効な要求がパラメーターに含まれているかどうかを判断します。 詳細については、「解説」セクションを参照してください。

[out] RequestedInformation

DxgkDdiOPMGetCOPPCompatibleInformation が正常に返された場合に、保護された出力オブジェクトの COPP 互換情報 受け取る DXGKMDT_OPM_REQUESTED_INFORMATION 構造体へのポインター。

DxgkDdiOPMGetCOPPCompatibleInformation 失敗した場合、RequestedInformation 指す値は変更されません。

戻り値

DxgkDdiOPMGetCOPPCompatibleInformation は、STATUS_SUCCESSまたは Ntstatus.h エラー コードを返します。

備考

DirectX グラフィックス カーネル サブシステムは、出力 COPP セマンティクスがある場合にのみ、DxgkDdiOPMGetCOPPCompatibleInformation を呼び出す必要があります。

DirectX グラフィックス カーネル サブシステムが、保護された出力ハンドルを ProtectedOutputHandle パラメーターに渡す前に、DxgkDdiOPMGetCOPPCompatibleInformation、DirectX グラフィックス カーネル サブシステムは常に、保護された出力ハンドルを DxgkDdiOPMSetSigningKeyAndSequenceNumbers に渡し、DxgkDdiOPMGetRandomNumber関数します。

DxgkDdiOPMGetCOPPCompatibleInformation 関連し、DxgkDdiOPMGetInformation 関数に関連しないいくつかの事実を次に示します。

  • DirectX グラフィックス カーネル サブシステムは、COPP セマンティクスでのみ、保護された出力にハンドルを渡すことができます。

  • Parameters パラメーターが指す DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS 構造体は符号付きではありません。

  • DirectX グラフィックス カーネル サブシステムは、DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERSの guidInformation メンバー内のDXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALINGとDXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION GUID を渡すことができます。

  • DirectX グラフィックス カーネル サブシステムは、DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERSの guidInformation メンバーでDXGKMDT_OPM_GET_CURRENT_HDCP_SRM_VERSION GUID を渡すことができません。

  • DirectX グラフィックス カーネル サブシステムは、DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERSの abParameters メンバーの最初の 4 バイトのDXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCPと、DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERSの guidInformation メンバーのDXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVELまたはDXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL GUID を指定できます。

  • DirectX グラフィックス カーネル サブシステムは、DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERSの abParameters メンバーの最初の 4 バイトのDXGKMDT_OPM_PROTECTION_TYPE_HDCPと、DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERSの guidInformation メンバーのDXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVELまたはDXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL GUID を指定できません。

ドライバーは、DxgkDdiOPMGetCOPPCompatibleInformation 関数が呼び出されたときに、次のシーケンスを実行する必要があります。

  1. DxgkDdiOPMGetCOPPCompatibleInformation ProtectedOutputHandle パラメーター 渡された保護された出力ハンドルに COPP セマンティクスがあることを確認します。

  2. 要求された情報を取得します。

  3. DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERSrnRandomNumber メンバーが指定する乱数を、DXGKMDT_OPM_STANDARD_INFORMATION、DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT、DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING、または DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION 構造体の rnRandomNumber メンバーにコピーします。 使用される構造体は、呼び出し元が要求した情報の種類によって異なります。 この構造体は、RequestedInformation パラメーターが指す DXGKMDT_OPM_REQUESTED_INFORMATION 構造体の abRequestedInformation メンバーで設定されます。

  4. DXGKMDT_OPM_REQUESTED_INFORMATION 構造体に署名し、DXGKMDT_OPM_REQUESTED_INFORMATIONの omac メンバーに署名を配置します。 AES ブロック暗号と OMAC-1 署名アルゴリズムを使用して構造に署名する必要があります。 AES の詳細については、RSA ラボラトリー Web サイトを参照してください。 OMAC-1 の詳細については、DXGKMDT_OPM_OMAC リファレンス ページを参照してください。

最初に、DirectX グラフィックス カーネル サブシステムは、DxgkDdiOPMGetCOPPCompatibleInformation を呼び出して出力に関する情報を取得し、DxgkDdiOPMConfigureProtectedOutput 1 回以上呼び出して出力を構成します。 その後、DirectX グラフィックス カーネル サブシステムは、DxgkDdiOPMConfigureProtectedOutput 呼び出さずに、DxgkDdiOPMGetCOPPCompatibleInformation 呼び出します。

DxgkDdiOPMGetCOPPCompatibleInformation ページング可能にする必要があります。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー dispmprt.h (Dispmprt.h を含む)
IRQL PASSIVE_LEVEL (「解説」セクションを参照)

関連項目

DxgkDdiAddDevice

DxgkDdiOPMConfigureProtectedOutput

DxgkDdiOPMCreateProtectedOutput

DxgkDdiOPMGetInformation

DxgkDdiOPMGetRandomNumber

DxgkDdiOPMSetSigningKeyAndSequenceNumbers

DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS

DXGKMDT_OPM_OMAC

DXGKMDT_OPM_REQUESTED_INFORMATION