DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION função de retorno de chamada (dispmprt.h)

A função DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION recupera informações compatíveis com o COPP (Certified Output Protection Protocol) do objeto de saída protegido fornecido.

Sintaxe

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

Um identificador para um bloco de contexto associado a um adaptador de exibição. Anteriormente, a função DxgkDdiAddDevice do driver de miniporta de exibição forneceu esse identificador para o subsistema de kernel de elementos gráficos DirectX.

[in] ProtectedOutputHandle

O identificador para um objeto de saída protegido. A função DxgkDdiOPMCreateProtectedOutput cria o objeto de saída protegido e retorna o identificador para o objeto . O objeto de saída protegido que corresponde a esse identificador deve ter semântica COPP.

[in] Parameters

Um ponteiro para uma estrutura DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS que contém o tipo de informações compatíveis com COPP a serem recuperadas do objeto de saída protegido cujo identificador é especificado no parâmetro ProtectedOutputHandle . DxgkDdiOPMGetCOPPCompatibleInformation determina se os parâmetros contêm uma solicitação válida do aplicativo que criou indiretamente o objeto de saída protegido. Para obter mais informações, consulte a seção Comentários.

[out] RequestedInformation

Um ponteiro para uma estrutura DXGKMDT_OPM_REQUESTED_INFORMATION que recebe as informações compatíveis com COPP do objeto de saída protegido se DxgkDdiOPMGetCOPPCompatibleInformation retornar com êxito .

Se DxgkDdiOPMGetCOPPCompatibleInformation falhar, o valor para o qual RequestedInformation aponta ficará inalterado.

Retornar valor

DxgkDdiOPMGetCOPPCompatibleInformation retorna STATUS_SUCCESS ou um código de erro Ntstatus.h .

Comentários

O subsistema de kernel de elementos gráficos DirectX deve chamar DxgkDdiOPMGetCOPPCompatibleInformation somente se a saída tiver semântica COPP.

Antes que o subsistema de kernel de elementos gráficos DirectX passe o identificador de saída protegido para o parâmetro ProtectedOutputHandle em uma chamada para DxgkDdiOPMGetCOPPCompatibleInformation, o subsistema de kernel de elementos gráficos DirectX sempre passa o identificador de saída protegido para as funções DxgkDdiOPMSetSigningKeyAndSequenceNumbers e DxgkDdiOPMGetRandomNumber .

A seguir estão alguns fatos que pertencem à função DxgkDdiOPMGetCOPPCompatibleInformation e que não pertencem à função DxgkDdiOPMGetInformation :

  • O subsistema de kernel de elementos gráficos DirectX pode passar um identificador para uma saída protegida somente com semântica COPP.

  • A estrutura DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS para a qual o parâmetro Parameters aponta não está assinada.

  • O subsistema de kernel de elementos gráficos DirectX pode passar os GUIDs DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING e DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION no membro guidInformation do DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

  • O subsistema de kernel de elementos gráficos DirectX não pode passar o GUID DXGKMDT_OPM_GET_CURRENT_HDCP_SRM_VERSION no membro guidInformation do DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

  • O subsistema de kernel de elementos gráficos DirectX pode especificar DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP nos primeiros 4 bytes do membro abParameters do DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS juntamente com o GUID DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL ou DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL no membro guidInformation do DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

  • O subsistema de kernel de elementos gráficos DirectX não pode especificar DXGKMDT_OPM_PROTECTION_TYPE_HDCP nos primeiros 4 bytes do membro abParameters do DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS juntamente com o DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL ou DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL GUID no membro guidInformation do DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

O driver deve executar a sequência a seguir quando sua função DxgkDdiOPMGetCOPPCompatibleInformation for chamada.

  1. Verifique se o identificador de saída protegido que foi passado para o parâmetro ProtectedOutputHandle de DxgkDdiOPMGetCOPPCompatibleInformation tem semântica copp.

  2. Recupere as informações solicitadas.

  3. Copie o número aleatório que o membro rnRandomNumber de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS especifica para o membro rnRandomNumber da estrutura DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING ou DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION. A estrutura usada depende do tipo de informação solicitada pelo chamador. A estrutura é definida no membro abRequestedInformation da estrutura DXGKMDT_OPM_REQUESTED_INFORMATION para a qual o parâmetro RequestedInformation aponta.

  4. Assine a estrutura DXGKMDT_OPM_REQUESTED_INFORMATION e coloque a assinatura no membro omac do DXGKMDT_OPM_REQUESTED_INFORMATION. A criptografia de bloco AES e o algoritmo de assinatura OMAC-1 devem ser usados para assinar a estrutura. Para obter informações sobre o AES, consulte o site do RSA Laboratories . Para obter informações sobre o OMAC-1, consulte a página de referência do DXGKMDT_OPM_OMAC .

Inicialmente, o subsistema de kernel de elementos gráficos DirectX chama DxgkDdiOPMGetCOPPCompatibleInformation para recuperar informações sobre a saída e, em seguida, chama DxgkDdiOPMConfigureProtectedOutput uma ou mais vezes para configurar a saída. Posteriormente, o subsistema de kernel de elementos gráficos DirectX chama DxgkDdiOPMGetCOPPCompatibleInformation sem também chamar DxgkDdiOPMConfigureProtectedOutput.

DxgkDdiOPMGetCOPPCompatibleInformation deve ser tornado paginável.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho dispmprt.h (inclua Dispmprt.h)
IRQL PASSIVE_LEVEL (consulte a seção Comentários)

Confira também

DxgkDdiAddDevice

DxgkDdiOPMConfigureProtectedOutput

DxgkDdiOPMCreateProtectedOutput

DxgkDdiOPMGetInformation

DxgkDdiOPMGetRandomNumber

DxgkDdiOPMSetSigningKeyAndSequenceNumbers

DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS

DXGKMDT_OPM_OMAC

DXGKMDT_OPM_REQUESTED_INFORMATION