en:docs:fapi:dossubset

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
en:docs:fapi:dossubset [2018/08/30 16:58] – created prokusheven:docs:fapi:dossubset [2021/12/05 11:06] (current) prokushev
Line 1: Line 1:
 +{{page>en:templates:fapiint}}
 +
 +====== DosSubSet ======
  
 This call is used to initialize a segment or to reset a reallocated segment for suballocation. This call is used to initialize a segment or to reset a reallocated segment for suballocation.
  
-==Syntax== +===== Syntax ===== 
- DosSubSet (SegSelector, Flags, Size)+<code c> 
 +DosSubSet (SegSelector, Flags, Size) 
 +</code>
  
-==Parameters== +===== Parameters ===== 
-;SegSelector (SEL) - input : Target data segment selector. + 
-;Flags (USHORT) - input : +  SegSelector ([[SEL]]) - input : Target data segment selector. 
- 0 = Increasing the size of a segment already initialized. +  Flags ([[USHORT]]) - input : 
- 1 = Initializing a segment. + 
-;Size (USHORT) - input : Segment size in bytes.+  0 = Increasing the size of a segment already initialized. 
 +  1 = Initializing a segment. 
 + 
 +  * Size ([[USHORT]]) - input : Segment size in bytes. 
 + 
 +===== Return Code ===== 
 +rc ([[USHORT]]) - return
  
-==Return Code== 
- rc (USHORT) - return 
 Return code descriptions are: Return code descriptions are:
-* 0          NO_ERROR 
-* 310        ERROR_DOSSUB_SHRINK 
-* 313        ERROR_DOSSUB_BADSIZE 
-* 314        ERROR_DOSSUB_BADFLAG 
  
-==Remarks== +  * 0          NO_ERROR 
-To initialize a segment for suballocation, issue DosSubSet before issuing DosSubAlloc and set Flags = 1. The segment must have been allocated with DosAllocSeg or DosAllocShrSeg.+  * 310        ERROR_DOSSUB_SHRINK 
 +  * 313        ERROR_DOSSUB_BADSIZE 
 +  * 314        ERROR_DOSSUB_BADFLAG
  
-If a segment allocated by a DosAllocSeg call has already been set for suballocation, and a call to DosSubAlloc returns Error_DOSSUB_NOMEM, the segment's size can be increased by a call to DosReallocSeg. After reallocation, the segment must be reset by a DosSubSet. Failure to reset the segment after changing its size can yield unpredictable results.+===== Remarks =====
  
-The size parameter should be multiple of four bytesor it is rounded up to a multiple of four. Note in DosSubSet, a size parameter of 0 indicates the segment is 64KB, while in DosSubAlloc and DosSubFree, a size parameter of 0 is an errorOther than this special case of 0 meaning 64KB, the minimum size that can be set is 12 bytes+To initialize segment for suballocationissue DosSubSet before issuing [[DosSubAlloc]] and set Flags = 1The segment must have been allocated with [[DosAllocSeg]] or [[DosAllocShrSeg]].
  
-==Example Code== +If a segment allocated by a [[DosAllocSeg]] call has already been set for suballocation, and a call to [[[DosSubAlloc]] returns ERROR_DOSSUB_NOMEM, the segment's size can be increased by a call to [[DosReallocSeg]]. After reallocation, the segment must be reset by a DosSubSet. Failure to reset the segment after changing its size can yield unpredictable results. 
-=== C Binding=== + 
-<PRE>+The size parameter should be a multiple of four bytes, or it is rounded up to a multiple of four. Note in DosSubSet, a size parameter of 0 indicates the segment is 64KB, while in [[DosSubAlloc]] and [[DosSubFree]], a size parameter of 0 is an error. Other than this special case of 0 meaning 64KB, the minimum size that can be set is 12 bytes.  
 + 
 +===== Example Code ===== 
 + 
 +==== C Binding ===
 + 
 +<code c>
 #define INCL_DOSMEMMGR #define INCL_DOSMEMMGR
  
Line 39: Line 52:
  
 USHORT           rc;            /* return code */ USHORT           rc;            /* return code */
-</PRE>+</code>
  
-===MASM Binding=== +==== MASM Binding ===
-<PRE>+ 
 +<code asm>
 EXTRN  DosSubSet:FAR EXTRN  DosSubSet:FAR
 INCL_DOSMEMMGR      EQU 1 INCL_DOSMEMMGR      EQU 1
Line 50: Line 64:
 PUSH   WORD    Size          ;Size of a segment PUSH   WORD    Size          ;Size of a segment
 CALL   DosSubSet CALL   DosSubSet
 +
 +</code>
  
 Returns WORD Returns WORD
-</PRE> 
- 
- 
  
-====== Note ======+===== Note =====
  
 Text based on http://www.edm2.com/index.php/DosSubSet Text based on http://www.edm2.com/index.php/DosSubSet