Partager via


IHostMemoryManager::VirtualAlloc, méthode

Sert de wrapper logique pour la fonction Win32 correspondante. L’implémentation Win32 de VirtualAlloc réserve ou valide une région de pages dans l’espace d’adressage virtuel du processus appelant.

Syntaxe

HRESULT VirtualAlloc (  
    [in]  void*   pAddress,  
    [in]  SIZE_T  dwSize,  
    [in]  DWORD   flAllocationType,  
    [in]  DWORD   flProtect,  
    [in]  EMemoryCriticalLevel dwCriticalLevel,  
    [out] void**  ppMem  
);  

Paramètres

pAddress
[in] Pointeur vers l’adresse de départ de la région à allouer.

dwSize
[in] Taille, en octets, de la région.

flAllocationType
[in] Type d’allocation de mémoire.

flProtect
[in] Protection de la mémoire pour la région de pages à allouer.

dwCriticalLevel
[in] Valeur EMemoryCriticalLevel qui indique l’impact d’un échec d’allocation.

ppMem
[out] Pointeur vers l’adresse de départ de la mémoire allouée, ou null si la requête n’a pas pu être satisfaite.

Valeur de retour

HRESULT Description
S_OK VirtualAlloc retourné.
HOST_E_CLRNOTAVAILABLE Le Common Language Runtime (CLR) n’a pas été chargé dans un processus ou est dans un état dans lequel il ne peut ni exécuter le code managé ni traiter l’appel avec succès.
HOST_E_TIMEOUT L’appel a expiré.
HOST_E_NOT_OWNER L’appelant n’est pas propriétaire du verrou.
HOST_E_ABANDONED Un événement a été annulé alors qu’un thread ou une fibre bloqué l’attendait.
E_FAIL Une défaillance catastrophique inconnue s’est produite. Quand une méthode retourne E_FAIL, le CLR n’est plus utilisable au sein du processus. Les appels suivants aux méthodes d’hébergement renvoient HOST_E_CLRNOTAVAILABLE.
E_OUTOFMEMORY Mémoire insuffisante disponible pour terminer la demande d’allocation

Notes

Vous réservez une région dans l’espace d’adressage de votre processus en appelant VirtualAlloc. Le paramètre pAddress contient l’adresse de début du bloc de mémoire souhaité. Ce paramètre est généralement défini sur null. Le système d’exploitation conserve un enregistrement des plages d’adresses gratuites disponibles pour votre processus. Une valeur pAddress de null indique au système de réserver la région où il le souhaite. Vous pouvez également fournir une adresse de départ spécifique pour le bloc de mémoire. Dans les deux cas, le paramètre ppMem de sortie est retourné en tant que pointeur vers la mémoire allouée. La fonction elle-même retourne une valeur HRESULT.

La fonction Win32 VirtualAlloc n’a pas de paramètre ppMem et retourne le pointeur vers la mémoire allouée à la place. Pour plus d’informations, consultez la documentation de la plateforme Windows .

Spécifications

Plateformes : Consultez Configuration requise.

En-tête : MSCorEE.h

Bibliothèque : incluse en tant que ressource dans MsCorEE.dll

Versions de .NET Framework : Disponible depuis la version 2.0

Voir aussi