Partager via


DXGKDDI_PATCH fonction de rappel (d3dkmddi.h)

La fonction DxgkDdiPatch affecte des adresses physiques à la mémoire tampon d’accès direct (DMA) donnée avant l’envoi de la mémoire tampon DMA 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 vers un bloc de contexte associé à un adaptateur d’affichage. Le pilote miniport d’affichage a précédemment fourni ce handle au sous-système du noyau graphique Microsoft DirectX dans le MiniportDeviceContext paramètre de sortie de la fonction DxgkDdiAddDevice.

[in] pPatch

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

Valeur de retour

Retourne STATUS_SUCCESS une fois l’opération terminée. Si le pilote retourne plutôt un code d’erreur, le système d’exploitation provoque une vérification de bogue système. Pour plus d’informations, consultez la section Remarques suivante.

Remarques

La fonction DxgkDdiPatch doit affecter des adresses physiques à la mémoire tampon DMA en place. Par conséquent, lorsque le pilote 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 requises 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’emplacements des correctifs fournis dans la pPatchLocationList membre de la structure DXGKARG_PATCH pointée par le paramètre pPatch pour identifier les emplacements dans la mémoire tampon DMA qui doivent être corrigées avec des adresses physiques. La liste d’allocation fournie (spécifiée par le pAllocationList membre 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 que le pilote modifie le contenu de la mémoire tampon DMA avant que la mémoire tampon DMA soit soumise à 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 SubmissionFenceId membre de DXGKARG_PATCH dans la commande de clôture à la fin de la mémoire tampon DMA. Pour plus d’informations sur ce membre, consultez Identificateurs de clôture d’approvisionnement.

Si le pilote retourne un code d’erreur, le sous-système du noyau graphique Microsoft DirectX provoque 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 du planificateur interne
  3. Pointeur vers une structure de données du planificateur interne
  4. Pointeur vers une structure de données du planificateur interne
DxgkDdiPatch doit être rendu paginable.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista
plateforme cible Bureau
d’en-tête d3dkmddi.h
IRQL PASSIVE_LEVEL

Voir aussi

DXGKARG_PATCH

DxgkDdiAddDevice