保護されている出力に関する COPP 互換情報の取得
ディスプレイ ミニポート ドライバーは、グラフィックス アダプターの物理出力コネクタに関連付けられている保護された出力に関する COPP 互換情報を取得する要求を受信できます。 ディスプレイ ミニポート ドライバーの DxgkDdiOPMGetCOPPCompatibleInformation 関数には、情報要求を含んでいる Parameters パラメーターのDXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS 構造体を指すポインターが渡されます。 DxgkDdiOPMGetCOPPCompatibleInformation は、RequestedInformation パラメーターが指す DXGKMDT_OPM_REQUESTED_INFORMATION 構造体に必要な情報を書き込みます。 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS の guidInformation および abParameters メンバーは、情報要求を指定します。 情報要求に応じて、ディスプレイ ミニポート ドライバーは、DXGKMDT_OPM_STANDARD_INFORMATION、DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT、DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING、または DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION 構造体のメンバーに必要な情報を設定し、DXGKMDT_OPM_REQUESTED_INFORMATION の abRequestedInformation メンバーをその構造体に示します。 ドライバーが、DXGKMDT_OPM_STANDARD_INFORMATION の cbRequestedInformationSize (たとえば、sizeof (DXGKMDT_OPM_STANDARD_INFORMATION)) および abRequestedInformation メンバーを指定した後、ドライバーは DXGKMDT_OPM_REQUESTED_INFORMATION のデータのワンキー暗号ブロック チェーン (CBC) モード メッセージ認証コード (OMAC) を計算し、この OMAC を DXGKMDT_OPM_REQUESTED_INFORMATION の omac メンバーに設定する必要があります。 OMAC 計算の詳細については、「OMAC-1 アルゴリズム」を参照してください。
注DxgkDdiOPMGetCOPPCompatibleInformation が返される前、ディスプレイ ミニポート ドライバーは、DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS の ulSequenceNumber メンバーで指定されているシーケンス番号が、ドライバーが現在格納しているシーケンス番号と一致することを確認する必要があります。 その後、ドライバーは、格納されているシーケンス番号をインクリメントする必要があります。
注 ドライバーは、DXGKMDT_OPM_STANDARD_INFORMATION、DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT、DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING、または DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION の rnRandomNumber メンバーに 128 ビットの暗号によってセキュリティで保護された乱数を返す必要があります。 乱数は送信側アプリケーションによって生成され、DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS の rnRandomNumber メンバーに提供されました。
ドライバーは、指定された要求の次の情報を返します。
DXGKMDT_OPM_GET_SUPPORTED_PROTECTION_TYPES が、guidInformation メンバーで設定され、DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS の abParameters メンバーでは未定義の場合、ドライバーは使用可能な種類の保護メカニズムを示します。 使用可能な保護の種類を示すために、ドライバーは、DXGKMDT_OPM_STANDARD_INFORMATION の ulInformation メンバー内の DXGKMDT_OPM_PROTECTION_TYPE 列挙から有効なビットごとの OR 演算値の組み合わせを返します。 DXGKMDT_OPM_PROTECTION_TYPE_ACP、DXGKMDT_OPM_PROTECTION_TYPE_CGMSA、および DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP の値は有効です。
DXGKMDT_OPM_GET_CONNECTOR_TYPE が guidInformation で設定され、abParameters では未定義の場合、ドライバーはコネクタの種類を示します。 コネクタの種類を示すために、ドライバーは DXGKMDT_OPM_STANDARD_INFORMATION の ulInformation メンバーの D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY 列挙から有効なビットごとの OR 演算値の組み合わせを返します。
DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL または DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL が guidInformation で設定され、abParameters で保護の種類が設定されている場合、ドライバーは、DXGKMDT_OPM_STANDARD_INFORMATION の ulInformation メンバーの保護レベル値を返します。 保護の種類が DXGKMDT_OPM_PROTECTION_TYPE_ACP の場合、保護レベルの値は DXGKMDT_OPM_ACP_PROTECTION_LEVEL 列挙から取得されます。 保護の種類が DXGKMDT_OPM_PROTECTION_TYPE_CGMSA の場合、保護レベルの値は DXGKMDT_OPM_CGMSA 列挙から取得されます。 保護の種類が DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP の場合、保護レベルの値は DXGKMDT_OPM_HDCP_PROTECTION_LEVEL 列挙から取得されます。
DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL 要求は、保護された出力の現在設定されている保護レベルを返します。 DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL 要求は、保護された出力に関連付けられている物理コネクタの現在設定されている保護レベルを返します。
DXGKMDT_OPM_GET_ADAPTER_BUS_TYPE が guidInformation で設定され、abParameters で未定義の場合、ドライバーは、グラフィックス アダプターをマザーボードのチップセットのノース ブリッジに接続するバスの種類を特定します。 バスの種類を特定するために、ドライバーは、DXGKMDT_OPM_STANDARD_INFORMATION の ulInformation メンバーの DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION 列挙から有効なビットごとの OR 演算値の組み合わせを返します。
ドライバーは、グラフィックス アダプターと他のサブシステムの間のインターフェイス信号が、一般公開されている仕様と標準コネクタの種類を使用する拡張バスで全く使用できない場合にのみ、DXGKMDT_OPM_COPP_COMPATIBLE_BUS_TYPE_INTEGRATED (0x80000000) の値をバスの種類の値の 1 つと組み合わせることができます。 メモリ バスはこの定義から除外されます。
DXGKMDT_OPM_GET_ACTUAL_OUTPUT_FORMAT が guidInformation で設定され、abParameters で未定義の場合、ドライバーは、保護された出力に関連付けられている物理コネクタを通過する信号の書式設定方法を記述する DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT のメンバーに情報を返します。
DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING が guidInformation で設定され、abParameters で未定義の場合、保護された出力に関連付けられている物理コネクタを通過する信号がどのように保護されるかを説明する DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING のメンバーに情報を返します。
DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION が guidInformation で設定され、abParameters で未定義の場合、ドライバーは、高帯域幅デジタル コンテンツ保護 (HDCP) 情報を含んでいる DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION のメンバーに情報を返します。