Метод IHostMemoryManager::VirtualAlloc
Служит логической оболочкой для соответствующей функции 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.
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по