Compartir a través de


IHostMemoryManager::VirtualAlloc (Método)

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

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 páginas que se va a asignar.

  • dwCriticalLevel
    [in] Valor de EMemoryCriticalLevel que indica las consecuencias de un error en la asignación.

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

Valor devuelto

HRESULT

Descripción

S_OK

VirtualAlloc finalizó correctamente.

HOST_E_CLRNOTAVAILABLE

Common Language Runtime (CLR) no se ha cargado en un proceso o está en un estado en el que no puede ejecutar el 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 llamador no posee el bloqueo.

HOST_E_ABANDONED

Se canceló un evento mientras una fibra o un subproceso bloqueado estaba esperándole.

E_FAIL

Se ha producido un error catastrófico desconocido. Si un método devuelve E_FAIL, CLR no se puede seguir utilizando en el proceso. Las llamadas subsiguientes a métodos de hospedaje devuelven HOST_E_CLRNOTAVAILABLE.

E_OUTOFMEMORY

No había suficiente memoria disponible para satisfacer 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 del principio 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 pAddress null indica al sistema que reserve la región dondequiera que lo estime adecuado. Alternativamente, puede proporcionar una dirección inicial concreta para el bloque de memoria. En ambos casos, se devuelve ppMem del parámetro de salida como puntero a la memoria asignada. La propia función devuelve un valor HRESULT.

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

Requisitos

Plataformas: vea Requisitos de sistema de .NET Framework.

Encabezado: MSCorEE.h

Biblioteca: Se incluye como recurso en MsCorEE.dll

Versiones de .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Vea también

Referencia

IHostMemoryManager (Interfaz)