Recuperando a DDI do OPM
A sequência a seguir mostra como o subsistema de kernel de elementos gráficos (Dxgkrnl.sys) do Microsoft DirectX recupera o OPM DDI do driver de miniporta de exibição:
O subsistema de kernel de elementos gráficos DirectX chama a função DxgkDdiAddDevice do driver de miniporta de exibição para criar um bloco de contexto para um adaptador gráfico e retornar um identificador para esse adaptador gráfico.
O subsistema de kernel de elementos gráficos DirectX inicializa uma estrutura QUERY_INTERFACE com os valores na tabela a seguir.
Nome do membro Tipo de membro Valor Interfacetype
CONST PGUID
Um ponteiro para GUID_DEVINTERFACE_OPM
(BF4672DE-6B4E-4BE4-A325-68A91EA49C09)
Tamanho
USHORT
sizeof(DXGK_OPM_INTERFACE)
Versão
USHORT
DXGK_OPM_INTERFACE_VERSION_1
Interface
PINTERFACE
Um ponteiro para uma estrutura DXGK_OPM_INTERFACE
InterfaceSpecificData
PVOID
NULO
O subsistema de kernel de elementos gráficos DirectX passa o QUERY_INTERFACE inicializado em uma chamada para a função DxgkDdiQueryInterface do driver de miniporta de exibição.
Se o driver do miniporto de exibição não der suporte à interface OPM, DxgkDdiQueryInterface deverá retornar STATUS_NOT_SUPPORTED.
Se o driver de miniporto de exibição der suporte ao OPM, DxgkDdiQueryInterface inicializará a estrutura DXGK_OPM_INTERFACE recebida no membro Interface do QUERY_INTERFACE com os valores na tabela a seguir.
Nome, tipo e valor do membro:
Tamanho
Digite USHORTsizeof(DXGK_OPM_INTERFACE)
Versão
Digite USHORTDXGK_OPM_INTERFACE_VERSION_1
InterfaceReference
Tipo PINTERFACE_REFERENCEUm ponteiro para a rotina InterfaceReference do driver de miniporta de exibição (Para obter informações sobre InterfaceReference, consulte a seção Comentários da estrutura INTERFACE .)
InterfaceDereference
Digite PINTERFACE_DEREFERENCEUm ponteiro para a rotina InterfaceDereference do driver de miniporta de exibição (Para obter informações sobre InterfaceDereference, consulte a seção Comentários da estrutura INTERFACE .)
DxgkDdiOPMGetCertificateSize
Tipo DXGKDDI_OPM_GET_CERTIFICATE_SIZEUm ponteiro para a função DxgkDdiOPMGetCertificateSize do driver de miniporta de exibição
DxgkDdiOPMGetCertificate
Tipo DXGKDDI_OPM_GET_CERTIFICATEUm ponteiro para a função DxgkDdiOPMGetCertificate do driver de miniporta de exibição
DxgkDdiOPMCreateProtectedOutput
Tipo DXGKDDI_OPM_CREATE_PROTECTED_OUTPUTUm ponteiro para a função DxgkDdiOPMCreateProtectedOutput do driver de miniporta de exibição
DxgkDdiOPMGetRandomNumber
Tipo DXGKDDI_OPM_GET_RANDOM_NUMBERUm ponteiro para a função DxgkDdiOPMGetRandomNumber do driver de miniporta de exibição
DxgkDdiOPMSetSigningKeyAndSequenceNumbers
DXGKDDI_OPM_SET_SIGNING_KEY_AND_SEQUENCE_NUMBERSUm ponteiro para a função DxgkDdiOPMSetSigningKeyAndSequenceNumbers do driver de miniporta de exibição
DxgkDdiOPMGetInformation
DXGKDDI_OPM_GET_INFORMATIONUm ponteiro para a função DxgkDdiOPMGetInformation do driver de miniporta de exibição
DxgkDdiOPMGetCOPPCompatibleInformation
DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATIONUm ponteiro para a função DxgkDdiOPMGetCOPPCompatibleInformation do driver de miniporta de exibição
DxgkDdiOPMConfigureProtectedOutput
DXGKDDI_OPM_CONFIGURE_PROTECTED_OUTPUTUm ponteiro para a função DxgkDdiOPMConfigureProtectedOutput do driver de miniporta de exibição
DxgkDdiOPMDestroyProtectedOutput
DXGKDDI_OPM_DESTROY_PROTECTED_OUTPUTUm ponteiro para a função DxgkDdiOPMDestroyProtectedOutput do driver de miniporta de exibição
Quando o driver de miniporto de exibição for concluído usando a interface OPM, o driver chamará sua rotina InterfaceDereference . O driver deve chamar InterfaceDereference antes que sua função DxgkDdiRemoveDevice seja chamada.