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 une routine de rappel DxgkProtectedCallback fournie 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 une carte d’affichage. Le pilote miniport d’affichage a obtenu cette poignée 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 ; il s’agit d’une opération coûteuse. Si le paramètre Attributes 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 du pilote DxgkProtectedCallback protégée dans le même contexte de thread que l’appelant. L’appelant doit appeler à partir d’un appel DDI synchronisé de deuxième oude troisième niveau . 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 Attributes sur cette valeur avant d’appeler les fonctions DxgkCbReadDeviceSpace ou 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 retournée

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

Remarques

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

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

Cette fonction empêche également tout espace de configuration PCI d’accéder au port racine PCI Express (PCIe) 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 de champ bit UseAlternateVA 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.

Note Si UseAlternateVA a été défini dans un appel sur pfnLockCb, le pilote miniport d’affichage ne doit pas appeler DxgkCbExcludeAdapterAccess.
 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Plateforme cible Desktop (Expérience utilisateur)
En-tête dispmprt.h (inclure Dispmprt.h)
IRQL PASSIVE_LEVEL

Voir aussi

DxgkProtectedCallback