Функция 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
Смотри также:
HeapFree |
HeapReAlloc![]() |
© Mystic, 2002