Recuperación de información de COPP-Compatible en la salida protegida
El controlador de minipuerto de pantalla puede recibir solicitudes para recuperar información compatible con COPP sobre la salida protegida asociada con el conector de salida físico de un adaptador de gráficos. La función DxgkDdiOPMGetCOPPCompatibleInformation del controlador de minipuerto de pantalla se pasa un puntero a una estructura DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS en el parámetro Parameters que contiene la solicitud de información. DxgkDdiOPMGetCOPPCompatibleInformation escribe la información necesaria en la estructura DXGKMDT_OPM_REQUESTED_INFORMATION a la que apunta el parámetro RequestedInformation . Los miembros guidInformation y abParameters de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS especificar la solicitud de información. Según la solicitud de información, el controlador de minipuerto de pantalla debe rellenar los miembros del DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING o DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION estructura con la información necesaria y apuntar el miembro abRequestedInformation de DXGKMDT_OPM_REQUESTED_INFORMATION a esa estructura. Después de que el controlador especifique los miembros cbRequestedInformationSize (por ejemplo, sizeof (DXGKMDT_OPM_STANDARD_INFORMATION)) y abRequestedInformation de DXGKMDT_OPM_REQUESTED_INFORMATION, el controlador debe calcular el código de autenticación de mensajes en modo de cifrado de clave única (CBC) para los datos de DXGKMDT_OPM_REQUESTED_INFORMATION y debe establecer este OMAC en el miembro de omac de DXGKMDT_OPM_REQUESTED_INFORMATION. Para obtener más información sobre cómo calcular OMAC, consulte el algoritmo OMAC-1.
Nota Antes de que dxgkDdiOPMGetCOPPCompatibleInformation devuelva, el controlador de miniporte de pantalla debe comprobar que el número de secuencia especificado en el miembro ulSequenceNumber de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS coincide con el número de secuencia que el controlador ha almacenado actualmente. A continuación, el controlador debe incrementar el número de secuencia almacenado.
Nota El controlador debe devolver un número aleatorio criptográficomente seguro de 128 bits en el miembro rnRandomNumber de DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING o DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION. La aplicación de envío generó el número aleatorio y se proporcionó en el miembro rnRandomNumber de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.
El controlador devuelve la siguiente información para la solicitud indicada:
Para DXGKMDT_OPM_GET_SUPPORTED_PROTECTION_TYPES establecer en el miembro guidInformation y undefined en el miembro abParameters de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS, el controlador indica los tipos disponibles de mecanismos de protección. Para indicar los tipos de protección disponibles, el controlador devuelve una combinación OR bit a bit válida de los valores de la enumeración DXGKMDT_OPM_PROTECTION_TYPE en el miembro ulInformation de DXGKMDT_OPM_STANDARD_INFORMATION. Los valores de DXGKMDT_OPM_PROTECTION_TYPE_ACP, DXGKMDT_OPM_PROTECTION_TYPE_CGMSA y DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP son válidos.
Para DXGKMDT_OPM_GET_CONNECTOR_TYPE establecer en guidInformation y undefined en abParameters, el controlador indica el tipo de conector. Para indicar el tipo de conector, el controlador devuelve una combinación OR bit a bit válida de los valores de la enumeración D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY en el miembro ulInformation de DXGKMDT_OPM_STANDARD_INFORMATION.
Para DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL o DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL establecido en guidInformation y el tipo de protección establecido en abParameters, el controlador devuelve un valor de nivel de protección en el miembro ulInformation de DXGKMDT_OPM_STANDARD_INFORMATION. Si el tipo de protección es DXGKMDT_OPM_PROTECTION_TYPE_ACP, el valor de nivel de protección procede de la enumeración DXGKMDT_OPM_ACP_PROTECTION_LEVEL . Si el tipo de protección es DXGKMDT_OPM_PROTECTION_TYPE_CGMSA, el valor de nivel de protección procede de la enumeración DXGKMDT_OPM_CGMSA . Si el tipo de protección es DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP, el valor de nivel de protección procede de la enumeración DXGKMDT_OPM_HDCP_PROTECTION_LEVEL .
La solicitud DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL devuelve el nivel de protección establecido actualmente para la salida protegida. La solicitud DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL devuelve el nivel de protección establecido actualmente para el conector físico asociado a la salida protegida.
Para DXGKMDT_OPM_GET_ADAPTER_BUS_TYPE establecido en guidInformation y undefined en abParameters, el controlador identifica el tipo del bus que conecta un adaptador de gráficos al puente norte del conjunto de chips de placa madre. Para identificar el tipo del bus, el controlador devuelve una combinación OR bit a bit válida de los valores de la enumeración DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION en el miembro ulInformation de DXGKMDT_OPM_STANDARD_INFORMATION.
El controlador solo puede combinar el valor de DXGKMDT_OPM_COPP_COMPATIBLE_BUS_TYPE_INTEGRATED (0x80000000) con uno de los valores de tipo bus cuando ninguna de las señales de interfaz entre el adaptador de gráficos y otros subsistemas está disponible en un bus de expansión que usa una especificación disponible públicamente y un tipo de conector estándar. Los buses de memoria se excluyen de esta definición.
Para DXGKMDT_OPM_GET_ACTUAL_OUTPUT_FORMAT establecido en guidInformation y undefined en abParameters, el controlador devuelve información en los miembros de DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT que describen cómo se da formato a la señal que pasa por el conector físico asociado a la salida protegida.
Para DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING establecido en guidInformation y undefined en abParameters, el controlador devuelve información en los miembros de DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING que describen cómo se protege la señal que pasa por el conector físico asociado a la salida protegida.
Para DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION establecido en guidInformation y undefined en abParameters, el controlador devuelve información en los miembros de DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION que contienen información de Protección de contenido digital de ancho de banda alto (HDCP).