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.
Verifique se o identificador de saída protegido que foi passado para o parâmetro ProtectedOutputHandle de DxgkDdiOPMGetCOPPCompatibleInformation tem semântica copp.
Recupere as informações solicitadas.
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.
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
DxgkDdiOPMConfigureProtectedOutput
DxgkDdiOPMCreateProtectedOutput
DxgkDdiOPMSetSigningKeyAndSequenceNumbers