Utilisation de la DDI OPM
Le sous-système du noyau graphique Microsoft DirectX (Dxgkrnl.sys) utilise le DDI OPM pour créer des sorties protégées par OPM, détruire les sorties protégées par OPM, obtenir des certificats, configurer des sorties protégées, obtenir des informations sur les sorties protégées et obtenir des informations sur la carte graphique. Le sous-système du noyau graphique DirectX obtient des pointeurs vers les fonctions DDI OPM lorsqu’il appelle la fonction DxgkDdiQueryInterface du pilote miniport d’affichage pour interroger l’interface identifiée par GUID_DEVINTERFACE_OPM et DXGK_OPM_INTERFACE_VERSION_1. La séquence suivante décrit comment le DDI OPM est généralement utilisé pour créer, manipuler et détruire des sorties protégées par OPM :
Le sous-système du noyau graphique DirectX appelle la fonction DxgkDdiOPMCreateProtectedOutput pour créer une sortie protégée OPM. Une sortie protégée OPM correspond toujours à une seule sortie vidéo physique. DxgkDdiOPMCreateProtectedOutput retourne un handle à la sortie nouvellement créée.
Le sous-système du noyau graphique DirectX appelle les fonctions DxgkDdiOPMGetCertificateSize et DxgkDdiOPMGetCertificate pour obtenir le certificat OPM ou le certificat COPP du pilote miniport d’affichage et sa taille.
Notes
DxgkDdiOPMCreateProtectedOutput, DxgkDdiOPMGetCertificateSize et DxgkDdiOPMGetCertificate sont les seules fonctions DDI OPM auxquelles le sous-système du noyau graphique DirectX ne passe pas de handle de sortie protégée.
Le sous-système du noyau graphique DirectX appelle la fonction DxgkDdiOPMGetRandomNumber pour obtenir le nombre aléatoire de la sortie protégée.
Le sous-système du noyau graphique DirectX transmet une mémoire tampon de 256 octets dans un appel à la fonction DxgkDdiOPMSetSigningKeyAndSequenceNumbers . La mémoire tampon contient des données chiffrées avec l’une des clés publiques du pilote miniport d’affichage. Pour plus d’informations sur les clés publiques, téléchargez le document Protection du contenu de sortie à partir du site web Protection du contenu de sortie et Windows Vista . La clé publique utilisée dépend de la sémantique de la sortie protégée. La clé publique dans le certificat OPM du pilote miniport d’affichage est utilisée si la sortie protégée a la sémantique OPM. La clé publique dans le certificat COPP du pilote miniport d’affichage est utilisée si la sortie protégée a la sémantique COPP. Le schéma de chiffrement utilisé pour chiffrer les données dépend également de la sémantique de la sortie protégée. Les données sont chiffrées avec l’algorithme RSA standard si la sortie protégée a la sémantique COPP et avec le schéma de chiffrement RSAES-OAEP si la sortie protégée a une sémantique OPM. Pour plus d’informations sur RSA, AES et RSAES-OAEP, consultez le site web rsa Laboratories . Le pilote miniport d’affichage utilise la clé privée et la méthode de déchiffrement appropriées pour déchiffrer les données. Un nombre aléatoire, deux numéros de séquence aléatoires et une clé AES 128 bits se trouvent dans les données déchiffrées. Le lecteur miniport d’affichage garantit que le nombre aléatoire correspond au nombre aléatoire retourné par le pilote lors de l’appel de sa fonction DxgkDdiDdiOPMGetRandomNumber . Le pilote stocke ensuite les deux numéros de séquence et la clé AES 128 bits.
Le sous-système du noyau graphique DirectX peut désormais appeler la fonction DxgkDdiOPMGetInformation ou DxgkDdiOPMGetCOPPCompatibleInformation pour obtenir des informations à partir d’une sortie protégée. Le sous-système du noyau graphique DirectX peut également appeler DxgkDdiOPMConfigureProtectedOutput pour configurer une sortie protégée. DxgkDdiOPMGetInformation ne peut être appelé que si la sortie a une sémantique OPM et si DxgkDdiOPMGetCOPPCompatibleInformation peut être appelé uniquement si la sortie a une sémantique COPP. En règle générale, le sous-système du noyau graphique DirectX appelle DxgkDdiOPMGetInformation ou DxgkDdiOPMGetCOPPCompatibleInformation pour obtenir des informations sur la sortie, puis appelle DxgkDdiOPMConfigureProtectedOutput une ou plusieurs fois pour configurer la sortie. Ensuite, le sous-système du noyau graphique DirectX appelle à nouveau DxgkDdiDdiOPMGetInformation ou DxgkKDdiOPMGetCOPPCompatibleInformation . Le sous-système du noyau graphique DirectX peut obtenir les types d’informations suivants en appelant DxgkDdiOPMGetInformation ou DxgkDdiOPMGetCOPPCompatibleInformation :
- Type de connecteur de la sortie.
- Types de protection de contenu pris en charge par la sortie. Les sorties peuvent actuellement prendre en charge :
- Niveau de protection virtuel actuel de la sortie pour un type de protection particulier.
- Niveau de protection réel de la sortie physique pour un type de protection particulier.
- Version du message de renouvellement du système HDCP (SRM) que la sortie utilise actuellement. Pour plus d’informations sur HDCP SRM, consultez la révision de la spécification HDCP 1.1. Seul DxgkDdiOPMGetInformation peut obtenir ces informations.
- Vecteur de sélection de clé (KSV) de l’appareil HDCP connecté et indique si l’appareil HDCP est un répéteur. Seul DxgkDdiOPMGetCOPPCompatibleInformation peut obtenir ces informations. Pour plus d’informations sur les répéteurs HDCP et les KSV, consultez la révision de la spécification HDCP 1.1.
- Type de bus d’extension utilisé par la carte graphique. PCI et AGP sont des exemples de bus d’expansion.
- Format des images envoyées à partir du connecteur physique associé à la sortie protégée à un moniteur.
- Les normes de signalisation CGMS-A et ACP que la sortie protégée prend en charge. Seul DxgkDdiOPMGetCOPPCompatibleInformation peut obtenir ces informations.
- Identificateur de la sortie.
- Caractéristiques électriques d’un connecteur de sortie DVI (Digital Video Interface).
Le sous-système du noyau graphique DirectX peut modifier les paramètres suivants en appelant DxgkDdiOPMConfigureProtectedOutput :
- Niveau de protection actuel de l’un des types de protection de la sortie. Par exemple, DxgkDdiOPMConfigureProtectedOutput peut activer ou désactiver HDCP et peut désactiver la protection ACP ou modifier le niveau de protection ACP actuel.
- SRM HDCP actuel utilisé par la sortie protégée.
- Norme de signalisation actuelle que la sortie protégée utilise. Cette modification ne peut être effectuée que si la sortie a une sémantique COPP.
Le sous-système du noyau graphique DirectX appelle DxgkDdiOPMDestroyProtectedOutput lorsqu’il termine l’utilisation de l’objet de sortie protégé.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour