en:docs:win16:api:kernel:localinit

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
en:docs:win16:api:kernel:localinit [2023/05/01 10:41] – created prokusheven:docs:win16:api:kernel:localinit [2026/02/08 16:07] (current) prokushev
Line 1: Line 1:
 {{page>en:templates:win16api}} {{page>en:templates:win16api}}
  
-======  ======+====== LocalInit ======
  
 ===== Brief ===== ===== Brief =====
 +Initializes a local heap within a specified memory segment.
  
 ===== Syntax ===== ===== Syntax =====
 +<code c>
 +BOOL WINAPI LocalInit(
 +  WORD  wSegment,
 +  WORD  wOffset,
 +  WORD  wHeapSize
 +);
 +</code>
  
 ===== Parameters ===== ===== Parameters =====
 +  * **wSegment** - The selector of the segment in which to initialize the local heap.
 +  * **wOffset** - The offset within the segment at which the heap should start.
 +  * **wHeapSize** - The size, in bytes, of the heap to initialize.
  
 ===== Return Code ===== ===== Return Code =====
 +  * Returns **non-zero** if the heap is successfully initialized.
 +  * Returns **0** if initialization fails.
  
 ===== Notes ===== ===== Notes =====
 +  * The function sets up a local heap manager within the provided segment, enabling local memory allocation functions to operate within that segment.
 +  * Applications typically call LocalInit during initialization of a data segment or a dynamically allocated memory block intended for use as a local heap.
  
 ===== Example Code ===== ===== Example Code =====
  
 ==== C Binding ==== ==== C Binding ====
 +<code c>
 +#include <windows.h>
 +
 +BOOL WINAPI InitializeLocalHeap(WORD seg, WORD offset, WORD size) {
 +    return LocalInit(seg, offset, size);
 +}
 +</code>
  
 ==== MASM Binding ==== ==== MASM Binding ====
 +<file>
 +; Assume AX = segment, DX = offset, CX = heap size
 +push ax          ; wSegment
 +push dx          ; wOffset
 +push cx          ; wHeapSize
 +call LocalInit   ; Returns AX = non-zero if success
 +</file>
  
 ===== See also ===== ===== See also =====
 +  * [[en:docs:win16:api:kernel:LocalAlloc|LocalAlloc]] - Allocates memory from the local heap.
 +  * [[en:docs:win16:api:kernel:LocalFree|LocalFree]] - Frees memory allocated from the local heap.
 +  * [[en:docs:win16:api:kernel:LocalSize|LocalSize]] - Retrieves the size of a local memory block.
 +  * [[en:docs:win16:api:kernel:LocalReAlloc|LocalReAlloc]] - Reallocates a local memory block.
  
 {{page>en:templates:win16}} {{page>en:templates:win16}}