Skip to main content

XMemAllocatePhysicalPages

Alloue des pages physiques contiguës pour le processus cible spécifié.

Syntaxe

Paramètres

XMemFlags _In_
Type : ULONGLONG
Spécifie les exigences relatives aux pages allouées. Sur les appareils Anaconda et les appareils Dante qui émulent Anaconda, lorsque le mode de mémoire de titre Avancé est utilisé, les paramètres suivants peuvent également être appliqués. Ces paramètres sont ignorés dans tous les autres cas. NumberOfPages _Inout_
Type : PULONG_PTR
Pointeur vers une variable contenant le nombre de pages de 64 Ko à allouer. À la fin de l’opération, retourne le nombre de pages de 64 Ko réellement allouées. PageArray _Out_writes_to_(*NumberOfPages,*NumberOfPages)
Type : PULONG_PTR
Pointeur vers la mémoire utilisateur dans laquelle stocker les numéros des pages de 64 Ko allouées. Pointeur vers un tableau dans lequel stocker les numéros de cadres de page de la mémoire allouée. La taille du tableau alloué doit être au moins égale à NumberOfPages multiplié par la taille du type de données ULONG_PTR. Ne tentez pas de modifier cette mémoire tampon. Elle contient des données du système d’exploitation, et sa corruption pourrait avoir des conséquences catastrophiques. Les informations de la mémoire tampon ne sont d’aucune utilité pour une application.

Valeur de retour

Type : BOOL Si la fonction réussit, la valeur de retour est TRUE. Il est possible que moins de pages que le nombre demandé soient allouées. L’appelant doit vérifier la valeur du paramètre NumberOfPages au retour pour savoir combien de pages sont allouées. Tous les numéros de cadres de page alloués sont placés de façon séquentielle dans la mémoire pointée par le paramètre PageArray. Si la fonction échoue, la valeur de retour est FALSE et aucun cadre n’est alloué. Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Remarques

Cette API alloue des pages de mémoire physique destinées à être mappées dans une région d’un processus spécifié. XMemAllocatePhysicalPages est utile lorsqu’il peut être souhaitable pour les applications de préallouer de nombreuses séries de pages physiquement contiguës et de les subdiviser en pages distinctes de 64 Ko en fonction de conditions changeantes déterminées dynamiquement à l’exécution. XMemAllocatePhysicalPages permet d’allouer des pages physiques sans les placer dans l’espace d’adressage virtuel. XMemAllocatePhysicalPages alloue la quantité de mémoire demandée sous forme de pages physiques. Que XMEM_2MB_CLUSTERS soit utilisé ou non, les numéros de page du tableau retourné font référence à des pages individuelles de 64 Ko. Ces pages peuvent être utilisées librement lors du mappage dans des réservations effectuées avec MEM_64K_PAGES. Toutefois, des grappes contiguës de 2 Mo, comme celles retournées lorsque XMEM_2MB_CLUSTERS est spécifié, sont requises lors du mappage dans des réservations effectuées avec MEM_2MB_PAGES. Seule la première page physique de chaque grappe de 2 Mo est utilisée lors du mappage dans des réservations effectuées avec MEM_2MB_PAGES. Au retour, NumberOfPages peut indiquer un nombre de pages inférieur au nombre demandé. Pour libérer les pages allouées avec XMemAllocatePhysicalPages, appelez XMemFreePhysicalPages. Exemple :

Configuration requise

En-tête : xmem.h Bibliothèque : xmem.lib Plateformes prises en charge : consoles de la famille XBOX One et consoles XBOX Series

Voir aussi

Référence XMem
XMemVirtualAlloc
XMemMapPhysicalPages
XMemFreePhysicalPages
Last modified on October 6, 2026