DXGKDDI_PATCH fonction de rappel (d3dkmddi.h)

La fonction DxgkDdiPatch affecte des adresses physiques à la mémoire tampon d’accès direct à la mémoire tampon (DMA) donnée avant que la mémoire tampon DMA ne soit envoyée au matériel graphique.

Syntaxe

DXGKDDI_PATCH DxgkddiPatch;

NTSTATUS DxgkddiPatch(
  [in] IN_CONST_HANDLE hAdapter,
  [in] IN_CONST_PDXGKARG_PATCH pPatch
)
{...}

Paramètres

[in] hAdapter

Handle d’un bloc de contexte associé à une carte d’affichage. Le pilote miniport d’affichage a précédemment fourni cette poignée au sous-système du noyau graphique Microsoft DirectX dans le paramètre de sortie MiniportDeviceContext de la fonction DxgkDdiAddDevice .

[in] pPatch

Pointeur vers une structure de DXGKARG_PATCH qui décrit la mémoire tampon DMA à corriger avec des adresses physiques.

Valeur retournée

Retourne STATUS_SUCCESS en cas de réussite de l’exécution. Si le pilote retourne à la place un code d’erreur, le système d’exploitation provoque une vérification de bogue système. Pour plus d'informations, consultez la section Notes qui suit.

Remarques

La fonction DxgkDdiPatch doit affecter des adresses physiques à la mémoire tampon DMA en place. Par conséquent, lorsque le pilote de miniport d’affichage génère la mémoire tampon DMA, le pilote doit s’assurer que l’espace est disponible dans la mémoire tampon DMA pour insérer des instructions nécessaires pour gérer les adresses physiques. Notez que les adresses physiques peuvent correspondre à la mémoire vidéo, à la mémoire AGP/PCI Express ou à la mémoire système.

Le pilote doit examiner la liste d’emplacement des correctifs fournie dans le membre pPatchLocationList de la structure DXGKARG_PATCH vers laquelle pointe le paramètre pPatch pour identifier les emplacements dans la mémoire tampon DMA qui doivent être corrigés avec des adresses physiques. La liste d’allocation fournie (qui est spécifiée par le membre pAllocationList de DXGKARG_PATCH) contient également les adresses physiques générées par le gestionnaire de mémoire vidéo. L’appel à la fonction DxgkDdiPatch du pilote est la dernière chance pour le pilote de modifier le contenu de la mémoire tampon DMA avant que la mémoire tampon DMA ne soit envoyée à l’unité de traitement graphique (GPU). Notez que le pilote peut corriger une mémoire tampon DMA plusieurs fois dans les scénarios où la mémoire tampon DMA est préemptée.

Le pilote peut corriger la valeur fournie dans le membre SubmissionFenceId de DXGKARG_PATCH dans la commande fence à la fin de la mémoire tampon DMA. Pour plus d’informations sur ce membre, consultez Fournir des identificateurs de clôture.

Si le pilote retourne un code d’erreur, le sous-système du noyau graphique Microsoft DirectX entraîne une vérification de bogue système. Dans un fichier de vidage sur incident, l’erreur est notée par le message BugCheck 0x119, qui a les quatre paramètres suivants.

  1. 0x3
  2. Pointeur vers une structure de données de planificateur interne
  3. Pointeur vers une structure de données de planificateur interne
  4. Pointeur vers une structure de données de planificateur interne
DxgkDdiPatch doit être rendu paginable.

Configuration requise

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

Voir aussi

DXGKARG_PATCH

DxgkDdiAddDevice