保護されている出力の状態のレポート
外部イベントは、コネクタに適用される保護の性質を変更したり、コネクタの種類を変更したりすることもできます。 ディスプレイ ミニポート ドライバーは、ドライバーが DxgkDdiOPMGetInformation 関数または DxgkDdiOPMGetCOPPCompatibleInformation 関数の呼び出しを受け取るたびに、これらのイベントを OPM アプリケーションに報告する必要があります。 ディスプレイ ミニポート ドライバーは、イベントが発生した後、DxgkDdiOPMGetInformation または DxgkDdiOPMGetCOPPCompatibleInformation への次の呼び出しでのみ、DXGKMDT_OPM_STATUS 列挙から指定された状態フラグを返すことによって、次の外部イベントを報告する必要があります。
接続が正常に動作する
コンピューターとディスプレイ デバイスの間の接続が正常に動作している場合、ディスプレイ ミニポート ドライバーは、DXGKMDT_OPM_STANDARD_INFORMATION、DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT、DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING、または DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION 構造体の ulStatusFlags メンバーに DXGKMDT_OPM_STATUS_NORMAL 状態フラグを設定する必要があります。
接続の整合性
コンピューターとディスプレイ デバイスが切断された場合、ディスプレイ ミニポート ドライバーは、DXGKMDT_OPM_STANDARD_INFORMATION、DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT、DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING、またはDXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION 構造体の ulStatusFlags メンバーに DXGKMDT_OPM_STATUS_LINK_LOST 状態フラグを設定する必要があります。
コネクタの再構成
エンド ユーザーが物理コネクタの構成を変更する場合、ディスプレイ ミニポート ドライバーは、DXGKMDT_OPM_STANDARD_INFORMATION、DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT、DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING、またはDXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION 構造体の ulStatusFlags メンバーに DXGKMDT_OPM_STATUS_RENEGOTIATION_REQUIRED 状態フラグを設定する必要があります。
改ざん
グラフィックス アダプターまたはアダプターのディスプレイ ミニポート ドライバーの改ざんが発生した場合、ディスプレイ ミニポート ドライバーは、DXGKMDT_OPM_STANDARD_INFORMATION、DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT、DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING、または DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION 構造体の ulStatusFlags メンバーに DXGKMDT_OPM_STATUS_TAMPERING_DETECTED 状態フラグを設定する必要があります。
取り消された HDCP デバイス
取り消された高帯域幅デジタル コンテンツ保護 (HDCP) デバイスがコネクタに直接または間接的に接続されていて、HDCP が有効になっている場合、ディスプレイ ミニポート ドライバーは、DXGKMDT_OPM_STANDARD_INFORMATION または DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT 構造体の ulStatusFlags メンバーに DXGKMDT_OPM_STATUS_REVOKED_HDCP_DEVICE_ATTACHED 状態フラグを設定する必要があります。 HDCP が有効になっていない場合、ドライバーはこの状態フラグを設定する必要はありません。 ドライバーは、HDCP が有効になっているかどうかを判断する DxgkDdiOPMGetInformation 関数の呼び出しからのみ、この状態値を設定します。
ディスプレイ ミニポート ドライバーは、DXGKMDT_OPM_REQUESTED_INFORMATION 構造体の abRequestedInformation メンバー内の 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 を指すポインターは、DxgkDdiOPMGetInformation または DxgkDdiOPMGetCOPPCompatibleInformation の RequestedInformation パラメーターを使用して返されます。
たとえば、A と B の 2 つのメディア再生アプリケーションについて考えてみます。各アプリケーションは、OPM を介して、コンピューターをディスプレイ モニターに接続するコネクタの HDCP 保護レベルを制御します。 各アプリケーションは、独自の保護された出力を制御します。 コネクタが取り外された場合、アプリケーションが次に DxgkDdiOPMGetInformation または DxgkDdiOPMGetCOPPCompatibleInformation 要求をその保護された出力に開始すると、ディスプレイ ミニポート ドライバーは DXGKMDT_OPM_STATUS_LINK_LOST 状態フラグを返す必要があります。
アプリケーション A が、保護された出力で DxgkDdiOPMGetInformation または DxgkDdiOPMGetCOPPCompatibleInformation の呼び出しを最初に開始するとします。 その後、アプリケーション A は DXGKMDT_OPM_STATUS_LINK_LOST フラグを受け取り、それに応じて動作します。 アプリケーション A が後続の DxgkDdiOPMGetInformation または DxgkDdiOPMGetCOPPCompatibleInformation 呼び出しを開始する場合、コネクタが再び取り外されない限り、DXGKMDT_OPM_STATUS_LINK_LOST フラグを受け取りません。 アプリケーション B は、保護された出力で DxgkDdiOPMGetInformation または DxgkDdiOPMGetCOPPCompatibleInformation の呼び出しを開始すると、DXGKMDT_OPM_STATUS_LINK_LOST フラグを受け取り、それに応じて動作します。 ここでも、コネクタが再び取り外されるまで、アプリケーション B は DXGKMDT_OPM_STATUS_LINK_LOST フラグを再び受け取りません。