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