DosSubFree

This call frees memory previously allocated by DosSubAlloc.

Syntax
DosSubFree (SegSelector, BlockOffset, Size)

Parameters

 * SegSelector (SEL) - input : Data segment selector.
 * BlockOffset (USHORT) - input : Memory block offset. The value specified must equal the BlockOffset returned on a previous DosSubAlloc call.
 * Size (USHORT) - input : Size, in bytes, of the block to be freed.

Return Code

 * rc (USHORT) - return:Return code descriptions are:
 * 0 NO_ERROR
 * 312 ERROR_DOSSUB_OVERLAP
 * 313 ERROR_DOSSUB_BADSIZE

Remarks
DosSubFree specifies the offset of a block of memory previously suballocated by a DosSubAlloc request. If the block specified overlaps memory in the segment that is not suballocated, an error is returned. Like DosSubAlloc, the size parameter must be a multiple of four bytes; otherwise, it is rounded up to a multiple of four bytes.

The allocated segment is freed by calling DosFreeSeg.

C

 * 1) define INCL_DOSMEMMGR

USHORT rc = DosSubFree(SegSelector, BlockOffset, Size);

SEL    SegSelector;   /* Segment selector */ USHORT BlockOffset;   /* Offset of memory block to free */ USHORT Size;          /* Size of block in bytes */

USHORT rc;            /* return code */ 

MASM
 EXTRN DosSubFree:FAR INCL_DOSMEMMGR     EQU 1

PUSH  WORD    SegSelector   ;Segment selector PUSH  WORD    BlockOffset   ;Offset of memory block to free PUSH  WORD    Size          ;Size of block in bytes CALL  DosSubFree

Returns WORD 