Функция VirtualUnlock снимает фиксацию в памяти с указанного диапазона страниц и разрешает, в случае необходимости, сбрасывать их в файл подкачки.
function VirtualUnlock( lpAddress: Pointer; // начальный адрес фрагмента памяти dwSize: DWORD // размер фрагмента памяти ): BOOL; stdcall;
Параметры
lpAddress [in]
Указывает на начальный адрес диапазона, с которого будет снята фиксация в
памяти.
dwSize [in]
Задает размер региона, с которого будет снят фиксация в памяти. При этом в будет
снята фиксация со всех страниц в памяти, в которых присутсвует хотя бы один байт
из указанного диапазона от lpAddress до (lpAddress + dwSize). Это означает, в
частности, что при попытке снять фиксацию с диапазона памяти длиной 2 байта,
который берет начало на одной странице, а заканчивается на другой, в памяти
будет снята фиксация с двух страниц памяти (8192 байт).
Возвращаемое значение
В случае удачного завершения функция возвращает значение True.
В случае возникновения ошибки возвращаемым значением функции будет False. Для получения расширенной информации об ошибке следует сделать вызов GetLastError.
Описание
Для того, чтобы функция VirtualUnlock выполнилась успешно, нет необходимости в строгом соответствии между вызовами VirtualLock и VirtualUnlock, т. е. нет необходимости в том, чтобы именно указанный при вызове диапазон памяти ранее передавался функции VirtualLock, однако требуется чтобы все страницы указанного диапазона были зафиксированы в памяти. Это означает также, что если у нас в распоряжении имеется смежный диапазон в памяти, который был зафиксирован в несколькими вызовами VirtualLock, то снять фиксацию с памяти можно одним вызовом VirtualUnlock.
Windows NT/2000: Вызов функции VirtualUnlock к страницам памяти, которые ранее не были зафиксированы, приведет к тому, что указанные страницы будут удачены из рабочего окружения процесса и сброшены в файл подкачки.
Требования
Windows NT/2000: Требуется Windows NT 3.1 или более поздняя версия
Windows 95/98: Требуется Windows 981
или более поздняя версия
Бибиотека: Kernel32.dll
Подключаемый модуль: Windows
Смотри также:
VirtualQueryEx |
Список записей![]() |
© Mystic, 2002
1) Довольно странно выглядит тот факт, что функция VirtualLock не поддерживается на платформах Windows 9x, однако функция VirtualUnlock поддерживается платформой Windows 98.