Partager via


IHostMemoryManager::VirtualAlloc, méthode

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

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ébut de la mémoire allouée, ou null si la demande n'a pas pu être satisfaite.

Valeur de retour

HRESULT

Description

S_OK

VirtualAlloc a été retourné avec succès.

HOST_E_CLRNOTAVAILABLE

Le Common Language Runtime (CLR) n'a pas été chargé dans un processus ou le CLR présente un état dans lequel il ne peut pas exécuter de code managé ou traiter l'appel avec succès.

HOST_E_TIMEOUT

L'appel a expiré.

HOST_E_NOT_OWNER

L'appelant ne possède pas le verrou.

HOST_E_ABANDONED

Un événement a été annulé alors qu'un thread bloqué ou une fibre l'attendait.

E_FAIL

Une défaillance grave et inconnue s'est produite. Lorsqu'une méthode retourne E_FAIL, le CLR n'est plus utilisable dans le processus. Les appels suivants aux méthodes d'hébergement retournent HOST_E_CLRNOTAVAILABLE.

E_OUTOFMEMORY

Mémoire disponible insuffisante pour satisfaire 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 que vous souhaitez. Ce paramètre a, en général, pour valeur null. Le système d'exploitation garde trace des plages d'adresses libres disponible pour votre processus. Une valeur pAddress null indique au système de réserver la région chaque fois qu'il le juge nécessaire. Vous pouvez également fournir une adresse de début spécifique pour le bloc de mémoire. Dans les deux cas, le de paramètre de sortie ppMem est retourné comme un 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 à la place le pointeur vers la mémoire allouée. Pour plus d'informations, consultez la documentation de la plateforme Windows.

Configuration requise

Plateformes : consultez Configuration requise du .NET Framework.

En-tête : MSCorEE.h

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

Versions du .NET Framework : 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Voir aussi

Référence

IHostMemoryManager, interface