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