Partager via


DXGKDDI_BEGINEXCLUSIVEACCESS fonction de rappel (d3dkmddi.h)

Dxgkrnl appelle DxgkDdiBeginExclusiveAccess pour avertir le pilote en mode noyau qu’un commutateur de domaine IOMMU est sur le point de se produire.

Syntaxe

DXGKDDI_BEGINEXCLUSIVEACCESS DxgkddiBeginexclusiveaccess;

NTSTATUS DxgkddiBeginexclusiveaccess(
  IN_CONST_HANDLE hAdapter,
  IN_PDXGKARG_BEGINEXCLUSIVEACCESS pBeginExclusiveAccess
)
{...}

Paramètres

hAdapter

[in] Handle vers un bloc de contexte associé à un adaptateur d’affichage.

pBeginExclusiveAccess

[in] Pointeur vers une structure DXGKARG_BEGINEXCLUSIVEACCESS qui contient les arguments d’entrée pour DxgkDdiBeginExclusiveAccess.

Valeur de retour

DxgkDdiBeginExclusiveAccess doit retourner STATUS_SUCCESS si l’opération réussit. Sinon, il doit retourner un code d’erreur NTSTATUS approprié.

Remarques

L’attachement et le détachement du domaine IOMMU sont extrêmement rapides, mais n’est néanmoins pas atomique. Cela signifie qu’une transaction émise sur PCIe n’est pas garantie d’être traduite correctement lors de l’échange vers un domaine avec des mappages différents.

Pour gérer cette situation, Dxgkrnl appelle la paire DDI KMD suivante :

  • DxgkDdiBeginExclusiveAccess pour avertir KMD qu’un commutateur de domaine IOMMU est sur le point de se produire.
  • DxgkDdiEndExclusiveAccess une fois le commutateur de domaine IOMMU terminé.

Le pilote doit s’assurer que son matériel est silencieux chaque fois que l’appareil est basculé vers un nouveau domaine IOMMU. Autrement dit, le pilote doit s’assurer qu’il ne lit pas ou n’écrit pas dans la mémoire système à partir de l’appareil entre ces deux appels.

Entre ces deux appels, Dxgkrnl garantit les éléments suivants :

  • Le planificateur sera suspendu. Toutes les charges de travail actives sont vidées et aucune nouvelle charge de travail n’est envoyée ou planifiée sur le matériel.
  • Aucun autre appel DDI n’est effectué.

Dans le cadre de ces appels, le pilote peut choisir de désactiver et de supprimer les interruptions (y compris les interruptions vsync) pendant la durée de l’accès exclusif, même sans notification explicite du système d’exploitation.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10, version 1803 (WDDM 2.4)
d’en-tête d3dkmddi.h
IRQL PASSIVE_LEVEL

Voir aussi

DRIVER_INITIALIZATION_DATA

DXGKARG_BEGINEXCLUSIVEACCESS

DxgkDdiEndExclusiveAccess