This call returns the size of a segment.
DosSizeSeg (Selector, Size)
- 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.
- rc (USHORT) - return
- Return code description is:
- 0 NO_ERROR
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.
#define INCL_DOSMEMMGR USHORT rc = DosSizeSeg(Selector, Size); SEL Selector; /* Selector/Segment */ PULONG Size; /* Size of segment (returned) */ USHORT rc; /* return code */
EXTRN DosSizeSeg:FAR INCL_DOSMEMMGR EQU 1 PUSH WORD Selector ;Selector/Segment PUSH@ DWORD Size ;Size of segment (returned) CALL DosSizeSeg Returns WORD