Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Служит логической оболочкой для соответствующей функции Win32. Реализация VirtualAlloc Win32 резервирует или фиксирует область страниц в виртуальном адресном пространстве вызывающего процесса.
Синтаксис
HRESULT VirtualAlloc (
[in] void* pAddress,
[in] SIZE_T dwSize,
[in] DWORD flAllocationType,
[in] DWORD flProtect,
[in] EMemoryCriticalLevel dwCriticalLevel,
[out] void** ppMem
);
Параметры
pAddress
[in] Указатель на начальный адрес выделяемого региона.
dwSize
[in] Размер области (в байтах).
flAllocationType
[in] Тип выделения памяти.
flProtect
[in] Защита памяти для области выделенных страниц.
dwCriticalLevel
[in] Значение EMemoryCriticalLevel , указывающее влияние сбоя выделения.
ppMem
[out] Указатель на начальный адрес выделенной памяти или значение NULL, если запрос не может быть выполнен.
Возвращаемое значение
| HRESULT | Описание: |
|---|---|
| S_OK |
VirtualAlloc возвращено успешно. |
| HOST_E_CLRNOTAVAILABLE | Среда CLR не была загружена в процесс, или среда CLR находится в состоянии, в котором она не может выполнить управляемый код или обработать вызов. |
| HOST_E_TIMEOUT | Время ожидания звонка истекло. |
| HOST_E_NOT_OWNER | Вызывающий объект не владеет блокировкой. |
| HOST_E_ABANDONED | Событие было отменено во время ожидания заблокированного потока или волокна. |
| E_FAIL | Произошла неизвестная катастрофическая ошибка. Когда метод возвращает E_FAIL, среда CLR больше не используется в рамках процесса. Последующие вызовы методов размещения возвращают HOST_E_CLRNOTAVAILABLE. |
| E_OUTOFMEMORY | Недостаточно памяти для выполнения запроса на выделение |
Комментарии
Вы зарезервируйте регион в адресном пространстве процесса, вызвав .VirtualAlloc Параметр pAddress содержит начальный адрес нужного блока памяти. Этот параметр обычно имеет значение NULL. Операционная система сохраняет запись диапазонов свободных адресов, доступных вашему процессу. Значение pAddress NULL указывает системе зарезервировать регион там, где она считает нужным. Кроме того, можно указать конкретный начальный адрес для блока памяти. В обоих случаях выходной параметр ppMem возвращается в виде указателя на выделенную память. Сама функция возвращает значение HRESULT.
Функция Win32 VirtualAlloc не имеет ppMem параметра и вместо этого возвращает указатель на выделенную память. Дополнительные сведения см. в документации по платформе Windows.
Требования
Платформы: см. раздел Требования к системе.
Заголовка: MSCorEE.h
Библиотека: Включается в качестве ресурса в MSCorEE.dll
версии платформа .NET Framework: доступно с версии 2.0.