Partager via


DXGKCB_MAP_MEMORY fonction de rappel (dispmprt.h)

La fonction DxgkCbMapMemory mappe une plage d’adresses physiques traduites (associées à une ressource mémoire affectée à un adaptateur d’affichage) dans l’espace système ou l’espace d’adressage virtuel d’un processus en mode utilisateur.

Syntaxe

DXGKCB_MAP_MEMORY DxgkcbMapMemory;

NTSTATUS DxgkcbMapMemory(
  [in]  HANDLE DeviceHandle,
  [in]  PHYSICAL_ADDRESS TranslatedAddress,
  [in]  ULONG Length,
  [in]  BOOLEAN InIoSpace,
  [in]  BOOLEAN MapToUserMode,
  [in]  MEMORY_CACHING_TYPE CacheType,
  [out] PVOID *VirtualAddress
)
{...}

Paramètres

[in] DeviceHandle

Handle qui représente un adaptateur d’affichage. Le pilote miniport d’affichage a obtenu précédemment ce handle dans le membre DeviceHandle de la structure DXGKRNL_INTERFACE qui a été passée à DxgkDdiStartDevice.

[in] TranslatedAddress

Adresse physique traduite de base de la plage de mémoire à mapper. Le pilote miniport d’affichage a précédemment obtenu cette adresse en appelant DxgkCbGetDeviceInformation.

[in] Length

Taille, en octets, de la plage à mapper.

[in] InIoSpace

Valeur booléenne qui spécifie si la plage se trouve dans l’espace d’E/S (TRUE) ou l’espace mémoire (FALSE).

[in] MapToUserMode

Valeur booléenne qui spécifie si la plage est mappée dans l’espace en mode utilisateur ou dans l’espace système. Si TRUE, la plage est mappée dans l’espace d’adressage virtuel (mode utilisateur) du processus actuel. Si FALSE, la plage est mappée dans l’espace système. Si InIoSpace est TRUE, ce paramètre est ignoré.

[in] CacheType

Énumérateur MEMORY_CACHING_TYPE qui spécifie le comportement de mise en cache de la plage mappée.

[out] VirtualAddress

Pointeur vers une variable qui reçoit l’adresse du début de la plage mappée. La façon dont la plage mappée est accessible dépend des valeurs de InIoSpace et MapToUserMode. Le tableau suivant récapitule les différentes façons dont la plage mappée est accessible.

Valeur d’InIoSpace MapToUserMode est FALSE MapToUserMode a la valeur TRUE
FAUX READ_REGISTER_X WRITE_REGISTER_X Le code en mode utilisateur effectue un accès à la mémoire ordinaire.
VRAI READ_PORT_X WRITE_PORT_X Pas possible.

Valeur de retour

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

Remarques

Le type de données PHYSICAL_ADDRESS est défini dans Ntdef.h .

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

Voir aussi

MEMORY_CACHING_TYPE