DosSubFree: Difference between revisions
Appearance
mNo edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{Legacy | |||
|RepFunc= | |||
|Remarks=This is part of the [[Family API]]. | |||
}} | |||
This call frees memory previously allocated by DosSubAlloc. | This call frees memory previously allocated by DosSubAlloc. | ||
Revision as of 23:43, 15 September 2017
![]() | |
---|---|
It is recommended to use a newer replacement for this function. | |
Replacement: | |
Remarks: | This is part of the Family API. |
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.
Example Code
C Binding
#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 Binding
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