Compartir a través de


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

La función DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION recupera información compatible con el Protocolo de protección de salida certificada (COPP) del objeto de salida protegido especificado.

Sintaxis

DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION DxgkddiOpmGetCoppCompatibleInformation;

NTSTATUS DxgkddiOpmGetCoppCompatibleInformation(
  [in]  PVOID MiniportDeviceContext,
  [in]  HANDLE ProtectedOutputHandle,
  [in]  const DXGKMDT_OPM_COPP_COMPATIBLE_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 copp.

[in] Parameters

Puntero a una estructura de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS que contiene el tipo de información compatible con COPP para recuperar del objeto de salida protegido cuyo identificador se especifica en el parámetro ProtectedOutputHandle . DxgkDdiOPMGetCOPPCompatibleInformation 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 DXGKMDT_OPM_REQUESTED_INFORMATION que recibe la información compatible con COPP del objeto de salida protegido si DxgkDdiOPMGetCOPPCompatibleInformation devuelve correctamente.

Si Se produce un error en DxgkDdiOPMGetCOPPCompatibleInformation , 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 DxgkDdiOPMGetCOPPCompatibleInformation solo si la salida tiene semántica COPP.

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 DxgkDdiOPMGetCOPPCompatibleInformation, el subsistema de kernel de gráficos directX siempre pasa el identificador de salida protegido a las funciones DxgkDdiOPMSetSigningKeyAndSequenceNumbers y DxgkDdiOPMGetRandomNumber .

A continuación se muestran algunos hechos relacionados con DxgkDdiOPMGetCOPPCompatibleInformation y que no pertenecen a la función DxgkDdiOPMGetInformation :

  • El subsistema del kernel de gráficos de DirectX puede pasar un identificador a una salida protegida solo con semántica copp.

  • La estructura DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS a la que apunta el parámetro Parameters no está firmada.

  • El subsistema del kernel de gráficos de DirectX puede pasar los GUID de DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING y DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION en el miembro guidInformation de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

  • El subsistema del kernel de gráficos de DirectX no puede pasar el GUID de DXGKMDT_OPM_GET_CURRENT_HDCP_SRM_VERSION en el miembro guidInformation de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

  • El subsistema del kernel de gráficos directX puede especificar DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP en los primeros 4 bytes del miembro abParameters de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS junto con el GUID de DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL o DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL en el miembro guidInformation de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

  • El subsistema del kernel de gráficos directX no puede especificar DXGKMDT_OPM_PROTECTION_TYPE_HDCP en los primeros 4 bytes del miembro abParameters de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS junto con el GUID de DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL o DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL en el miembro guidInformation de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

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

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

  2. Recupere la información solicitada.

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

  4. 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. 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 .

Inicialmente, el subsistema del kernel de gráficos de DirectX llama a DxgkDdiOPMGetCOPPCompatibleInformation 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 DxgkDdiOPMGetCOPPCompatibleInformation sin llamar también a DxgkDdiOPMConfigureProtectedOutput.

DxgkDdiOPMGetCOPPCompatibleInformation 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

DxgkDdiOPMGetInformation

DxgkDdiOPMGetRandomNumber

DxgkDdiOPMSetSigningKeyAndSequenceNumbers

DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS

DXGKMDT_OPM_OMAC

DXGKMDT_OPM_REQUESTED_INFORMATION