Status de relatório de uma saída protegida
Eventos externos podem alterar a natureza da proteção aplicada a um conector ou até mesmo modificar o tipo do conector. O driver de miniporta de exibição deve relatar esses eventos para aplicativos OPM sempre que o driver receber uma chamada para sua função DxgkDdiOPMGetInformation ou DxgkDdiOPMGetCOPPCompatibleInformation . O driver de miniporto de exibição deve relatar os seguintes eventos externos retornando os sinalizadores de status especificados da enumeração DXGKMDT_OPM_STATUS somente na próxima chamada para DxgkDdiOPMGetInformation ou DxgkDdiOPMGetCOPPCompatibleInformation após a ocorrência dos eventos:
Conexão funcionando corretamente
Se a conexão entre o computador e o dispositivo de exibição estiver funcionando corretamente, o driver de miniporta de exibição deverá definir o sinalizador DXGKMDT_OPM_STATUS_NORMAL status no membro ulStatusFlags da estrutura DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING ou DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION.
Integridade da conexão
Se o computador e o dispositivo de exibição forem desconectados, o driver de miniporta de exibição deverá definir o sinalizador DXGKMDT_OPM_STATUS_LINK_LOST status no membro ulStatusFlags da estrutura DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING ou DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION.
Reconfigurações do conector
Se o usuário final fizer com que a configuração do conector físico seja alterada, o driver de miniporto de exibição deverá definir o sinalizador DXGKMDT_OPM_STATUS_RENEGOTIATION_REQUIRED status no membro ulStatusFlags da estrutura DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING ou DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION.
Adulteração
Se houver adulteração do adaptador gráfico ou do driver de miniporto de exibição do adaptador, o driver de miniporto de exibição deverá definir o sinalizador DXGKMDT_OPM_STATUS_TAMPERING_DETECTED status no membro ulStatusFlags da estrutura DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING ou DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION.
Dispositivo HDCP revogado
Se um dispositivo HDCP (Proteção de Conteúdo Digital) de alta largura de banda revogado estiver conectado direta ou indiretamente a um conector e se o HDCP estiver habilitado, o driver de miniporto de exibição deverá definir o sinalizador DXGKMDT_OPM_STATUS_REVOKED_HDCP_DEVICE_ATTACHED status no membro ulStatusFlags da estrutura DXGKMDT_OPM_STANDARD_INFORMATION ou DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT. Se o HDCP não estiver habilitado, o driver não precisará definir esse sinalizador de status. O driver define esse valor status somente de uma chamada para sua função DxgkDdiOPMGetInformation para determinar se o HDCP está habilitado.
O driver de miniporto de exibição retorna um ponteiro para uma estrutura DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING ou DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION no membro abRequestedInformation da estrutura DXGKMDT_OPM_REQUESTED_INFORMATION . Um ponteiro para DXGKMDT_OPM_REQUESTED_INFORMATION é retornado por meio do parâmetro RequestedInformation de DxgkDdiOPMGetInformation ou DxgkDdiOPMGetCOPPCompatibleInformation.
Por exemplo, considere dois aplicativos de reprodução de mídia, A e B. Cada aplicativo controla, por meio do OPM, o nível de proteção HDCP do conector que anexa o computador ao monitor de vídeo. Cada aplicativo controla sua própria saída protegida exclusiva. Se o conector ficar desconectado, na próxima vez que o aplicativo iniciar uma solicitação DxgkDdiOPMGetInformation ou DxgkDdiOPMGetCOPPCompatibleInformation para sua saída protegida, o driver de miniporto de exibição deverá retornar o sinalizador DXGKMDT_OPM_STATUS_LINK_LOST status.
Suponha que o aplicativo A seja o primeiro a iniciar uma chamada para DxgkDdiOPMGetInformation ou DxgkDdiOPMGetCOPPCompatibleInformation em sua saída protegida. Em seguida, o aplicativo A recebe o sinalizador DXGKMDT_OPM_STATUS_LINK_LOST e age de acordo. Se o aplicativo A iniciar uma chamada DxgkDdiOPMGetInformation ou DxgkDdiOPMGetCOPPCompatibleInformation subsequente, ele não deverá receber o sinalizador DXGKMDT_OPM_STATUS_LINK_LOST, a menos que o conector fique desconectado novamente. Quando o aplicativo B inicia uma chamada para DxgkDdiOPMGetInformation ou DxgkDdiOPMGetCOPPCompatibleInformation em sua saída protegida, ele recebe o sinalizador DXGKMDT_OPM_STATUS_LINK_LOST e age de acordo. Novamente, o aplicativo B não deve receber o sinalizador DXGKMDT_OPM_STATUS_LINK_LOST novamente até que o conector fique desconectado novamente.