63 lines
1.9 KiB
HTML
63 lines
1.9 KiB
HTML
|
|
|
|
<h2>Allocate Real Mode Callback Address
|
|
<img src="../0.9.gif" alt="[0.9]" width=22 height=17></h2>
|
|
|
|
Returns a unique real mode segment:offset, known as a "real mode
|
|
callback," that will transfer control from real mode to a protected
|
|
mode procedure. Callback addresses obtained with this function can be
|
|
passed by a protected mode program to a real mode application,
|
|
interrupt handler, device driver, or TSR, so that the real mode
|
|
program can call procedures within the protected mode program or
|
|
notify the protected mode program of an event.<p>
|
|
|
|
<b>Call With</b><br>
|
|
<img src="r/ax+D+esi+E+edi.gif" alt="" width=245 height=59><br>
|
|
|
|
AX = 0303H<br>
|
|
|
|
DS:(E)SI = selector:offset of protected mode procedure to call<br>
|
|
|
|
ES:(E)DI = selector:offset of 32H-byte buffer for real mode register
|
|
data structure to be used when calling callback routine.<p>
|
|
|
|
<b>Returns</b><br>
|
|
<img src="r/ax+cx+dx+c.gif" alt="" width=245 height=59><br>
|
|
|
|
<i>if function successful</i><br>
|
|
Carry flag = clear<br>
|
|
CX:DX = segment:offset of real mode callback<p>
|
|
|
|
<i>if function unsuccessful</i><br>
|
|
Carry flag = set<br>
|
|
AX = <a href="errors.html">error code</a>
|
|
|
|
<table border=1 cellspacing=0 cellpadding=4>
|
|
|
|
<tr><td>8015H</td><td>callback unavailable</td></tr>
|
|
|
|
</table>
|
|
|
|
<h2>Notes</h2><ul>
|
|
|
|
|
|
<li>DPMI hosts must provide a minimum of 16 callback
|
|
addresses per client.<p>
|
|
|
|
<li>A descriptor may be allocated for each callback to hold the real
|
|
mode SS descriptor. Real mode callbacks are a limited system resource.
|
|
A client should use the Free Real Mode Callback Address function (<a
|
|
href="310304.html">Int 31H Function 0304H</a>) to release a callback
|
|
that it is no longer using.<p>
|
|
|
|
<li>For further information on writing real mode callback procedures,
|
|
see <a href="../ch4.6.html">that page</a>.<p>
|
|
|
|
<li>The contents of the real mode register data structure is
|
|
not valid after the function call, but only at the time
|
|
of the actual callback.<p>
|
|
|
|
</ul>
|
|
|
|
|