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 |