Partager via


Récupération de l’ID DDI OPM

La séquence suivante montre comment le sous-système du noyau graphique Microsoft DirectX (Dxgkrnl.sys) récupère le DDI OPM du pilote miniport d’affichage :

  1. Le sous-système du noyau graphique DirectX appelle la fonction DxgkDdiAddDevice du pilote miniport d’affichage pour créer un bloc de contexte pour une carte graphique et retourner un handle à cette carte graphique.

  2. Le sous-système du noyau graphique DirectX initialise une structure QUERY_INTERFACE avec les valeurs du tableau suivant.

    Nom du membre Type de membre Valeur

    InterfaceType

    CONST PGUID

    Pointeur vers GUID_DEVINTERFACE_OPM

    (BF4672DE-6B4E-4BE4-A325-68A91EA49C09)

    Taille

    USHORT

    sizeof(DXGK_OPM_INTERFACE)

    Version

    USHORT

    DXGK_OPM_INTERFACE_VERSION_1

    Interface

    PINTERFACE

    Pointeur vers une structure de DXGK_OPM_INTERFACE

    InterfaceSpecificData

    PVOID

    NULL

  3. Le sous-système du noyau graphique DirectX transmet le QUERY_INTERFACE initialisé dans un appel à la fonction DxgkDdiQueryInterface du pilote miniport d’affichage.

  4. Si le pilote de miniport d’affichage ne prend pas en charge l’interface OPM, DxgkDdiQueryInterface doit retourner STATUS_NOT_SUPPORTED.

    Si le pilote de miniport d’affichage prend en charge OPM, DxgkDdiQueryInterface initialise la structure DXGK_OPM_INTERFACE qui a été reçue dans le membre Interface de QUERY_INTERFACE avec les valeurs du tableau suivant.

    Nom, type et valeur du membre :

    Taille
    Type USHORT

    sizeof(DXGK_OPM_INTERFACE)

    Version
    Type USHORT

    DXGK_OPM_INTERFACE_VERSION_1

    InterfaceReference
    Type PINTERFACE_REFERENCE

    Pointeur vers la routine InterfaceReference du pilote de miniport d’affichage (pour plus d’informations sur InterfaceReference, consultez la section Remarques de la structure INTERFACE .)

    InterfaceDereference
    Type PINTERFACE_DEREFERENCE

    Pointeur vers la routine InterfaceDereference du pilote de miniport d’affichage (pour plus d’informations sur InterfaceDereference, consultez la section Notes de la structure INTERFACE .)

    DxgkDdiOPMGetCertificateSize
    Type DXGKDDI_OPM_GET_CERTIFICATE_SIZE

    Pointeur vers la fonction DxgkDdiOPMGetCertificateSize du pilote miniport d’affichage

    DxgkDdiOPMGetCertificate
    Type DXGKDDI_OPM_GET_CERTIFICATE

    Pointeur vers la fonction DxgkDdiOPMGetCertificate du pilote miniport d’affichage

    DxgkDdiOPMCreateProtectedOutput
    Type DXGKDDI_OPM_CREATE_PROTECTED_OUTPUT

    Pointeur vers la fonction DxgkDdiOPMCreateProtectedOutput du pilote miniport d’affichage

    DxgkDdiOPMGetRandomNumber
    Type DXGKDDI_OPM_GET_RANDOM_NUMBER

    Pointeur vers la fonction DxgkDdiOPMGetRandomNumber du pilote miniport d’affichage

    DxgkDdiOPMSetSigningKeyAndSequenceNumbers
    DXGKDDI_OPM_SET_SIGNING_KEY_AND_SEQUENCE_NUMBERS

    Pointeur vers la fonction DxgkDdiOPMSetSigningKeyAndSequenceNumbers du pilote miniport d’affichage

    DxgkDdiOPMGetInformation
    DXGKDDI_OPM_GET_INFORMATION

    Pointeur vers la fonction DxgkDdiOPMGetInformation du pilote miniport d’affichage

    DxgkDdiOPMGetCOPPCompatibleInformation
    DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION

    Pointeur vers la fonction DxgkDdiOPMGetCOPPCompatibleInformation du pilote miniport d’affichage

    DxgkDdiOPMConfigureProtectedOutput
    DXGKDDI_OPM_CONFIGURE_PROTECTED_OUTPUT

    Pointeur vers la fonction DxgkDdiOPMConfigureProtectedOutput du pilote miniport d’affichage

    DxgkDdiOPMDestroyProtectedOutput
    DXGKDDI_OPM_DESTROY_PROTECTED_OUTPUT

    Pointeur vers la fonction DxgkDdiOPMDestroyProtectedOutput du pilote miniport d’affichage

  5. Lorsque le pilote de miniport d’affichage est terminé à l’aide de l’interface OPM, le pilote appelle sa routine InterfaceDereference . Le pilote doit appeler InterfaceDereference avant d’appeler sa fonction DxgkDdiRemoveDevice .