Partilhar 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 miniporto 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çãoDxgkDdiOPMCreateProtectedOutputcria 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 de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS que contém parâmetros que são 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 retorna com êxito.

Se DXGKDDI_OPM_GET_INFORMATION falhar, o valor ao qual RequestedInformation aponta permanece inalterado.

Valor de retorno

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

Observações

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 a saída protegida handle to the DxgkDdiOPMSetSigningKeyAndSequenceNumbers and DxgkDdiOPMGetRandomNumber functions.

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 SRM HDCP 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 guidInformation membro da estrutura DXGKMDT_OPM_GET_INFO_PARAMETERS à qual os parâmetros parâmetros nunca devem conter os GUIDs DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION e DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING, pois somente os aplicativos COPP devem especificar esses GUIDs.

Os primeiros 4 bytes do abParameters membro do DXGKMDT_OPM_GET_INFO_PARAMETERS nunca devem conter o tipo de proteção DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP quando o GUID DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL ou DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL for especificado no guidInformation membro do DXGKMDT_OPM_GET_INFO_PARAMETERS porque somente 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 é 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 abRequestedInformation membro da estrutura DXGKMDT_OPM_REQUESTED_INFORMATION à 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 chamar também DxgkDdiOPMConfigureProtectedOutput.

DXGKDDI_OPM_GET_INFORMATION deve ser tornado paginável.

Requisitos

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

Consulte 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