Метод IHostMemoryManager::VirtualProtect
Служит логической программой-оболочкой для соответствующей функции Win32. Реализация Win32 метода VirtualProtect меняет защиту в области зафиксированных страниц виртуального адресного пространства вызывающего процесса.
HRESULT VirtualProtect (
[in] void* lpAddress,
[in] SIZE_T dwSize,
[in] DWORD flNewProtect,
[out] DWORD* pflOldProtect
);
Параметры
lpAddress
[in] Указатель на базовый адрес виртуальной памяти, атрибуты защиты которой подвергаются изменению.dwSize
[in] Размер (в байтах) области страниц памяти, которую необходимо изменить.flNewProtect
[in] Тип применяемой защиты памяти.pflOldProtect
[out] Указатель на предыдущее значение защиты памяти.
Возвращаемое значение
HRESULT |
Описание |
---|---|
S_OK |
Метод VirtualProtect успешно возвратил значение. |
HOST_E_CLRNOTAVAILABLE |
Среда CLR не загружена в процесс или находится в состоянии, в котором ей не удается выполнить управляемый код или успешно обработать вызов. |
HOST_E_TIMEOUT |
Время ожидания вызова истекло. |
HOST_E_NOT_OWNER |
Вызывающий объект не владеет блокировкой. |
HOST_E_ABANDONED |
Событие, которого ожидал заблокированный поток или нить, было отменено. |
E_FAIL |
Произошел неизвестный разрушительный сбой. Если метод вернет значение E_FAIL, среду CLR более нельзя будет использовать в данном процессе. Последующие вызовы методов размещения возвращают значение HOST_E_CLRNOTAVAILABLE. |
Заметки
Эта реализация метода VirtualProtect возвращает значение HRESULT, в то время как реализация Win32 возвращает ненулевое значение для обозначения успешного выполнения и нуль для обозначения сбоя. Дополнительные сведения см. в документации по платформе Windows.
Требования
Платформы: см. раздел Требования к системе для .NET Framework.
Заголовок: MSCorEE.h
Библиотека: включена как ресурс в MSCorEE.dll
Версии платформы .NET Framework: 4, 3.5 с пакетом обновления 1 (SP1), 3.5, 3.0 с пакетом обновления 1 (SP1), 3.0, 2.0 с пакетом обновления 1 (SP1), 2.0