en:docs:fapi:dossuballoc

Differences

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

Link to this comparison view

en:docs:fapi:dossuballoc [2018/08/30 18:34] (current)
prokushev created
Line 1: Line 1:
 +
 +This call suballocates portions of a segment allocated by DosAllocSeg or DosAllocShrSeg,​ and initialized by DosSubSet.
 +
 +==Syntax==
 + ​DosSubAlloc (SegSelector,​ BlockOffset,​ Size)
 +
 +==Parameters==
 +;​SegSelector (SEL) - input : Data segment selector that allocates the memory.
 +;​BlockOffset (PUSHORT) - output : Address of the allocated block offset.
 +;Size (USHORT) - input : Memory block size requested in bytes.
 +
 +==Return Code==
 + rc (USHORT) - return
 +Return code descriptions are:
 +* 0          NO_ERROR
 +* 311        ERROR_DOSSUB_NOMEM ​
 +* 313        ERROR_DOSSUB_BADSIZE
 +
 +==Remarks==
 +Before a segment allocated by [[DosAllocSeg]] or [[DosAllocShrSeg]] can be suballocated,​ it must first be initialized for suballocation by a call to [[DosSubSet]].
 +
 +Allocation size must be a multiple of four bytes. Otherwise, it is rounded up to a multiple of four bytes. The maximum value for the size parameter is the size that was set with DosSubSet minus 8. Note that no paragraph (16-byte) alignment is required; all requests are serviced on a byte alignment basis.
 +
 +A suballocated block of memory in a suballocated segment is freed by a call to DosSubFree. ​
 +
 +==Example Code==
 +===C Binding===
 +<PRE>
 +#define INCL_DOSMEMMGR
 +
 +USHORT ​ rc = DosSubAlloc(SegSelector,​ BlockOffset,​ Size);
 +
 +SEL              SegSelector; ​  /* Segment selector */
 +PUSHORT ​         BlockOffset; ​  /* Block Offset (returned) */
 +USHORT ​          ​Size; ​         /* Size of requested block */
 +
 +USHORT ​          ​rc; ​           /* return code */
 +</​PRE>​
 +
 +===MASM Binding===
 +<PRE>
 +EXTRN  DosSubAlloc:​FAR
 +INCL_DOSMEMMGR ​     EQU 1
 +
 +PUSH   ​WORD ​   SegSelector ​  ;​Segment selector
 +PUSH@  WORD    BlockOffset ​  ;​Block Offset (returned)
 +PUSH   ​WORD ​   Size          ;Size of requested block
 +CALL   ​DosSubAlloc
 +
 +Returns WORD
 +</​PRE>​
 +
 +
 +
 +====== Note ======
 +
 +Text based on [[http://​www.edm2.com/​index.php/​DosSubAlloc]]
 +
 +{{page>​en:​templates:​fapi}}
  

en/docs/fapi/dossuballoc.txt · Last modified: 2018/08/30 18:34 by prokushev