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
Gérer le processus dans lequel réserver la plage d’adresses virtuelles. Si ProcessHandle est 0, la plage d’adresses virtuelle est allouée dans l’espace système.
[in] PhysicalReserveContext
Handle de contexte qui identifie la plage d’adresses physiques réservée à laquelle associer la réservation de mémoire virtuelle. Ce contexte a été obtenu à partir de 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 de retour
AgpReserveVirtual retourne l’adresse de base de la plage d’adresses virtuelles réservée en cas de réussite ; sinon, retourne NULL .
Remarques
Si processHandle n’est pas 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 est 0, AgpReserveVirtual alloue une plage d’adresses virtuelles dans l’espace système et mappe automatiquement (commits) la plage entière d’adresses virtuelles aux adresses physiques. Même si AgpReserveVirtual valide la plage virtuelle entière, vous devez toujours appeler AgpCommitVirtual avant que tout code 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), la plage entière d’adresses physiques identifiées 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 plutôt qu’une grande plage.
Le pilote miniport doit appeler AgpReleaseVirtual pour libérer la plage d’adresses virtuelle réservée lorsqu’elle n’est plus nécessaire.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Windows 2000 et versions ultérieures des systèmes d’exploitation Windows. |
plateforme cible | Bureau |
d’en-tête | videoagp.h (include Video.h) |
IRQL | PASSIVE_LEVEL |