Share via


Récupération d’informations sur une sortie protégée

Le pilote miniport d’affichage peut recevoir des demandes pour récupérer des informations sur la sortie protégée associée au connecteur de sortie physique d’une carte graphique. La fonction DxgkDdiOPMGetInformation du pilote miniport d’affichage est passée à un pointeur vers une structure DXGKMDT_OPM_GET_INFO_PARAMETERS dans le paramètre Parameters qui contient la demande d’informations. DxgkDdiOPMGetInformation écrit les informations requises dans la structure DXGKMDT_OPM_REQUESTED_INFORMATION vers laquelle pointe le paramètre RequestedInformation . Les membres guidInformation et abParameters de DXGKMDT_OPM_GET_INFO_PARAMETERS spécifient la demande d’informations. Selon la demande d’informations, le pilote de miniport d’affichage doit remplir les membres de la structure DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_OUTPUT_ID ou DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT avec les informations requises et pointer le membre abRequestedInformation de DXGKMDT_OPM_REQUESTED_INFORMATION vers cette structure. Une fois que le pilote a spécifié les membres cbRequestedInformationSize (par exemple, sizeof (DXGKMDT_OPM_STANDARD_INFORMATION)) et abRequestedInformation de DXGKMDT_OPM_REQUESTED_INFORMATION, le pilote doit calculer le code OMAC (One-Key Cipher Block Chaining) pour les données dans DXGKMDT_OPM_REQUESTED_INFORMATION et doit définir cet OMAC dans le membre omac de DXGKMDT_OPM_REQUESTED_INFORMATION. Pour plus d’informations sur le calcul de l’OMAC, consultez l’algorithme OMAC-1.

Note Avant que DxgkDdiOPMGetInformation ne retourne, le pilote de miniport d’affichage doit vérifier que l’OMAC spécifié dans le membre omac de DXGKMDT_OPM_GET_INFO_PARAMETERS est correct. Le pilote doit également vérifier que le numéro de séquence spécifié dans le membre ulSequenceNumber de DXGKMDT_OPM_GET_INFO_PARAMETERS correspond au numéro de séquence actuellement stocké par le pilote. Le pilote doit ensuite incrémenter le numéro séquentiel stocké.

Note Le pilote doit retourner un nombre aléatoire sécurisé par chiffrement 128 bits dans le membre rnRandomNumber de DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_OUTPUT_ID ou DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT. Le nombre aléatoire a été généré par l’application d’envoi et a été fourni dans le membre rnRandomNumber de DXGKMDT_OPM_GET_INFO_PARAMETERS.

Le pilote retourne les informations suivantes pour la demande indiquée :

  • Pour DXGKMDT_OPM_GET_SUPPORTED_PROTECTION_TYPES définie dans le membre guidInformation et non définie dans le membre abParameters de la structure DXGKMDT_OPM_GET_INFO_PARAMETERS, le pilote indique les types de mécanismes de protection disponibles. Pour indiquer les types de protection disponibles, le pilote retourne une combinaison de valeurs OU valide au niveau du bit à partir de l’énumération DXGKMDT_OPM_PROTECTION_TYPE dans le membre ulInformation de DXGKMDT_OPM_STANDARD_INFORMATION. Les valeurs DXGKMDT_OPM_PROTECTION_TYPE_HDCP et DXGKMDT_OPM_PROTECTION_TYPE_DPCP sont valides.

  • Pour DXGKMDT_OPM_GET_CONNECTOR_TYPE définie dans guidInformation et non définie dans abParameters, le pilote indique le type de connecteur. Pour indiquer le type de connecteur, le pilote retourne une combinaison de valeurs OU valide au niveau du bit à partir de l’énumération D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY dans le membre ulInformation de DXGKMDT_OPM_STANDARD_INFORMATION.

  • Pour DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL ou DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL définie dans guidInformation et le type de protection défini dans abParameters, le pilote retourne une valeur de niveau de protection dans le membre ulInformation de DXGKMDT_OPM_STANDARD_INFORMATION. Si le type de protection est DXGKMDT_OPM_PROTECTION_TYPE_HDCP, la valeur de niveau de protection provient de l’énumération DXGKMDT_OPM_HDCP_PROTECTION_LEVEL . Si le type de protection est DXGKMDT_OPM_PROTECTION_TYPE_DPCP, la valeur du niveau de protection provient de l’énumération DXGKMDT_OPM_DPCP_PROTECTION_LEVEL .

    La requête DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL retourne le niveau de protection actuellement défini pour la sortie protégée. La requête DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL retourne le niveau de protection actuellement défini pour le connecteur physique associé à la sortie protégée.

  • Pour DXGKMDT_OPM_GET_ADAPTER_BUS_TYPE définie dans guidInformation et non définie dans abParameters, le pilote identifie le type et l’implémentation du bus qui connecte un adaptateur graphique au pont nord d’un circuit de carte mère. Pour identifier le type et l’implémentation du bus, le pilote retourne une combinaison de valeurs OU au niveau du bit valide à partir de l’énumération DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION dans le membre ulInformation de DXGKMDT_OPM_STANDARD_INFORMATION.

  • Pour DXGKMDT_OPM_GET_CURRENT_HDCP_SRM_VERSION définie dans guidInformation et non définie dans abParameters, le pilote retourne une valeur dans le membre ulInformation de DXGKMDT_OPM_STANDARD_INFORMATION qui identifie le numéro de version du message SRM (High-Bandwidth Digital Content Protection) actuel pour la sortie protégée. Les bits les moins significatifs (bits 0 à 15) contiennent le numéro de version de SRM au format little-endian. Pour plus d’informations sur le numéro de version de SRM, consultez hdCP Specification Revision 1.1.

  • Pour DXGKMDT_OPM_GET_ACTUAL_OUTPUT_FORMAT définie dans guidInformation et non définie dans abParameters, le pilote retourne des informations dans les membres de DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT qui décrivent comment le signal qui passe par le connecteur physique associé à la sortie protégée est mis en forme.

  • Pour DXGKMDT_OPM_GET_OUTPUT_ID définie dans guidInformation et non définie dans abParameters, le pilote retourne des informations dans les membres de DXGKMDT_OPM_OUTPUT_ID qui identifie le connecteur de sortie.

  • Pour DXGKMDT_OPM_GET_DVI_CHARACTERISTICS définie dans le membre guidInformation et non définie dans le membre abParameters de la structure DXGKMDT_OPM_GET_INFO_PARAMETERS, le pilote indique les caractéristiques électriques d’un connecteur de sortie DVI (Digital Video Interface). Pour indiquer les caractéristiques électriques DVI, le pilote retourne l’une des valeurs de l’énumération DXGKDT_OPM_DVI_CHARACTERISTICS dans le membre ulInformation de DXGKMDT_OPM_STANDARD_INFORMATION.