Share via


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

A função DXGKDDI_OPM_GET_INFORMATION recupera informações do objeto de saída protegido fornecido.

Sintaxe

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

Um identificador para um bloco de contexto associado a um adaptador de exibição. Anteriormente, a função DxgkDdiAddDevice do driver de miniport 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 OPM.

[in] Parameters

Um ponteiro para uma estrutura DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS que contém parâmetros usados para recuperar informações de um objeto de saída protegido cujo identificador é especificado no parâmetro ProtectedOutputHandle . DXGKDDI_OPM_GET_INFORMATION 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 de DXGKMDT_OPM_REQUESTED_INFORMATION que recebe as informações do objeto de saída protegido se DXGKDDI_OPM_GET_INFORMATION retornar com êxito.

Se DXGKDDI_OPM_GET_INFORMATION falhar, o valor para o qual RequestedInformation aponta permanece 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 DXGKDDI_OPM_GET_INFORMATION somente se a saída tiver semântica OPM.

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 DXGKDDI_OPM_GET_INFORMATION, o subsistema de kernel de elementos gráficos DirectX sempre passa o identificador de saída protegido para as funções DxgkDdiOPMSetSigningKeyAndSequenceNumbers e DxgkDdiOPMGetRandomNumber .

DXGKDDI_OPM_GET_INFORMATION recupera um dos seguintes tipos de informações:

  • O tipo de conector da saída protegida.
  • Os tipos de proteção de conteúdo compatíveis com a saída protegida. As saídas protegidas atualmente podem dar suporte a ACP, CGMS-A e HDCP.
  • O nível de proteção virtual atual da saída protegida para um tipo de proteção específico.
  • O nível de proteção real da saída física para um tipo de proteção específico.
  • A versão do HDCP SRM que a saída protegida usa atualmente.
  • O tipo de barramento de expansão que o adaptador gráfico usa e como o adaptador gráfico está conectado à ponte norte do computador.
  • O formato das imagens que o adaptador gráfico envia da saída física para o monitor.

O membro guidInformation da estrutura DXGKMDT_OPM_GET_INFO_PARAMETERS para a qual o parâmetro Parameters aponta nunca deve conter os GUIDs de DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION e DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING porque somente os aplicativos COPP devem especificar esses GUIDs.

Os primeiros 4 bytes do membro abParameters do DXGKMDT_OPM_GET_INFO_PARAMETERS nunca devem conter o tipo de proteção DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP quando o guid de DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL ou DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL é especificado no membro guidInformation de DXGKMDT_OPM_GET_INFO_PARAMETERS porque apenas aplicativos COPP usam esse tipo de proteção.

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

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

  2. Verifique se as informações no parâmetro Parameters foram assinadas com a chave de assinatura do objeto de saída protegido. A chave de assinatura do objeto de saída protegido foi definida anteriormente quando a função DxgkDdiOPMSetSigningKeyAndSequenceNumbers foi chamada. A criptografia de bloco AES (Advanced Encryption Standard) e o algoritmo de assinatura OMAC-1 devem ser usados para verificar a assinatura. 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 DXGKMDT_OPM_OMAC .

  3. Recupere as informações solicitadas.

  4. Copie o número aleatório que o membro rnRandomNumber de DXGKMDT_OPM_GET_INFO_PARAMETERS especifica para o membro rnRandomNumber na estrutura DXGKMDT_OPM_STANDARD_INFORMATION ou DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT. A estrutura usada depende do tipo de informação que o chamador solicitou e é definida no membro abRequestedInformation da estrutura DXGKMDT_OPM_REQUESTED_INFORMATION para a qual o parâmetro RequestedInformation aponta.

  5. Assine a estrutura DXGKMDT_OPM_REQUESTED_INFORMATION e coloque a assinatura no membro omac do DXGKMDT_OPM_REQUESTED_INFORMATION. A criptografia de bloco do AES e o algoritmo de assinatura OMAC-1 devem ser usados para assinar a estrutura.

Inicialmente, o subsistema de kernel de elementos gráficos DirectX chama DXGKDDI_OPM_GET_INFORMATION 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 DXGKDDI_OPM_GET_INFORMATION sem também chamar DxgkDdiOPMConfigureProtectedOutput.

DXGKDDI_OPM_GET_INFORMATION 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

DXGKDDI_OPM_GET_INFORMATION

DxgkDdiOPMGetRandomNumber

DxgkDdiOPMSetSigningKeyAndSequenceNumbers

DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS

DXGKMDT_OPM_OMAC

DXGKMDT_OPM_REQUESTED_INFORMATION