DosSizeSeg: Difference between revisions
Appearance
Created page with "==Description== This call returns the size of a segment. ==Syntax== <PRE> DosSizeSeg (Selector, Size) </PRE> ==Parameters== ; Selector (SEL) - input : Selector/segmen..." |
mNo edit summary |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
This call returns the size of a segment. | This call returns the size of a segment. | ||
==Syntax== | ==Syntax== | ||
DosSizeSeg (Selector, Size) | |||
DosSizeSeg | |||
==Parameters== | ==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. | |||
; 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== | ==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. | |||
==Bindings== | |||
=== C === | |||
== | |||
=== C | |||
<PRE> | <PRE> | ||
#define INCL_DOSMEMMGR | #define INCL_DOSMEMMGR | ||
Line 29: | Line 22: | ||
USHORT rc = DosSizeSeg(Selector, Size); | USHORT rc = DosSizeSeg(Selector, Size); | ||
SEL | SEL Selector; /* Selector/Segment */ | ||
PULONG | PULONG Size; /* Size of segment (returned) */ | ||
USHORT | USHORT rc; /* return code */ | ||
</PRE> | </PRE> | ||
===MASM | ===MASM=== | ||
<PRE> | <PRE> | ||
EXTRN DosSizeSeg:FAR | EXTRN DosSizeSeg:FAR | ||
Line 47: | Line 40: | ||
</PRE> | </PRE> | ||
[[Category:Dos16]] | |||
[[Category: |
Latest revision as of 08:05, 26 January 2020
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.
Bindings
C
#define INCL_DOSMEMMGR USHORT rc = DosSizeSeg(Selector, Size); SEL Selector; /* Selector/Segment */ PULONG Size; /* Size of segment (returned) */ USHORT rc; /* return code */
MASM
EXTRN DosSizeSeg:FAR INCL_DOSMEMMGR EQU 1 PUSH WORD Selector ;Selector/Segment PUSH@ DWORD Size ;Size of segment (returned) CALL DosSizeSeg Returns WORD