ディスプレイ ミニポート ドライバーは、グラフィックス アダプターの物理出力コネクタに関連付けられ保護されている出力に関する情報を取得する要求を受信できます。 ディスプレイ ミニポート ドライバーの DxgkDdiOPMGetInformation 関数には、情報要求を含んでいる Parameters パラメーターの DXGKMDT_OPM_GET_INFO_PARAMETERS 構造体を指すポインターが渡されます。 DxgkDdiOPMGetInformation は、RequestedInformation パラメーターが指す DXGKMDT_OPM_REQUESTED_INFORMATION 構造体に必要な情報を書き込みます。 DXGKMDT_OPM_GET_INFO_PARAMETERS の guidInformation および abParameters メンバーは、情報要求を指定します。 情報要求に応じて、ディスプレイ ミニポート ドライバーは、必要な情報を DXGKMDT_OPM_STANDARD_INFORMATION、DXGKMDT_OPM_OUTPUT_ID、または DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT 構造体のメンバーに設定し、その構造体を 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 アルゴリズム」を参照してください。
注 DxgkDdiOPMGetInformation が返される前に、ディスプレイ ミニポート ドライバーは、DXGKMDT_OPM_GET_INFO_PARAMETERS の omac メンバーで指定されている OMAC が正しいことを確認する必要があります。 また、ドライバーは、DXGKMDT_OPM_GET_INFO_PARAMETERS の ulSequenceNumber メンバーで指定されているシーケンス番号が、ドライバーが現在格納しているシーケンス番号と一致することも確認する必要があります。 その後、ドライバーは、格納されているシーケンス番号をインクリメントする必要があります。
注 ドライバーは、DXGKMDT_OPM_STANDARD_INFORMATION、DXGKMDT_OPM_OUTPUT_ID、または DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT の rnRandomNumber メンバーで、128 ビットの暗号によってセキュリティ保護された乱数を返す必要があります。 乱数は送信側アプリケーションによって生成され、DXGKMDT_OPM_GET_INFO_PARAMETERS の rnRandomNumber メンバーで提供されました。
ドライバーは、指定された要求の次の情報を返します。
DXGKMDT_OPM_GET_SUPPORTED_PROTECTION_TYPES が、DXGKMDT_OPM_GET_INFO_PARAMETERS 構造体の guidInformation メンバーで設定され、abParameters メンバーでは未定義の場合、ドライバーは使用可能な種類の保護メカニズムを示します。 使用可能な保護の種類を示すために、ドライバーは、DXGKMDT_OPM_STANDARD_INFORMATION の ulInformation メンバー内の DXGKMDT_OPM_PROTECTION_TYPE 列挙から有効なビットごとの OR 演算値の組み合わせを返します。 DXGKMDT_OPM_PROTECTION_TYPE_HDCP および DXGKMDT_OPM_PROTECTION_TYPE_DPCP の値は有効です。
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_HDCP の場合、保護レベルの値は DXGKMDT_OPM_HDCP_PROTECTION_LEVEL 列挙から取得されます。 保護の種類が DXGKMDT_OPM_PROTECTION_TYPE_DPCP の場合、保護レベルの値は DXGKMDT_OPM_DPCP_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_GET_CURRENT_HDCP_SRM_VERSION が guidInformation で設定され、abParameters で未定義の場合、ドライバーは、保護されている出力に対する現在の高帯域幅デジタル コンテンツ保護 (HDCP) システム更新可能性メッセージ (SRM) のバージョン番号を識別する DXGKMDT_OPM_STANDARD_INFORMATION の ulInformation メンバーに値を返します。 最下位バイト (ビット 0 から 15) には、リトル エンディアン形式の SRM のバージョン番号が含まれています。 SRM バージョン番号の詳細については、「HDCP 仕様リビジョン 1.1」を参照してください。
DXGKMDT_OPM_GET_ACTUAL_OUTPUT_FORMAT が guidInformation で設定され、abParameters で未定義の場合、ドライバーは、保護された出力に関連付けられている物理コネクタを通過する信号の書式設定方法を記述する DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT のメンバーに情報を返します。
DXGKMDT_OPM_GET_OUTPUT_ID が guidInformation で設定され、abParameters では未定義の場合、ドライバーは、出力コネクタを識別する DXGKMDT_OPM_OUTPUT_ID のメンバーに情報を返します。
DXGKMDT_OPM_GET_DVI_CHARACTERISTICS が DXGKMDT_OPM_GET_INFO_PARAMETERS 構造体の guidInformation メンバーで設定され、abParameters メンバーで未定義の場合、ドライバーは、デジタル ビデオ インターフェイス (DVI) の出力コネクタの電気的特性を示します。 DVI の電気的特性を示すために、ドライバーは、DXGKMDT_OPM_STANDARD_INFORMATION の ulInformation メンバーの DXGKDT_OPM_DVI_CHARACTERISTICS 列挙からいずれかの値を返します。