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