Compartilhar via


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:

  1. 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.

  2. 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

  3. 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.

  4. 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 USHORT

    sizeof(DXGK_OPM_INTERFACE)

    Versão
    Digite USHORT

    DXGK_OPM_INTERFACE_VERSION_1

    InterfaceReference
    Tipo PINTERFACE_REFERENCE

    Um 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_DEREFERENCE

    Um 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_SIZE

    Um ponteiro para a função DxgkDdiOPMGetCertificateSize do driver de miniporta de exibição

    DxgkDdiOPMGetCertificate
    Tipo DXGKDDI_OPM_GET_CERTIFICATE

    Um ponteiro para a função DxgkDdiOPMGetCertificate do driver de miniporta de exibição

    DxgkDdiOPMCreateProtectedOutput
    Tipo DXGKDDI_OPM_CREATE_PROTECTED_OUTPUT

    Um ponteiro para a função DxgkDdiOPMCreateProtectedOutput do driver de miniporta de exibição

    DxgkDdiOPMGetRandomNumber
    Tipo DXGKDDI_OPM_GET_RANDOM_NUMBER

    Um ponteiro para a função DxgkDdiOPMGetRandomNumber do driver de miniporta de exibição

    DxgkDdiOPMSetSigningKeyAndSequenceNumbers
    DXGKDDI_OPM_SET_SIGNING_KEY_AND_SEQUENCE_NUMBERS

    Um ponteiro para a função DxgkDdiOPMSetSigningKeyAndSequenceNumbers do driver de miniporta de exibição

    DxgkDdiOPMGetInformation
    DXGKDDI_OPM_GET_INFORMATION

    Um ponteiro para a função DxgkDdiOPMGetInformation do driver de miniporta de exibição

    DxgkDdiOPMGetCOPPCompatibleInformation
    DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION

    Um ponteiro para a função DxgkDdiOPMGetCOPPCompatibleInformation do driver de miniporta de exibição

    DxgkDdiOPMConfigureProtectedOutput
    DXGKDDI_OPM_CONFIGURE_PROTECTED_OUTPUT

    Um ponteiro para a função DxgkDdiOPMConfigureProtectedOutput do driver de miniporta de exibição

    DxgkDdiOPMDestroyProtectedOutput
    DXGKDDI_OPM_DESTROY_PROTECTED_OUTPUT

    Um ponteiro para a função DxgkDdiOPMDestroyProtectedOutput do driver de miniporta de exibição

  5. 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.