Jump to content

DosSizeSeg

From EDM2
Revision as of 23:44, 28 August 2016 by Martini (talk | contribs) (Created page with "==Description== This call returns the size of a segment. ==Syntax== <PRE> DosSizeSeg (Selector, Size) </PRE> ==Parameters== ; Selector (SEL) - input : Selector/segmen...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Description

This call returns the size of a segment.

Syntax

 DosSizeSeg

    (Selector, Size)

Parameters

Selector (SEL) - input
Selector/segment of the segment for which size is to be determined. This must be the base selector in the case of a huge segment.
Size (PULONG) - output
Address of the returned segment size. For non-huge segments, size is in the range 0 through 64KB. For huge segments, size equals (NUMSEG << 16) + ASIZE where NUMSEG and ASIZE are the last values passed successfully to DosAllocHuge or DosReallocHuge for this huge segment.

Return Code

rc (USHORT) - return

Return code description is:

  • 0 NO_ERROR

Remarks

This function provides compatibility for family applications that must run in DOS or OS/2 mode. DosSizeSeg returns the actual size of memory allocated by a DosAllocSeg or DosAllocHuge request and is intended for use when the application is running in DOS mode, where allocations are rounded up to the next paragraph.

Example Code

C Binding

#define INCL_DOSMEMMGR

USHORT  rc = DosSizeSeg(Selector, Size);

SEL              Selector;      /* Selector/Segment */
PULONG           Size;          /* Size of segment (returned) */

USHORT           rc;            /* return code */

MASM Binding

EXTRN  DosSizeSeg:FAR
INCL_DOSMEMMGR      EQU 1

PUSH   WORD    Selector      ;Selector/Segment
PUSH@  DWORD   Size          ;Size of segment (returned)
CALL   DosSizeSeg

Returns WORD

Related Functions