Berichtsstatus einer geschützten Ausgabe
Externe Ereignisse können die Art des Schutzes, der auf einen Connector angewendet wird, ändern oder sogar den Typ des Connectors ändern. Der Anzeigeminiporttreiber muss diese Ereignisse an OPM-Anwendungen melden, wenn der Treiber einen Aufruf seiner DxgkDdiOPMGetInformation - oder DxgkDdiOPMGetCOPPCompatibleInformation-Funktion empfängt. Der Anzeigeminiporttreiber muss die folgenden externen Ereignisse melden, indem die angegebenen status-Flags aus der DXGKMDT_OPM_STATUS-Enumeration nur beim nächsten Aufruf von DxgkDdiOPMGetInformation oder DxgkDdiOPMGetCOPPCompatibleInformation zurückgegeben werden, nachdem die Ereignisse aufgetreten sind:
Die Verbindung funktioniert ordnungsgemäß
Wenn die Verbindung zwischen dem Computer und dem Anzeigegerät ordnungsgemäß funktioniert, sollte der Anzeigeminiporttreiber das DXGKMDT_OPM_STATUS_NORMAL status-Flag im ulStatusFlags-Element der DXGKMDT_OPM_STANDARD_INFORMATION-, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT-, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING- oder DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION-Struktur festlegen.
Verbindungsintegrität
Wenn der Computer und das Anzeigegerät getrennt werden, sollte der Anzeigeminiporttreiber das DXGKMDT_OPM_STATUS_LINK_LOST status-Flag im element ulStatusFlags der DXGKMDT_OPM_STANDARD_INFORMATION-, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT-, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING- oder DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION-Struktur festlegen.
Neukonfigurationen des Connectors
Wenn der Endbenutzer bewirkt, dass sich die Konfiguration des physischen Connectors ändert, sollte der Anzeigeminiporttreiber das DXGKMDT_OPM_STATUS_RENEGOTIATION_REQUIRED status-Flag im ulStatusFlags-Element der DXGKMDT_OPM_STANDARD_INFORMATION-, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT-, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING- oder DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION-Struktur festlegen.
Manipulationen
Wenn der Grafikkarte oder der Display-Miniporttreiber des Adapters manipuliert wurde, sollte der Display-Miniporttreiber das DXGKMDT_OPM_STATUS_TAMPERING_DETECTED status-Flag im ulStatusFlags-Element der DXGKMDT_OPM_STANDARD_INFORMATION-, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT-, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING- oder DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION-Struktur festlegen.
Widerrufenes HDCP-Gerät
Wenn ein widerrufenes HDCP-Gerät (High-Bandwidth Digital Content Protection) direkt oder indirekt an einen Connector angeschlossen ist und HDCP aktiviert ist, sollte der Anzeigeminiporttreiber das DXGKMDT_OPM_STATUS_REVOKED_HDCP_DEVICE_ATTACHED status-Flag im ulStatusFlags-Element der DXGKMDT_OPM_STANDARD_INFORMATION- oder DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT-Struktur festlegen. Wenn HDCP nicht aktiviert ist, ist der Treiber nicht erforderlich, um dieses status-Flag festzulegen. Der Treiber legt diesen status Wert nur aus einem Aufruf der DxgkDdiOPMGetInformation-Funktion fest, um zu bestimmen, ob HDCP aktiviert ist.
Der Anzeigeminiporttreiber gibt einen Zeiger auf eine DXGKMDT_OPM_STANDARD_INFORMATION-, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT-, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING- oder DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION-Struktur im Element abRequestedInformation der DXGKMDT_OPM_REQUESTED_INFORMATION-Struktur zurück. Ein Zeiger auf DXGKMDT_OPM_REQUESTED_INFORMATION wird über den Parameter RequestedInformation von DxgkDdiOPMGetInformation oder DxgkDdiOPMGetCOPPCompatibleInformation zurückgegeben.
Betrachten Sie beispielsweise zwei Medienwiedergabeanwendungen, A und B. Jede Anwendung steuert über OPM die HDCP-Schutzebene des Connectors, der den Computer an den Anzeigemonitor anfügt. Jede Anwendung steuert ihre eigene, eindeutige geschützte Ausgabe. Wenn der Connector getrennt wird, sollte der Anzeigeminiporttreiber das DXGKMDT_OPM_STATUS_LINK_LOST status-Flag zurückgeben, wenn die Anwendung das nächste Mal eine DxgkDdiOPMGetInformation- oder DxgkDdiOPMGetCOPPCompatibleInformation-Anforderung an die geschützte Ausgabe initiiert.
Angenommen, Anwendung A ist die erste, die einen Aufruf von DxgkDdiOPMGetInformation oder DxgkDdiOPMGetCOPPCompatibleInformation für die geschützte Ausgabe initiiert. Anwendung A empfängt dann das flag DXGKMDT_OPM_STATUS_LINK_LOST und handelt entsprechend. Wenn Anwendung A einen nachfolgenden DxgkDdiOPMGetInformation - oder DxgkDdiOPMGetCOPPCompatibleInformation-Aufruf initiiert, sollte sie das flag DXGKMDT_OPM_STATUS_LINK_LOST nicht empfangen, es sei denn, der Connector wird wieder getrennt. Wenn Anwendung B einen Aufruf von DxgkDdiOPMGetInformation oder DxgkDdiOPMGetCOPPCompatibleInformation für die geschützte Ausgabe initiiert, empfängt sie das flag DXGKMDT_OPM_STATUS_LINK_LOST und handelt entsprechend. Auch hier sollte Anwendung B das flag DXGKMDT_OPM_STATUS_LINK_LOST nicht erneut empfangen, bis der Connector wieder getrennt wird.