VirtualUnlock

Функция 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

Смотри также:

  • виртуальная память,
  • работа с виртуальной памятью,
  • список функций для работы с виртуальной памятью,
  • VirtualLock
  • НазадVirtualQueryEx Список записейВперед

    © Mystic, 2002

    Сноски

    1)  Довольно странно выглядит тот факт, что функция VirtualLock не поддерживается на платформах Windows 9x, однако функция VirtualUnlock поддерживается платформой Windows 98.