DXGKDDI_OPM_GET_INFORMATION fonction de rappel (dispmprt.h)

La fonction DXGKDDI_OPM_GET_INFORMATION récupère des informations à partir de l’objet de sortie protégé donné.

Syntaxe

DXGKDDI_OPM_GET_INFORMATION DxgkddiOpmGetInformation;

NTSTATUS DxgkddiOpmGetInformation(
  [in]  PVOID MiniportDeviceContext,
  [in]  HANDLE ProtectedOutputHandle,
  [in]  const DXGKMDT_OPM_GET_INFO_PARAMETERS *Parameters,
  [out] PDXGKMDT_OPM_REQUESTED_INFORMATION RequestedInformation
)
{...}

Paramètres

[in] MiniportDeviceContext

Handle d’un bloc de contexte associé à une carte d’affichage. Auparavant, la fonction DxgkDdiAddDevice du pilote miniport d’affichage fournissait cette poignée au sous-système du noyau graphique DirectX.

[in] ProtectedOutputHandle

Handle d’un objet de sortie protégé. La fonction DxgkDdiOPMCreateProtectedOutput crée l’objet de sortie protégé et retourne le handle à l’objet. L’objet de sortie protégé qui correspond à ce handle doit avoir une sémantique OPM.

[in] Parameters

Pointeur vers une structure de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS qui contient des paramètres utilisés pour récupérer des informations à partir d’un objet de sortie protégé dont le handle est spécifié dans le paramètre ProtectedOutputHandle . DXGKDDI_OPM_GET_INFORMATION détermine si les paramètres contiennent une requête valide de l’application qui a créé indirectement l’objet de sortie protégé. Pour plus d'informations, consultez la section Notes.

[out] RequestedInformation

Pointeur vers une structure de DXGKMDT_OPM_REQUESTED_INFORMATION qui reçoit les informations de l’objet de sortie protégé si DXGKDDI_OPM_GET_INFORMATION retourne correctement.

Si DXGKDDI_OPM_GET_INFORMATION échoue, la valeur vers laquelle RequestedInformation pointe est inchangée.

Valeur retournée

DxgkDdiOPMGetCOPPCompatibleInformation retourne STATUS_SUCCESS ou un code d’erreur Ntstatus.h .

Remarques

Le sous-système du noyau graphique DirectX doit appeler DXGKDDI_OPM_GET_INFORMATION uniquement si la sortie a une sémantique OPM.

Avant que le sous-système du noyau graphique DirectX passe le handle de sortie protégé au paramètre ProtectedOutputHandle dans un appel à DXGKDDI_OPM_GET_INFORMATION, le sous-système du noyau graphique DirectX transmet toujours le handle de sortie protégé aux fonctions DxgkDdiOPMSetSigningKeyAndSequenceNumbers et DxgkDdiDPMGetRandomNumber .

DXGKDDI_OPM_GET_INFORMATION récupère l’un des types d’informations suivants :

  • Type de connecteur de la sortie protégée.
  • Types de protection de contenu pris en charge par la sortie protégée. Les sorties protégées peuvent actuellement prendre en charge ACP, CGMS-A et HDCP.
  • Niveau de protection virtuel actuel de la sortie protégée pour un type de protection particulier.
  • Niveau de protection réel de la sortie physique pour un type de protection particulier.
  • Version du SRM HDCP que la sortie protégée utilise actuellement.
  • Type de bus d’extension utilisé par la carte graphique et comment la carte graphique est connectée au pont nord de l’ordinateur.
  • Format des images que la carte graphique envoie de la sortie physique au moniteur.

Le membre guidInformation de la structure DXGKMDT_OPM_GET_INFO_PARAMETERS vers laquelle pointe le paramètre Parameters ne doit jamais contenir les DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION et DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING GUID, car seules les applications COPP doivent spécifier ces GUID.

Les 4 premiers octets du membre abParameters de DXGKMDT_OPM_GET_INFO_PARAMETERS ne doivent jamais contenir le type de protection DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP lorsque le GUID DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL ou DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL est spécifié dans le membre guidInformation de DXGKMDT_OPM_GET_INFO_PARAMETERS , car seules les applications COPP utilisent ce type de protection.

Le pilote doit effectuer la séquence suivante lorsque sa fonction DXGKDDI_OPM_GET_INFORMATION est appelée.

  1. Vérifiez que le handle de sortie protégé qui a été passé au paramètre ProtectedOutputHandle de DXGKDDI_OPM_GET_INFORMATION a une sémantique OPM.

  2. Vérifiez que les informations du paramètre Parameters ont été signées avec la clé de signature de l’objet de sortie protégé. La clé de signature de l’objet de sortie protégée a été définie lors de l’appel de la fonction DxgkDdiOPMSetSigningKeyAndSequenceNumbers . Le chiffrement de blocs AES (Advanced Encryption Standard) et l’algorithme de signature OMAC-1 doivent être utilisés pour vérifier la signature. Pour plus d’informations sur AES, consultez le site web RSA Laboratories . Pour plus d’informations sur OMAC-1, consultez la page de référence DXGKMDT_OPM_OMAC .

  3. Récupérez les informations demandées.

  4. Copiez le nombre aléatoire que le membre rnRandomNumber de DXGKMDT_OPM_GET_INFO_PARAMETERS spécifie dans le membre rnRandomNumber dans la structure DXGKMDT_OPM_STANDARD_INFORMATION ou DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT. La structure utilisée dépend du type d’informations demandées par l’appelant et est définie dans le membre abRequestedInformation de la structure DXGKMDT_OPM_REQUESTED_INFORMATION vers laquelle pointe le paramètre RequestedInformation .

  5. Signez la structure DXGKMDT_OPM_REQUESTED_INFORMATION et placez la signature dans le membre omac de DXGKMDT_OPM_REQUESTED_INFORMATION. Le chiffrement de blocs AES et l’algorithme de signature OMAC-1 doivent être utilisés pour signer la structure.

Initialement, le sous-système du noyau graphique DirectX appelle DXGKDDI_OPM_GET_INFORMATION pour récupérer des informations sur la sortie, puis appelle DxgkDdiOPMConfigureProtectedOutput une ou plusieurs fois pour configurer la sortie. Par la suite, le sous-système du noyau graphique DirectX appelle DXGKDDI_OPM_GET_INFORMATION sans appeler également DxgkDdiOPMConfigureProtectedOutput.

DXGKDDI_OPM_GET_INFORMATION doit être rendu paginable.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête dispmprt.h (inclure Dispmprt.h)
IRQL PASSIVE_LEVEL (voir la section Remarques)

Voir aussi

DxgkDdiAddDevice

DxgkDdiOPMConfigureProtectedOutput

DxgkDdiOPMCreateProtectedOutput

DXGKDDI_OPM_GET_INFORMATION

DxgkDdiOPMGetRandomNumber

DxgkDdiOPMSetSigningKeyAndSequenceNumbers

DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS

DXGKMDT_OPM_OMAC

DXGKMDT_OPM_REQUESTED_INFORMATION