DosFreeSeg
Bindings: C, MASM
This call deallocates a memory segment.
DosFreeSeg (Selector)
Selector (SEL) - input
Selector of the segment to be freed.
rc (USHORT) - return
Return code descriptions are:
0 NO_ERROR
5 ERROR_ACCESS_DENIED
212 ERROR_LOCKED
Remarks
DosFreeSeg frees selectors to segments returned by allocation calls to
DosAllocSeg, DosAllocShrSeg, and DosAllocHuge. In addition, DosFreeSeg
frees a selector returned by a call to DosCreateCSAlias. If a CS alias
selector has been created for a data segment by a call to
DosCreateCSAlias, the CS alias selector is still valid after the
segment's data selector has been freed.
When allocated memory is shared, all selectors to the shared memory must
be freed before the memory is deallocated. For example, if memory
allocated by DosAllocSeg or DosAllocHuge has been given to another
process with DosGiveSeg, the giver usually frees its selector by a call
to DosFreeSeg. The recipient, in turn, frees the selector passed to it,
after it has accessed the shared memory with DosGetSeg.
DosFreeSeg decrements the reference count for named shared segments
allocated by DosAllocShrSeg. Access to the segment with DosGetShrSeg
increments this count. When the count is 0, the memory is deallocated.
Family API Considerations
Some options operate differently in the DOS mode than in OS/2 mode.
Therefore, the following restriction applies to DosFreeSeg when coding
for the DOS mode:
If DosFreeSeg is issued on a CSAliased segment it deallocates the
associated memory. This is inconsistent with the OS/2 mode, because
DosFreeSeg must be performed on both the original and CSAliased
selectors.
Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs