DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION fonction de rappel (dispmprt.h)

La fonction DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION récupère des informations compatibles avec le protocole COPP (Certified Output Protection Protocol) à partir de l’objet de sortie protégé donné.

Syntaxe

DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION DxgkddiOpmGetCoppCompatibleInformation;

NTSTATUS DxgkddiOpmGetCoppCompatibleInformation(
  [in]  PVOID MiniportDeviceContext,
  [in]  HANDLE ProtectedOutputHandle,
  [in]  const DXGKMDT_OPM_COPP_COMPATIBLE_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 COPP.

[in] Parameters

Pointeur vers une structure de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS qui contient le type d’informations compatibles COPP à récupérer à partir de l’objet de sortie protégé dont le handle est spécifié dans le paramètre ProtectedOutputHandle . DxgkDdiOPMGetCOPPCompatibleInformation 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 DXGKMDT_OPM_REQUESTED_INFORMATION qui reçoit les informations compatibles COPP de l’objet de sortie protégé si DxgkDdiOPMGetCOPPCompatibleInformation retourne correctement.

Si DxgkDdiOPMGetCOPPCompatibleInformation échoue, la valeur vers laquelle pointe RequestedInformation 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 DxgkDdiOPMGetCOPPCompatibleInformation uniquement si la sortie a la sémantique COPP.

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

Voici quelques faits relatifs à DxgkDdiOPMGetCOPPCompatibleInformation et qui ne concernent pas la fonction DxgkDdiOPMGetInformation :

  • Le sous-système du noyau graphique DirectX peut passer un handle à une sortie protégée uniquement avec la sémantique COPP.

  • La structure DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS vers laquelle pointe le paramètre Parameters n’est pas signée.

  • Le sous-système du noyau graphique DirectX peut passer les DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING et DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION GUID dans le membre guidInformation de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

  • Le sous-système du noyau graphique DirectX ne peut pas passer le GUID DXGKMDT_OPM_GET_CURRENT_HDCP_SRM_VERSION dans le membre guidInformation de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

  • Le sous-système du noyau graphique DirectX peut spécifier DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP dans les 4 premiers octets du membre abParameters de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS, ainsi que le GUID DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL ou DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL dans le membre guidInformation de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

  • Le sous-système du noyau graphique DirectX ne peut pas spécifier DXGKMDT_OPM_PROTECTION_TYPE_HDCP dans les 4 premiers octets du membre abParameters de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS, ainsi que le GUID DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL ou DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL dans le membre guidInformation de DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

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

  1. Vérifiez que le handle de sortie protégé qui a été passé au paramètre ProtectedOutputHandle de DxgkDdiOPMGetCOPPCompatibleInformation a la sémantique COPP.

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

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

  4. 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. 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 .

Initialement, le sous-système du noyau graphique DirectX appelle DxgkDdiOPMGetCOPPCompatibleInformation 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 DxgkDdiOPMGetCOPPCompatibleInformation sans appeler également DxgkDdiOPMConfigureProtectedOutput.

DxgkDdiOPMGetCOPPCompatibleInformation 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

DxgkDdiOPMGetInformation

DxgkDdiOPMGetRandomNumber

DxgkDdiOPMSetSigningKeyAndSequenceNumbers

DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS

DXGKMDT_OPM_OMAC

DXGKMDT_OPM_REQUESTED_INFORMATION