Compartir a través de


DXGKDDI_OPM_GET_INFORMATION función de devolución de llamada (dispmprt.h)

La función DXGKDDI_OPM_GET_INFORMATION recupera información del objeto de salida protegido especificado.

Sintaxis

DXGKDDI_OPM_GET_INFORMATION DxgkddiOpmGetInformation;

NTSTATUS DxgkddiOpmGetInformation(
  [in]  PVOID MiniportDeviceContext,
  [in]  HANDLE ProtectedOutputHandle,
  [in]  const DXGKMDT_OPM_GET_INFO_PARAMETERS *Parameters,
  [out] PDXGKMDT_OPM_REQUESTED_INFORMATION RequestedInformation
)
{...}

Parámetros

[in] MiniportDeviceContext

Identificador de un bloque de contexto asociado a un adaptador de pantalla. Anteriormente, la función DxgkDdiAddDevice del controlador de minipuerto de pantalla proporcionó este identificador al subsistema del kernel de gráficos directX.

[in] ProtectedOutputHandle

Identificador de un objeto de salida protegido. La función DxgkDdiOPMCreateProtectedOutput crea el objeto de salida protegido y devuelve el identificador al objeto . El objeto de salida protegido que corresponde a este identificador debe tener semántica de OPM.

[in] Parameters

Puntero a una estructura de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS que contiene parámetros que se usan para recuperar información de un objeto de salida protegido cuyo identificador se especifica en el parámetro ProtectedOutputHandle . DXGKDDI_OPM_GET_INFORMATION determina si los parámetros contienen una solicitud válida de la aplicación que creó indirectamente el objeto de salida protegido. Para obtener más información, vea la sección Comentarios.

[out] RequestedInformation

Puntero a una estructura de DXGKMDT_OPM_REQUESTED_INFORMATION que recibe la información del objeto de salida protegido si DXGKDDI_OPM_GET_INFORMATION devuelve correctamente.

Si DXGKDDI_OPM_GET_INFORMATION produce un error, el valor al que RequestedInformation apunta a no cambia.

Valor devuelto

DxgkDdiOPMGetCOPPCompatibleInformation devuelve STATUS_SUCCESS o un código de error Ntstatus.h .

Comentarios

El subsistema del kernel de gráficos de DirectX debe llamar a DXGKDDI_OPM_GET_INFORMATION solo si la salida tiene semántica de OPM.

Antes de que el subsistema del kernel de gráficos de DirectX pase el identificador de salida protegido al parámetro ProtectedOutputHandle en una llamada a DXGKDDI_OPM_GET_INFORMATION, el subsistema del kernel de gráficos directX siempre pasa el identificador de salida protegido a las funciones DxgkDdiOPMSetSigningKeyAndSequenceNumbers y DxgkDdiOPMGetRandomNumber .

DXGKDDI_OPM_GET_INFORMATION recupera uno de los siguientes tipos de información:

  • Tipo de conector de la salida protegida.
  • Los tipos de protección de contenido que admite la salida protegida. Actualmente, las salidas protegidas pueden admitir ACP, CGMS-A y HDCP.
  • El nivel de protección virtual actual de la salida protegida para un tipo de protección determinado.
  • Nivel de protección real de la salida física para un tipo de protección determinado.
  • Versión del SRM de HDCP que usa actualmente la salida protegida.
  • El tipo de bus de expansión que usa el adaptador de gráficos y cómo se conecta el adaptador de gráficos al puente norte del equipo.
  • Formato de las imágenes que envía el adaptador de gráficos desde la salida física al monitor.

El miembro guidInformation de la estructura DXGKMDT_OPM_GET_INFO_PARAMETERS a la que apunta el parámetro Parameters nunca debe contener el DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION y DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING GUID porque solo las aplicaciones COPP deben especificar estos GUID.

Los primeros 4 bytes del miembro abParameters de DXGKMDT_OPM_GET_INFO_PARAMETERS nunca deben contener el tipo de protección DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP cuando el GUID de DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL o DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL se especifica en el miembro guidInformation de DXGKMDT_OPM_GET_INFO_PARAMETERS porque solo las aplicaciones COPP usan este tipo de protección.

El controlador debe realizar la siguiente secuencia cuando se llama a su función DXGKDDI_OPM_GET_INFORMATION .

  1. Compruebe que el identificador de salida protegido que se pasó al parámetro ProtectedOutputHandle de DXGKDDI_OPM_GET_INFORMATION tiene semántica de OPM.

  2. Compruebe que la información del parámetro Parameters se firmó con la clave de firma del objeto de salida protegido. La clave de firma del objeto de salida protegido se estableció anteriormente cuando se llamó a la función DxgkDdiOPMSetSigningKeyAndSequenceNumbers . El cifrado de bloques estándar de cifrado avanzado (AES) y el algoritmo de firma OMAC-1 deben usarse para comprobar la firma. Para obtener información sobre AES, consulte el sitio web de RSA Laboratories . Para obtener información sobre OMAC-1, consulte la página de referencia de DXGKMDT_OPM_OMAC .

  3. Recupere la información solicitada.

  4. Copie el número aleatorio que el miembro rnRandomNumber de DXGKMDT_OPM_GET_INFO_PARAMETERS especifica para el miembro rnRandomNumber en la estructura DXGKMDT_OPM_STANDARD_INFORMATION o DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT. La estructura que se usa depende del tipo de información que solicitó el autor de la llamada y se establece en el miembro abRequestedInformation de la estructura DXGKMDT_OPM_REQUESTED_INFORMATION a la que apunta el parámetro RequestedInformation .

  5. Firme la estructura DXGKMDT_OPM_REQUESTED_INFORMATION y coloque la firma en el miembro omac de DXGKMDT_OPM_REQUESTED_INFORMATION. El cifrado de bloques AES y el algoritmo de firma OMAC-1 deben usarse para firmar la estructura.

Inicialmente, el subsistema del kernel de gráficos de DirectX llama a DXGKDDI_OPM_GET_INFORMATION para recuperar información sobre la salida y, a continuación, llama a DxgkDdiOPMConfigureProtectedOutput una o varias veces para configurar la salida. Posteriormente, el subsistema del kernel de gráficos de DirectX llama a DXGKDDI_OPM_GET_INFORMATION sin llamar también a DxgkDdiOPMConfigureProtectedOutput.

DXGKDDI_OPM_GET_INFORMATION debe ser paginable.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado dispmprt.h (incluir Dispmprt.h)
IRQL PASSIVE_LEVEL (consulte la sección Comentarios)

Consulte también

DxgkDdiAddDevice

DxgkDdiOPMConfigureProtectedOutput

DxgkDdiOPMCreateProtectedOutput

DXGKDDI_OPM_GET_INFORMATION

DxgkDdiOPMGetRandomNumber

DxgkDdiOPMSetSigningKeyAndSequenceNumbers

DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS

DXGKMDT_OPM_OMAC

DXGKMDT_OPM_REQUESTED_INFORMATION