Программирование для защищенного режима 215
Освобождает память, выделенную с помощью GIobalDosAlloc. Selector — селектор блока памяти. Возвращает селектор блока, если операция прошла успешно, или 0, если неудачно.
Процедура GlobalFix. Заголовок:
Procedure GlobalFix(Mem: THandle);
Делает блок, связанный с дескриптором Мет, неперемещаемым. фиксированные блоки препятствуют эффективной работе менеджера памяти, поэтому следует разблокировать блок с помощью GIobaIUnFix сразу, как только это станет возможным.
Функция GlobalFlaqs. Заголовок:
Function GlobalFlags(Mem: THandle): Word;
Возвращает информацию о блоке, связанном с дескриптором Мет:
флаги памяти в старшем байте и счетчик блокировок — в младшем. Для тестирования флагов следует использовать маски из флагов gmem_Shared, gmem_Discard и gmem_Discarded (последний флаг означает, что блок выгружен на диск, остальные см. GlobalAIloc). Для получения значения счетчика блокировок следует использовать маску gmem_LockCount.
Функция GlobalFree. Заголовок:
Function GlobalFree(Mem: THandle): THandle;
Освобождает глобальный блок памяти, связанный с дескриптором Мет. Возвращает десриптор блока, если операция прошла успешно, или ноль — а противном случае.
Функция GobalFreePtr. Заголовок:
Function GobalFreePtr(P: Pointer): THandle;
Освобождает блок памяти, созданный с помощью обращения к GlobalAllocPtr.
функция GlobalHandle. Заголовок:
Function GlobalHandle(Mem: Word): Longint;
Возвращает селектор (в старшем слове) и дескриптор (в младшем) блока по его селектору Mem или ноль, если с блоком не связан дескриптор.
Функция GlobalLock. Заголовок:
Function GlobalLock(Mem: THandle): Pointer;
Фиксирует блок в памяти и возвращает его физический адрес. Функция увеличивает на единицу счетчик блокировок блока. Блок остается зафиксированным до тех пор, пока счетчик не станет равен нулю.
Функция GlobalLockPtr. Заголовок:
Function GlobalLockPtr(P: Pointer): Pointer;