PAGP_RESERVE_VIRTUAL fonction de rappel (videoagp.h)

La fonction AgpReserveVirtual réserve une plage d’adresses virtuelles pour AGP.

Syntaxe

PAGP_RESERVE_VIRTUAL PagpReserveVirtual;

PVOID PagpReserveVirtual(
  [in]  IN PVOID HwDeviceExtension,
  [in]  IN HANDLE ProcessHandle,
  [in]  IN PVOID PhysicalReserveContext,
  [out] OUT PVOID *VirtualReserveContext
)
{...}

Paramètres

[in] HwDeviceExtension

Pointeur vers l’extension de périphérique du pilote miniport.

[in] ProcessHandle

Handle du processus dans lequel réserver la plage d’adresses virtuelles. Si ProcessHandle a la valeur 0, la plage d’adresses virtuelles est allouée dans l’espace système.

[in] PhysicalReserveContext

Handle de contexte qui identifie la plage d’adresses physiques réservées à laquelle associer la réservation de mémoire virtuelle. Ce contexte a été obtenu à partir d’AgpReservePhysical.

[out] VirtualReserveContext

Emplacement dans lequel le pilote de port vidéo écrit un handle de contexte qui identifie la mémoire virtuelle réservée.

Valeur retournée

AgpReserveVirtual retourne l’adresse de base de la plage d’adresses virtuelles réservées en cas de réussite . dans le cas contraire, retourne NULL.

Remarques

Si ProcessHandle n’a pas la valeur 0, AgpReserveVirtual réserve, mais ne valide pas, une plage d’adresses virtuelles dans l’espace d’adressage d’un processus en mode utilisateur. Dans ce cas, vous devez appeler AgpCommitVirtual pour mapper les adresses virtuelles réservées (en mode utilisateur) aux adresses physiques.

Si ProcessHandle a la valeur 0, AgpReserveVirtual alloue une plage d’adresses virtuelles dans l’espace système et mappe automatiquement (valide) l’ensemble de la plage d’adresses virtuelles aux adresses physiques. Même si AgpReserveVirtual valide l’intégralité de la plage virtuelle, vous devez toujours appeler AgpCommitVirtual avant qu’un code n’accède à la plage virtuelle.

Lorsque vous appelez AgpReserveVirtual pour allouer une plage d’adresses virtuelles dans l’espace système (autrement dit, si vous définissez ProcessHandle sur 0), l’ensemble de la plage d’adresses physiques identifiée par PhysicalReserveContext doit être validée sur des pages verrouillées de mémoire physique par un appel précédent à AgpCommitPhysical.

Le pilote miniport peut appeler AgpReleaseVirtual plusieurs fois pour réserver de nombreuses plages d’adresses plus petites au lieu d’une grande plage.

Le pilote miniport doit appeler AgpReleaseVirtual pour libérer la plage d’adresses virtuelles réservée lorsqu’elle n’est plus nécessaire.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows 2000 et versions ultérieures des systèmes d’exploitation Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête videoagp.h (incluez Video.h)
IRQL PASSIVE_LEVEL

Voir aussi

AgpCommitPhysical

AgpCommitVirtual

AgpReleaseVirtual

AgpReservePhysical