Compartir a través de


IHostMemoryManager::VirtualAlloc (Método)

Actúa como contenedor lógico para la función de Win32 correspondiente. La implementación de Win32 de reservas VirtualAlloc o confirma una región de páginas en el espacio de direcciones virtuales del proceso de llamada.

Sintaxis

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

Parámetros

pAddress
[in] Puntero a la dirección inicial de la región que se va a asignar.

dwSize
[in] Tamaño, en bytes, de la región.

flAllocationType
[in] Tipo de asignación de memoria.

flProtect
[in] Protección de memoria para la región de las páginas que se van a asignar.

dwCriticalLevel
[in] Valor EMemoryCriticalLevel que indica el impacto de un error de asignación.

ppMem
[out] Puntero a la dirección inicial de la memoria asignada o null si no se pudo satisfacer la solicitud.

Valor devuelto

HRESULT Descripción
S_OK VirtualAlloc se devolvió correctamente.
HOST_E_CLRNOTAVAILABLE El Common Language Runtime (CLR) no se ha cargado en un proceso o se encuentra en un estado en el que no puede ejecutar código administrado o procesar la llamada correctamente.
HOST_E_TIMEOUT Se agotó el tiempo de espera de la llamada.
HOST_E_NOT_OWNER El autor de la llamada no es el propietario del bloqueo.
HOST_E_ABANDONED Se canceló un evento mientras que una fibra o subproceso que estaba bloqueado lo estaba esperando.
E_FAIL Ocurrió un error grave desconocido. Si un método devuelve el valor E_FAIL, el CLR ya no se podrá usar en el proceso. Las llamadas que se hagan a los métodos de hospedaje posteriormente devolverán el valor HOST_E_CLRNOTAVAILABLE.
E_OUTOFMEMORY No ha habido suficiente memoria disponible para completar la solicitud de asignación

Comentarios

Para reservar una región en el espacio de direcciones del proceso, llame a VirtualAlloc. El parámetro pAddress contiene la dirección inicial del bloque de memoria que desea. Este parámetro se establece normalmente en NULL. El sistema operativo mantiene un registro de intervalos de direcciones libres disponibles para el proceso. Un valor pAddressde null indica al sistema que reserve la región dondequiera que se ajuste. Como alternativa, puede proporcionar una dirección inicial específica para el bloque de memoria. En ambos casos, el parámetro ppMem de salida se devuelve como puntero a la memoria asignada. La propia función devuelve un valor HRESULT.

La función Win32 VirtualAlloc no tiene un ppMem parámetro y devuelve el puntero a la memoria asignada en su lugar. Para obtener más información, vea la documentación de la Plataforma de Windows.

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: MSCorEE.h

Biblioteca: incluida como recurso en MSCorEE.dll

Versiones de .NET Framework: disponible a partir de la versión 2.0

Consulte también