HeapLock

Функция HeapLock входит в критическую секцию, соответствующую данной куче, и блокирует к ней доступ из других потоков.

В случае удачного завершения, вызвавший ее поток является владельцем кучи. Только вызвавший эту функию поток может проводить операции выделения, перераспределения или освобождения памями в указанной куче. Обращения друих потоков к указанной куче будут блокированы до тех пор, пока поток, вызвавший функцию HeapLock, не произведет вызов функции HeapUnlock.

function HeapLock(
  hHeap: THandle     //дескриптор кучи
): BOOL; stdcall;

Параметры

hHeap [in]
Дескриптор кучи, которая будет использоваться только вызвавшим потоком.

Возвращаемое значение

В случае удачного завершения функция возвращает True.

В случае ошибки функция возвращает False. Для получения расширенной информации об ошибке следует сделать вызов GetLastError.

Описание

Функция HeapLock является необходимой, чтобы предотвратить доступ к куче из других потоков при использовании функции HeapWalk.

Каждому вызову функции HeapLock должен соответствовать вызов HeapUnlock. Если указанный вызов не будет произведен, то все потоки, которые будут обращаться к указанной куче, будут остановлены.

Примечание: для того, чтобы уберечь себя от ошибки нарушения доступа (access violation), вы должны защитить блоками структурной обработки исключений любой код, выполняющий операции чтения/записи в кучу. Для большей информации по этому вопросу смотрите раздел "Структурная обработка исключений".

Требования

Windows NT/2000: Требуется Windows NT 3.5 или более поздняя версия
Windows 95/98: Не поддерживается
Бибиотека: Kernel32.dll
Подключаемый модуль: Windows

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

  • виртуальная память,
  • работа с кучей,
  • описание кучи,
  • список функций для работы с кучей,
  • HeapUnlock,
  • HeapWalk
  • НазадHeapFree HeapReAllocВперед

    © Mystic, 2002