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 pAddress
de 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