Программирование для защищенного режима 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;