Jump to content

DosUnlockSeg: Difference between revisions

From EDM2
No edit summary
Ak120 (talk | contribs)
mNo edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{Legacy
|RepFunc=
|Remarks=This page list the older version of the function for reference.
}}
This call unlocks a discardable segment.
This call unlocks a discardable segment.


Line 12: Line 8:


==Return Code==
==Return Code==
rc (USHORT) - return
;rc (USHORT) - return: Return code descriptions are:
Return code descriptions are:
* 0 NO_ERROR
* 0         NO_ERROR
* 5 ERROR_ACCESS_DENIED
* 5         ERROR_ACCESS_DENIED
*158 ERROR_NOT_LOCKED
* 158       ERROR_NOT_LOCKED


==Remarks==
==Remarks==
DosUnlockSeg is called to free memory for possible discard by the system in a low memory situation. The memory being freed is originally allocated by a call to DosAllocSeg or DosAllocHuge with AllocFlags bit 2 set. This memory may have been reallocated by a call to DosReallocSeg or DosReallocHuge after discard by the system.
DosUnlockSeg is called to free memory for possible discard by the system in a low memory situation. The memory being freed is originally allocated by a call to [[DosAllocSeg]] or [[DosAllocHuge]] with AllocFlags bit 2 set. This memory may have been reallocated by a call to [[DosReallocSeg]] or [[DosReallocHuge]] after discard by the system.


Allocation and reallocation calls for discardable memory automatically lock the memory for access by the calling process. Thus, to access the segment, the caller does not have to lock the segment with DosLockSeg. Once a discardable segment is unlocked by a DosUnlockSeg request, access to the segment is gained by a successful DosLockSeg request.
Allocation and reallocation calls for discardable memory automatically lock the memory for access by the calling process. Thus, to access the segment, the caller does not have to lock the segment with [[DosLockSeg]]. Once a discardable segment is unlocked by a DosUnlockSeg request, access to the segment is gained by a successful DosLockSeg request.


DosUnlockSeg may also be used on segments that are non-discardable, in which case it has no effect.  
DosUnlockSeg may also be used on segments that are non-discardable, in which case it has no effect.


==Example Code==
==Bindings==
=== C Binding===
===C===
<PRE>
<PRE>
#define INCL_DOSMEMMGR
#define INCL_DOSMEMMGR
Line 32: Line 27:
USHORT  rc = DosUnlockSeg(Selector);
USHORT  rc = DosUnlockSeg(Selector);


SEL             Selector;      /* Selector to unlock */
SEL     Selector;      /* Selector to unlock */


USHORT           rc;            /* return code */
USHORT rc;            /* return code */
</PRE>
</PRE>
===MASM Binding===
===MASM===
<PRE>
<PRE>
EXTRN  DosUnlockSeg:FAR
EXTRN  DosUnlockSeg:FAR
Line 46: Line 41:
Returns WORD
Returns WORD
</PRE>
</PRE>
==Related Functions==
*


[[Category:Dos]]
[[Category:Dos16]]

Latest revision as of 02:36, 26 January 2020

This call unlocks a discardable segment.

Syntax

DosUnlockSeg (Selector)

Parameters

Selector (SEL) - input
Segment selector to be unlocked.

Return Code

rc (USHORT) - return
Return code descriptions are:
  • 0 NO_ERROR
  • 5 ERROR_ACCESS_DENIED
  • 158 ERROR_NOT_LOCKED

Remarks

DosUnlockSeg is called to free memory for possible discard by the system in a low memory situation. The memory being freed is originally allocated by a call to DosAllocSeg or DosAllocHuge with AllocFlags bit 2 set. This memory may have been reallocated by a call to DosReallocSeg or DosReallocHuge after discard by the system.

Allocation and reallocation calls for discardable memory automatically lock the memory for access by the calling process. Thus, to access the segment, the caller does not have to lock the segment with DosLockSeg. Once a discardable segment is unlocked by a DosUnlockSeg request, access to the segment is gained by a successful DosLockSeg request.

DosUnlockSeg may also be used on segments that are non-discardable, in which case it has no effect.

Bindings

C

#define INCL_DOSMEMMGR

USHORT  rc = DosUnlockSeg(Selector);

SEL     Selector;      /* Selector to unlock */

USHORT  rc;            /* return code */

MASM

EXTRN  DosUnlockSeg:FAR
INCL_DOSMEMMGR      EQU 1

PUSH   WORD Selector         ;Selector to unlock
CALL   DosUnlockSeg

Returns WORD