AllocateUserPhysicalPagesNuma, fonction (memoryapi.h)

Alloue des pages de mémoire physique à mapper et à démapper dans n’importe quelle région AWE ( Address Windowing Extensions ) d’un processus spécifié et spécifie le nœud NUMA pour la mémoire physique.

Syntaxe

BOOL AllocateUserPhysicalPagesNuma(
  [in]      HANDLE     hProcess,
  [in, out] PULONG_PTR NumberOfPages,
  [out]     PULONG_PTR PageArray,
  [in]      DWORD      nndPreferred
);

Paramètres

[in] hProcess

Handle d’un processus.

La fonction alloue de la mémoire qui peut être mappée ultérieurement dans l’espace d’adressage virtuel de ce processus. Le handle doit avoir le droit d’accès PROCESS_VM_OPERATION . Pour plus d’informations, consultez Droits d’accès et de sécurité des processus.

[in, out] NumberOfPages

Taille de la mémoire physique à allouer, en pages.

Pour déterminer la taille de la page de l’ordinateur, utilisez la fonction GetSystemInfo . Lors de la sortie, ce paramètre reçoit le nombre de pages réellement allouées, qui peut être inférieur au nombre demandé.

[out] PageArray

Pointeur vers un tableau pour stocker les numéros de cadre de page de la mémoire allouée.

La taille du tableau alloué doit être au moins la valeur NumberOfPages multipliée par la taille du type de données ULONG_PTR .

Attention N’essayez pas de modifier cette mémoire tampon. Il contient des données de système d’exploitation, et la corruption peut être catastrophique. Les informations contenues dans la mémoire tampon ne sont pas utiles à une application.
 

[in] nndPreferred

Nœud NUMA dans lequel la mémoire physique doit résider.

Valeur retournée

Si la fonction réussit, la valeur de retour est TRUE.

Il est possible d’allouer moins de pages que demandé. L’appelant doit case activée la valeur du paramètre NumberOfPages au retour pour voir le nombre de pages allouées. Tous les numéros de cadres de page alloués sont placés séquentiellement dans la mémoire pointée par le paramètre PageArray .

Si la fonction échoue, la valeur de retour est FALSE et aucune trame n’est allouée. Pour obtenir des informations détaillées sur l’erreur, appelez la fonction GetLastError.

Notes

La fonction AllocateUserPhysicalPagesNuma est utilisée pour allouer de la mémoire physique au sein d’un nœud NUMA qui peut être mappé ultérieurement dans l’espace d’adressage virtuel du processus. Le privilège SeLockMemoryPrivilege doit être activé dans le jeton de l’appelant, sinon la fonction échoue avec ERROR_PRIVILEGE_NOT_HELD. Pour plus d’informations, consultez Constantes de privilège.

La mémoire allouée par cette fonction doit être physiquement présente dans le système. Une fois la mémoire allouée, elle est verrouillée et indisponible pour le reste du système de gestion de la mémoire virtuelle.

Les pages physiques ne peuvent pas être mappées simultanément à plusieurs adresses virtuelles.

Les pages physiques peuvent résider à n’importe quelle adresse physique. Vous ne devez faire aucune hypothèse sur la contiguïté des pages physiques.

Pour compiler une application qui utilise cette fonction, définissez _WIN32_WINNT comme 0x0600 ou version ultérieure.

Spécifications

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête memoryapi.h (inclure Windows.h, Memoryapi.h)
Bibliothèque onecore.lib
DLL Kernel32.dll

Voir aussi

Extensions de fenêtrage d’adresse

AllocateUserPhysicalPages

FreeUserPhysicalPages

Fonctions de gestion de la mémoire

Prise en charge de NUMA