Partager via


DXGKCB_EXCLUDE_ADAPTER_ACCESS fonction de rappel (dispmprt.h)

La fonction DxgkCbExcludeAdapterAccess empêche tout accès à l’adaptateur d’affichage et appelle un DxgkProtectedCallback fourni routine de rappel dans cet état protégé.

Syntaxe

DXGKCB_EXCLUDE_ADAPTER_ACCESS DxgkcbExcludeAdapterAccess;

NTSTATUS DxgkcbExcludeAdapterAccess(
  [in] HANDLE DeviceHandle,
  [in] ULONG Attributes,
  [in] DXGKDDI_PROTECTED_CALLBACK DxgkProtectedCallback,
  [in] PVOID ProtectedCallbackContext
)
{...}

Paramètres

[in] DeviceHandle

Handle qui représente un adaptateur d’affichage. Le pilote miniport d’affichage obtenu ce handle dans le membre DeviceHandle de la structure DXGKRNL_INTERFACE qui a été passée à DxgkDdiStartDevice.

[in] Attributes

Valeur qui spécifie les opérations de mémoire vidéo. Ce paramètre peut être n’importe quelle combinaison des valeurs d’indicateur de bits suivantes, sauf que DXGK_EXCLUDE_EVICT_ALL et DXGK_EXCLUDE_CALL_SYNCHRONOUS s’excluent mutuellement. Ces valeurs sont définies dans Dispmprt.h.

DXGK_EXCLUDE_EVICT_ALL

Toute la mémoire vidéo de l’adaptateur est copiée dans la mémoire système ; c’est une opération coûteuse. Si le paramètre Attributs n’est pas défini sur cette valeur, l’accès aux surfaces verrouillées dans la mémoire système est suspendu.

DXGK_EXCLUDE_CALL_SYNCHRONOUS

Exécute la routine de rappel de pilote DxgkProtectedCallback dans le même contexte de thread que l’appelant. L’appelant doit appeler à partir d’un deuxième niveau ou troisième niveau appel DDI synchronisé. Sinon, la fonction DxgkCbExcludeAdapterAccess échoue.

DXGK_EXCLUDE_BRIDGE_ACCESS

Protège l’accès au port racine PCI Express (PCIe) lorsque le pilote doit accéder à l’espace de configuration du port racine. Définissez le paramètre Attributs sur cette valeur avant d’appeler DxgkCbReadDeviceSpace ou fonctions DxgkCbWriteDeviceSpace avec le paramètre DataType défini sur DXGK_WHICHSPACE_BRIDGE.

[in] DxgkProtectedCallback

Routine de rappel à rappeler lorsque tout l’accès à l’adaptateur a été arrêté.

[in] ProtectedCallbackContext

Pointeur vers la valeur à passer au paramètre ProtectedCallbackContext de la routine de rappel DxgkProtectedCallback.

Valeur de retour

DxgkCbExcludeAdapterAccess retourne STATUS_SUCCESS si elle réussit. Sinon, elle retourne l’un des codes d’erreur définis dans Ntstatus.h.

Remarques

Les demandes d’application sont bloquées jusqu’à ce que cette fonction retourne. Dans cet état de protection, la routine de rappel d'DxgkProtectedCallback fournie est appelée à IRQL = PASSIVE_LEVEL.

DxgkCbExcludeAdapterAccess acquiert l’accès exclusif aux adaptateurs afin d’empêcher les opérations d’E/S liées aux graphiques à l’adaptateur d’affichage et à tous les liens. Cela inactif efficacement le GPU pendant toute la durée de l’appel.

Cette fonction empêche également tout accès à l’espace de configuration PCI Express (PCIe) du port racine si DXGK_EXCLUDE_BRIDGE_ACCESS est spécifié dans le paramètre Attributes.

Le pilote ne doit pas bloquer l’exécution continue du thread appelant en attendant le retour de la routine de rappel DxgkProtectedCallback. Par exemple, le pilote peut planifier un thread de travail asynchrone pour gérer la routine de rappel.

Une exception à ce blocage des demandes d’application se produit lorsque le pilote d’affichage en mode utilisateur a défini l’indicateur UseAlternateVA champ binaire dans le membre Flags de la structure D3DDDICB_LOCKFLAGS dans un appel à la fonction pfnLockCb. DxgkCbExcludeAdapterAccess ne bloque pas ce type de verrou d’allocation et le processeur peut accéder à l’adaptateur d’affichage pendant l’exécution de la routine de rappel protégée.

Remarque Si UseAlternateVA a été défini dans un appel à pfnLockCb, le pilote display miniport ne doit pas appeler DxgkCbExcludeAdapterAccess.
 

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista
plateforme cible Bureau
d’en-tête dispmprt.h (include Dispmprt.h)
IRQL PASSIVE_LEVEL

Voir aussi

DxgkProtectedCallback