Notificación del estado de una salida protegida

Los eventos externos pueden modificar la naturaleza de la protección que se aplica a un conector o incluso modificar el tipo del conector. El controlador de minipuerto de pantalla debe notificar estos eventos a las aplicaciones de OPM cada vez que el controlador recibe una llamada a su función DxgkDdiOPMGetInformation o DxgkDdiOPMGetCOPPCompatibleInformation . El controlador de miniporte para mostrar debe notificar los siguientes eventos externos devolviendo las marcas de estado especificadas de la enumeración DXGKMDT_OPM_STATUS solo en la siguiente llamada a DxgkDdiOPMGetInformation o DxgkDdiOPMGetCOPPCompatibleInformation después de que se produzcan los eventos:

La conexión funciona correctamente
Si la conexión entre el equipo y el dispositivo de pantalla funciona correctamente, el controlador de miniporte de pantalla debe establecer la marca de estado DXGKMDT_OPM_STATUS_NORMAL en el miembro ulStatusFlags del DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING o DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION estructura.

Integridad de la conexión
Si el equipo y el dispositivo de pantalla se desconectan, el controlador de minipuerto de pantalla debe establecer la marca de estado DXGKMDT_OPM_STATUS_LINK_LOST en el miembro ulStatusFlags del DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING o DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION estructura.

Reconfiguraciones del conector
Si el usuario final hace que cambie la configuración del conector físico, el controlador de miniporte de pantalla debe establecer la marca de estado DXGKMDT_OPM_STATUS_RENEGOTIATION_REQUIRED en el miembro ulStatusFlags del DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING o DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION estructura.

Manipulación
Si se ha producido la manipulación con el adaptador de gráficos o el controlador de minipuerto de pantalla del adaptador, el controlador de miniporte de pantalla debe establecer la marca de estado DXGKMDT_OPM_STATUS_TAMPERING_DETECTED en el miembro ulStatusFlags del DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING o DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION estructura.

Dispositivo HDCP revocado
Si un dispositivo de Protección de contenido digital (HDCP) de ancho de banda alto revocado está conectado directa o indirectamente a un conector y, si HDCP está habilitado, el controlador de minipuerto de pantalla debe establecer la marca de estado DXGKMDT_OPM_STATUS_REVOKED_HDCP_DEVICE_ATTACHED en el miembro ulStatusFlags del DXGKMDT_OPM_STANDARD_INFORMATION o DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT estructura. Si HDCP no está habilitado, no es necesario que el controlador establezca esta marca de estado. El controlador establece este valor de estado solo desde una llamada a su función DxgkDdiOPMGetInformation para determinar si HDCP está habilitado.

El controlador de minipuerto de pantalla devuelve un puntero a una estructura DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING o DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION en el miembro abRequestedInformation de la estructura DXGKMDT_OPM_REQUESTED_INFORMATION . Se devuelve un puntero a DXGKMDT_OPM_REQUESTED_INFORMATION a través del parámetro RequestedInformation de DxgkDdiOPMGetInformation o DxgkDdiOPMGetCOPPCompatibleInformation.

Por ejemplo, considere dos aplicaciones de reproducción multimedia, A y B. Cada aplicación controla, a través de OPM, el nivel de protección HDCP del conector que conecta el equipo al monitor de visualización. Cada aplicación controla su propia salida protegida única. Si el conector se desconecta, la próxima vez que la aplicación inicie una solicitud DxgkDdiOPMGetInformation o DxgkDdiOPMGetCOPPCompatibleInformation a su salida protegida, el controlador de miniporte de pantalla debe devolver la marca de estado DXGKMDT_OPM_STATUS_LINK_LOST.

Supongamos que la aplicación A es la primera en iniciar una llamada a DxgkDdiOPMGetInformation o DxgkDdiOPMGetCOPPCompatibleInformation en su salida protegida. A continuación, la aplicación A recibe la marca DXGKMDT_OPM_STATUS_LINK_LOST y actúa en consecuencia. Si la aplicación A inicia una llamada DxgkDdiOPMGetInformation o DxgkDdiOPMGetCOPPCompatibleInformation posterior, no debe recibir la marca de DXGKMDT_OPM_STATUS_LINK_LOST, a menos que el conector se desconecte de nuevo. Cuando la aplicación B inicia una llamada a DxgkDdiOPMGetInformation o DxgkDdiOPMGetCOPPCompatibleInformation en su salida protegida, recibe la marca DXGKMDT_OPM_STATUS_LINK_LOST y actúa en consecuencia. De nuevo, la aplicación B no debe recibir la marca de DXGKMDT_OPM_STATUS_LINK_LOST de nuevo hasta que el conector vuelva a desenchufarse.