Partager via


DXGKDDI_CREATEMEMORYBASIS fonction de rappel (d3dkmddi.h)

La fonction DxgkDdiCreateMemoryBasis de KMD crée un handle pour une collection de plages de mémoire qui représentent l’allocation en cours d’exécution pendant sale suivi des bits.

Syntaxe

DXGKDDI_CREATEMEMORYBASIS DxgkddiCreatememorybasis;

HANDLE DxgkddiCreatememorybasis(
  IN_CONST_HANDLE hAdapter,
  IN_CONST_PDXGKARG_CREATEMEMORYBASIS pArgs
)
{...}

Paramètres

hAdapter

[in] Handle d’un bloc de contexte associé à un adaptateur d’affichage. KMD a précédemment fourni ce handle à Dxgkrnl dans le paramètre de sortie MiniportDeviceContext de la fonction DxgiDdiAddDevice .

pArgs

[in] Pointeur vers une structure DXGKARG_CREATEMEMORYBASIS qui contient des informations sur la base en cours de création.

Valeur retournée

DxgkDdiCreateMemoryBasis retourne un HANDLE à la référence de KMD pour le suivi de la collection de plages. KMD doit être en mesure de transformer ces informations en informations de base dans les commandes suivantes, telles que DxgkDdiDestroyMemoryBasis.

Remarques

Le suivi des opérations de modification sur VRAM est destiné aux allocations qui peuvent ne pas être sauvegardées de façon contiguë. Ainsi, les adresses physiques représentées dans le suivi de sale bits se composent d’une collection de plages représentant l’allocation en cours d’exécution. DxgkDdiCreateMemoryBasis retourne un handle à la référence de KMD pour le suivi de ces plages.

Le KMD peut s’appuyer sur les invariants suivants :

  • Pour chaque plage de plages, SegmentOffset et (SegmentOffset + SizeInBytes - 1) représentent des adresses valides sur le segment référencé par SegmentId.

  • Toutes les plages sont disjointes par paire ; autrement dit, l’intersection entre deux plages est toujours null.

Il est également courant que SegmentOffset et SizeInBytes respectent certains alignements de page lorsque la base de mémoire créée est utilisée dans certains sale suivi des DDIs. Ces valeurs sont décrites dans la page de référence de ces DDI et sont toujours un multiple de DXGK_DIRTY_BIT_TRACKING_SEGMENT_CAPS ::P ageSize.

Dans le cas contraire, Dxgkrnl ne garantit pas l’ordre des adresses dans la collection de plages ou d’assurances associées.

Pour plus d’informations, consultez Suivi des bits sales.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 11, version 24H2 (WDDM 3.2)
En-tête d3dkmddi.h
IRQL PASSIVE_LEVEL

Voir aussi

DXGKARG_CREATEMEMORYBASIS

DxgkDdiDestroyMemoryBasis