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 :
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.
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
Le sous-système du noyau graphique DirectX transmet le QUERY_INTERFACE initialisé dans un appel à la fonction DxgkDdiQueryInterface du pilote miniport d’affichage.
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 USHORTsizeof(DXGK_OPM_INTERFACE)
Version
Type USHORTDXGK_OPM_INTERFACE_VERSION_1
InterfaceReference
Type PINTERFACE_REFERENCEPointeur 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_DEREFERENCEPointeur 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_SIZEPointeur vers la fonction DxgkDdiOPMGetCertificateSize du pilote miniport d’affichage
DxgkDdiOPMGetCertificate
Type DXGKDDI_OPM_GET_CERTIFICATEPointeur vers la fonction DxgkDdiOPMGetCertificate du pilote miniport d’affichage
DxgkDdiOPMCreateProtectedOutput
Type DXGKDDI_OPM_CREATE_PROTECTED_OUTPUTPointeur vers la fonction DxgkDdiOPMCreateProtectedOutput du pilote miniport d’affichage
DxgkDdiOPMGetRandomNumber
Type DXGKDDI_OPM_GET_RANDOM_NUMBERPointeur vers la fonction DxgkDdiOPMGetRandomNumber du pilote miniport d’affichage
DxgkDdiOPMSetSigningKeyAndSequenceNumbers
DXGKDDI_OPM_SET_SIGNING_KEY_AND_SEQUENCE_NUMBERSPointeur vers la fonction DxgkDdiOPMSetSigningKeyAndSequenceNumbers du pilote miniport d’affichage
DxgkDdiOPMGetInformation
DXGKDDI_OPM_GET_INFORMATIONPointeur vers la fonction DxgkDdiOPMGetInformation du pilote miniport d’affichage
DxgkDdiOPMGetCOPPCompatibleInformation
DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATIONPointeur vers la fonction DxgkDdiOPMGetCOPPCompatibleInformation du pilote miniport d’affichage
DxgkDdiOPMConfigureProtectedOutput
DXGKDDI_OPM_CONFIGURE_PROTECTED_OUTPUTPointeur vers la fonction DxgkDdiOPMConfigureProtectedOutput du pilote miniport d’affichage
DxgkDdiOPMDestroyProtectedOutput
DXGKDDI_OPM_DESTROY_PROTECTED_OUTPUTPointeur vers la fonction DxgkDdiOPMDestroyProtectedOutput du pilote miniport d’affichage
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 .