Files
oldlinux-files/docs/interrupts/int-html/rb-4861.htm
2024-02-19 00:23:35 -05:00

246 lines
14 KiB
HTML

<HTML>
<HEAD>
<TITLE>Int 2F/AX=4B01h
</TITLE>
<META NAME="Description" CONTENT="
Int 2F/AX=4B01h - DOS 5+ TASK SWITCHER - BUILD CALLOUT CHAIN -
AX = 4B01h
CX:DX - task switcher entry point (see #02819)
ES:BX = 0000h:0000h
Return: ES:BX - callback info structure (see #02817) or 0000h:0000h
Notes: called by the task switcher
this function is hooked by clients which require notification of task
switcher activities; the call must first be passed on to the prior
handler with registers unchanged using a simulated interrupt. On
return, the client must build a callback info structure and store
the returned ES:BX in the next field, then return the address of
">
<META NAME="robots" CONTENT="none">
</HEAD>
<BODY BGCOLOR="#FFD0A0">
<center>
<h2>Int 2F/AX=4B01h
</h2>
</center><p>
<table border=1 cellpadding=3 cellspacing=1>
<td>
<a href="rb-4860.htm" tppabs="http://www.ctyme.com/intr/rb-4860.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-4862.htm" tppabs="http://www.ctyme.com/intr/rb-4862.htm">
<img src="ldown.gif" tppabs="http://graphics.ctyme.com/gif/ldown.gif" border=0 alt=Next></a>
<a href="javascript:if(confirm('http://www.ctyme.com/rbrown.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/rbrown.htm'" tppabs="http://www.ctyme.com/rbrown.htm">
<img src="lhome.gif" tppabs="http://graphics.ctyme.com/gif/lhome.gif" border=0 alt=Ralf Brown Page></a>
<td><a href="int.htm" tppabs="http://www.ctyme.com/intr/int.htm">Interrups</a></td>
<td><a href="cat.htm" tppabs="http://www.ctyme.com/intr/cat.htm">Categories</a></td>
<td><a href="alpha.htm" tppabs="http://www.ctyme.com/intr/alpha.htm">Contents</a></td>
</td></table><p>
<p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
<h3><font color=#C00040>DOS 5+ TASK SWITCHER - BUILD CALLOUT CHAIN</font></h3>
<PRE>
AX = 4B01h
CX:DX -> task switcher entry point <a href="rb-4862.htm#Table2819" tppabs="http://www.ctyme.com/intr/rb-4862.htm#Table2819">(see #02819)</a>
ES:BX = 0000h:0000h<br>
<p><b>Return:</b><br>ES:BX -> callback info structure (see #02817) or 0000h:0000h
</PRE>
<p><b>Notes:</b>
Called by the task switcher.
This function is hooked by clients which require notification of task
switcher activities; the call must first be passed on to the prior
handler with registers unchanged using a simulated interrupt. On
return, the client must build a callback info structure and store
the returned ES:BX in the "next" field, then return the address of
its own callback info structure..
A client program must add itself to the notification chain if it
provides services to other programs; before terminating, it must
remove itself from the chain by calling the task switcher's entry
point with AX=0005h <a href="rb-4862.htm#Table2819" tppabs="http://www.ctyme.com/intr/rb-4862.htm#Table2819">(see #02819)</a>.
The task switcher entry point should not be saved, as it is subject to
change and will be provided on any notification call.
The Windows 3.1 Standard Mode supports this API
<p><b>See Also:</b>
<a href="rb-4520.htm" tppabs="http://www.ctyme.com/intr/rb-4520.htm">AX=160Bh</a> - <a href="rb-4862.htm" tppabs="http://www.ctyme.com/intr/rb-4862.htm">AX=4B02h</a>
<PRE>
<p>
Format of task switcher callback info structure:
<a name=table2817></a>
Offset Size Description (Table 02817)
00h DWORD pointer to next callback info structure
04h DWORD pointer to notification function <a href="rb-4861.htm#Table2818" tppabs="http://www.ctyme.com/intr/rb-4861.htm#Table2818">(see #02818)</a>
08h DWORD reserved
0Ch DWORD address of zero-terminated list of API info structures
<a href="rb-4862.htm#Table2821" tppabs="http://www.ctyme.com/intr/rb-4862.htm#Table2821">(see #02821)</a>
<p>
<a name=table2818></a>
(Table 02818)
Values task switcher notification function is called with:.
AX = function
0000h switcher initialization
<p><b>Return:</b><br>AX = status
0000h if OK to load
nonzero to abort task switcher
0001h query suspend
BX = session ID
<p><b>Return:</b><br>AX = status
0000h if OK to switch session
0001h if not
0002h suspend session
BX = session ID
interrupts disabled
<p><b>Return:</b><br>AX = 0000h if OK to switch session
= 0001h if not
0003h activate session
BX = session ID
CX = session status flags
<p><b>bit 0:</b><br>Set if first activation of session
<p><b>bits 1-15:</b><br>Reserved (0)
interrupts disabled
<p><b>Return:</b><br>AX = 0000h
0004h session active
BX = session ID
CX = session status flags
<p><b>bit 0:</b><br>Set if first activation of session
<p><b>bits 1-15:</b><br>Reserved (0)
<p><b>Return:</b><br>AX = 0000h
0005h create session
BX = session ID
<p><b>Return:</b><br>AX = 0000h if OK to create session
= 0001h if not
0006h destroy session
BX = session ID
<p><b>Return:</b><br>AX = 0000h
0007h switcher termination
BX = flags
<p><b>bit 0:</b><br>Set if calling switcher is only switcher loaded
<p><b>bits 1-15:</b><br>Reserved (0)
<p><b>Return:</b><br>AX = 0000h.
ES:DI -> task switcher entry point <a href="rb-4862.htm#Table2819" tppabs="http://www.ctyme.com/intr/rb-4862.htm#Table2819">(see #02819)</a>
</PRE>
<p><b>Notes:</b>
Function 0000h is generally called by the program which controls or
invokes the task switcher, rather than by the task switcher itself;
the entry point supplied to this function is not necessarily the
entry point to the task switcher itself, and may be 0000h:0000h. If
any client indicates that loading is not possible, all clients will
be called with function 0007h; thus it is possible for a client to
receive a termination notice without a corresponding initialization
notice..
Except for functions 0002h and 0003h, the notification handler is
called with interrupts enabled and may make any INT 21h function
call; interrupts must not be enabled in functions 0002h and 0003h.
Function 0007h may be called with ES:DI = 0000h:0000h if the entry
point is no longer valid
<p>
<b>Category: <a href="cat-011.htm" tppabs="http://www.ctyme.com/intr/cat-011.htm">
DOS-Based Task Switchers/Multitaskers</a>
- <a href="int-2f-1.htm" tppabs="http://www.ctyme.com/intr/int-2F.htm">
Int 2Fh</a>
- <a href="alpha-d.htm" tppabs="http://www.ctyme.com/intr/alpha-d.htm">
D</a>
</b><p><p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
<table border=1 cellpadding=3 cellspacing=1>
<td>
<a href="rb-4860.htm" tppabs="http://www.ctyme.com/intr/rb-4860.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-4862.htm" tppabs="http://www.ctyme.com/intr/rb-4862.htm">
<img src="ldown.gif" tppabs="http://graphics.ctyme.com/gif/ldown.gif" border=0 alt=Next></a>
<a href="javascript:if(confirm('http://www.ctyme.com/rbrown.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/rbrown.htm'" tppabs="http://www.ctyme.com/rbrown.htm">
<img src="lhome.gif" tppabs="http://graphics.ctyme.com/gif/lhome.gif" border=0 alt=Ralf Brown Page></a>
<td><a href="int.htm" tppabs="http://www.ctyme.com/intr/int.htm">Interrups</a></td>
<td><a href="cat.htm" tppabs="http://www.ctyme.com/intr/cat.htm">Categories</a></td>
<td><a href="alpha.htm" tppabs="http://www.ctyme.com/intr/alpha.htm">Contents</a></td>
</td></table><p>
<!-- Bottom Link Start -->
<center>
<p><table border=1 bgcolor="#ffff99"><tr><td>
<table border=0 height=80>
<tr align=center><td width="65">
<a href="javascript:if(confirm('http://www.ctyme.com/sponsor.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/sponsor.htm'" tppabs="http://www.ctyme.com/sponsor.htm">
<img src="tip.gif" tppabs="http://graphics.ctyme.com/gif/tip.gif" ALT="Sponsors" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://www.ctyme.com/sponsor.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/sponsor.htm'" tppabs="http://www.ctyme.com/sponsor.htm">Shopping</a>
</td><td width="65">
<a href="javascript:if(confirm('http://talk.ctyme.com/webx.cgi?13@@.ee6b2be \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://talk.ctyme.com/webx.cgi?13@@.ee6b2be'" tppabs="http://talk.ctyme.com/webx.cgi?13@@.ee6b2be">
<img src="comment.gif" tppabs="http://graphics.ctyme.com/gif/comment.gif" ALT="Forum" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://talk.ctyme.com/webx.cgi?13@@.ee6b2be \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://talk.ctyme.com/webx.cgi?13@@.ee6b2be'" tppabs="http://talk.ctyme.com/webx.cgi?13@@.ee6b2be">Forum</a>
</td><td width="65">
<a href="javascript:if(confirm('http://www.ctyme.com/mail.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/mail.htm'" tppabs="http://www.ctyme.com/mail.htm">
<img src="mail.gif" tppabs="http://graphics.ctyme.com/gif/mail.gif" ALT="email" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://www.ctyme.com/mail.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/mail.htm'" tppabs="http://www.ctyme.com/mail.htm">EMail</a>
</td><td width="65">
<a href="javascript:if(confirm('http://www.ctyme.com/map.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/map.htm'" tppabs="http://www.ctyme.com/map.htm">
<img src="toc.gif" tppabs="http://graphics.ctyme.com/gif/toc.gif" ALT="Index" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://www.ctyme.com/map.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/map.htm'" tppabs="http://www.ctyme.com/map.htm">Index</a>
</td><td width="65">
<a href="javascript:if(confirm('http://www.ctyme.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/'" tppabs="http://www.ctyme.com/">
<img src="home.gif" tppabs="http://graphics.ctyme.com/gif/home.gif" ALT="Home" height="40" width="40"></a>
<br><a href="javascript:if(confirm('http://www.ctyme.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/'" tppabs="http://www.ctyme.com/">Home</a>
</td><td width="90">
<center>
<FORM ACTION="https://secure.paypal.com/cgi-bin/webscr" tppabs="https://secure.paypal.com/cgi-bin/webscr" METHOD="POST" traget="_blank">
<INPUT TYPE="hidden" NAME="cmd" VALUE="_xclick">
<INPUT TYPE="hidden" NAME="business" VALUE="marc@perkel.com">
<INPUT TYPE="hidden" NAME="return" VALUE="http://www.perkel.com">
<INPUT TYPE="hidden" NAME="item_name" VALUE="Donation To Support this Site">
<INPUT TYPE="hidden" NAME="no_intl" VALUE="1">
<INPUT TYPE="image" SRC="x-click-but7.gif" tppabs="http://images.paypal.com/images/x-click-but7.gif" vspace=9
NAME="submit" ALT="Make payments with PayPal - it's fast, free and secure!">
</FORM>
</td></tr></table></td></tr></table><p>
<center>
<p>
<a href="javascript:if(confirm('http://www.ctyme.com/hosting/index.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/hosting/index.htm'" tppabs="http://www.ctyme.com/hosting/index.htm" target="_blank">
<img src="ctymehost.gif" tppabs="http://graphics.ctyme.com/gif/ctymehost.gif"
border=3 height=60 width=468></a>
<p>
<!-- Ad End --->
</center>
<FORM ACTION="http://service.bfast.com/bfast/click" target="_blank">
<INPUT TYPE="hidden" NAME="siteid" VALUE="30472466" >
<INPUT TYPE="hidden" NAME="bfpage" VALUE="horizontal">
<INPUT TYPE="hidden" NAME="bfmid" VALUE="27253343" >
<INPUT TYPE="hidden" NAME="num" VALUE="30">
<table bgcolor=white border=3><tr><td>
<table bgcolor=white border=0>
<tr><td>
<IMG SRC="serve-bfmid=27253343&siteid=30472466&bfpage=horizontal.gif" tppabs="http://service.bfast.com/bfast/serve?bfmid=27253343&siteid=30472466&bfpage=horizontal" BORDER="0" WIDTH="1" HEIGHT="1" align=right NOSAVE >
<center><b>Search the web with Google</b></center>
</td></tr><tr><td>
<TABLE cellpadding=0 cellspacing=5 bgcolor="#FFFFFF">
<tr><td bgcolor="#0000cc"><IMG SRC="cleardot.gif" tppabs="http://www.google.com/images/cleardot.gif" height=1 border="0" ALT="Google"></td></tr><tr><td>
<IMG SRC="affiliate_logo.gif" tppabs="http://www.google.com/affiliates/affiliate_logo.gif" border="0" ALT="Google" align="center">
<INPUT TYPE=text name=q size=30 maxlength=255 value="">
<INPUT type=submit name=sa VALUE="Go">
</td></tr>
<tr><td bgcolor="#0000cc"><IMG SRC="cleardot.gif" tppabs="http://www.google.com/images/cleardot.gif" height=1 border="0" ALT="Google"></td></tr></TABLE>
</td></tr></table>
</tr></td></table>
</FORM>
</center>
<p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
<!-- Bottom Link End -->
</BODY>
</HTML>