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

282 lines
16 KiB
HTML

<HTML>
<HEAD>
<TITLE>Int 21/AX=4402h/SF=01h
</TITLE>
<META NAME="Description" CONTENT="
Int 21/AX=4402h/SF=01h - Memory Managers - GET EMM IMPORT STRUCTURE ADDRESS -
AX = 4402h subfn 01h
BX = file handle for device EMMXXXX0
CX = 0006h (size of buffer in bytes)
DS:DX - buffer for EMM import structure record (see #01514)
first byte must be 01h on entry
Return: CF clear if successful
buffer filled (see also #03603 at INT 67/AH=3Fh)
CF set on error
AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
Notes: this function is supported by Microsoft EMM386.EXE v4.45+,
">
<META NAME="robots" CONTENT="none">
</HEAD>
<BODY BGCOLOR="#FFD0A0">
<center>
<h2>Int 21/AX=4402h/SF=01h
</h2>
</center><p>
<table border=1 cellpadding=3 cellspacing=1>
<td>
<a href="rb-2847.htm" tppabs="http://www.ctyme.com/intr/rb-2847.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-2849.htm" tppabs="http://www.ctyme.com/intr/rb-2849.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>Memory Managers - GET EMM IMPORT STRUCTURE ADDRESS</font></h3>
<PRE>
AX = 4402h subfn 01h
BX = file handle for device "EMMXXXX0"
CX = 0006h (size of buffer in bytes)
DS:DX -> buffer for EMM import structure record <a href="rb-2848.htm#Table1514" tppabs="http://www.ctyme.com/intr/rb-2848.htm#Table1514">(see #01514)</a>
first byte must be 01h on entry<br>
<p><b>Return:</b><br>CF clear if successful
buffer filled (see also #03603 at INT 67/AH=3Fh)
CF set on error
AX = error code (01h,05h,06h,0Dh) <a href="javascript:if(confirm('http://www.ctyme.com/intr/rb-0000.htm \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/intr/rb-0000.htm#Table0'" tppabs="http://www.ctyme.com/intr/rb-0000.htm#Table0"></a>(see #01680 at AH=59h/BX=0000h)
</PRE>
<p><b>Notes:</b>
This function is supported by Microsoft EMM386.EXE v4.45+,
QEMM-386 v6+, and CEMM v5.10+, and is intended for use by MS Windows
as it starts up.
For QEMM-386, this call always returns an error if Windows3 support
has been disabled with the NW3 switch
<p><b>See Also:</b>
<a href="rb-2847.htm" tppabs="http://www.ctyme.com/intr/rb-2847.htm">AX=4402h/SF=00h</a> - <a href="rb-2846.htm" tppabs="http://www.ctyme.com/intr/rb-2846.htm">AX=4402h"EMM386"</a> - <a href="rb-5523.htm" tppabs="http://www.ctyme.com/intr/rb-5523.htm">INT 2F/AX=D201h/BX=5145h</a>
<p><b>See Also:</b>
<a href="rb-7414.htm" tppabs="http://www.ctyme.com/intr/rb-7414.htm">INT 67/AH=3Fh</a>
<PRE>
<p>
Format of EMM import structure record:
<a name=table1514></a>
Offset Size Description (Table 01514)
00h DWORD physical address of EMM import structure <a href="rb-2848.htm#Table1515" tppabs="http://www.ctyme.com/intr/rb-2848.htm#Table1515">(see #01515)</a>
04h BYTE EMM import structure major version
05h BYTE EMM import structure minor version
</PRE>
<p><b>Note:</b>
Vession 1.00 contains only EMS information (Windows 3.0+).
Version 1.10 contains UMB/XMS/HMA/EMS information (Windows 3.1).
Version 1.11 is version 1.10 plus memory manager maker/product name
<p><b>See Also:</b>
#03643
<PRE>
<p>
Format of Global EMM Import record:
<a name=table1515></a>
Offset Size Description (Table 01515)
00h BYTE bit flags
<p><b>bit 2:</b><br>???
<p><b>bit 3:</b><br>Free EMM386 virtual HMA only if hma_page_table_paddr!=0
<p><b>bit 4:</b><br>No UMB???
01h BYTE reserved (0)
02h WORD size of structure in bytes
04h WORD structure version
06h DWORD reserved
0Ah 384 BYTEs 64 EMS frame status records <a href="rb-2848.htm#Table1516" tppabs="http://www.ctyme.com/intr/rb-2848.htm#Table1516">(see #01516)</a>, one per 16K of
real-mode 1M address space
18Ah BYTE ??? (must be at least 3*number_of_EMS_frames+4)
18Bh BYTE number of UMB frame descriptors following
18Ch 4N DWORDs UMB frame descriptors
each is 4 DWORDs giving physical page numbers for the four
4K pages of a 16K EMS frame (00000000h if non-UMB page)
var BYTE number of EMS handle info records following
16N BYTEs EMS handle info records <a href="rb-2848.htm#Table1518" tppabs="http://www.ctyme.com/intr/rb-2848.htm#Table1518">(see #01518)</a>
---version 1.10+ ---.
DWORD realmode INT 67 vector (used by Windows to set breakpoints).
DWORD physical address of HMA page table values.
BYTE number of free page entries following
2N DWORDs free page entries
each is:
DWORD physical page number
DWORD number of consecutive physical pages.
BYTE number of XMS handle info records following
00h if memory manager does not emulate XMS or has real mode
XMS code which can execute in the Windows environment
12N BYTEs XMS handle info records <a href="rb-2848.htm#Table1519" tppabs="http://www.ctyme.com/intr/rb-2848.htm#Table1519">(see #01519)</a>.
BYTE number of free UMB info records following
2N WORDs free UMB info records
each is:
WORD real mode start segment
WORD size in paragraphs
---version 1.11---
20 BYTEs blank-padded maker name
20 BYTEs blank-padded product name
<p>
Format of EMS frame status record:
<a name=table1516></a>
Offset Size Description (Table 01516)
00h BYTE frame type <a href="rb-2848.htm#Table1517" tppabs="http://www.ctyme.com/intr/rb-2848.htm#Table1517">(see #01517)</a>
01h BYTE owner handle (00h/FFh = none) from frame including UMB
index to UMB frame descriptors
02h WORD logical page for frame, 7FFFh if none, FFFFh if non-EMS frame
04h BYTE EMS physical page number (FFh for non-EMS = don't care???)
05h BYTE flags for non-EMS frames (00h for EMS frame)
bits 0,1 for first 4K, bits 2,3 for second 4K, etc:
<p><b>10:</b><br>Direct mapping (linear address = physical address)
<p><b>01:</b><br>UMB mapping
<p>
Bitfields for EMS frame type:
<a name=table1517></a>
Bit(s) Description (Table 01517)
0 EMS frame
1 (if EMS frame) in standard 64K page frame
2 first 4K of frame is UMB
3 second 4K of frame is UMB
4 third 4K of frame is UMB
5 last 4K of frame is UMB
<p>
Format of EMS handle info record:
<a name=table1518></a>
Offset Size Description (Table 01518)
00h BYTE handle number (00h = system handle)
01h BYTE flags
<p><b>bit 0:</b><br>Normal handle rather than system handle
<p><b>bit 2:</b><br>??? (set by some EMS managers)
02h 8 BYTEs EMS handle's name
0Ah WORD number of 16K pages for handle
0Ch DWORD physical address of page table entries forming page map
</PRE>
<p><b>Note:</b>
All values should be zero for the system handle if no large frame
support is present
<PRE>
<p>
Format of XMS handle info record:
<a name=table1519></a>
Offset Size Description (Table 01519)
00h WORD handle
02h WORD flags
<p><b>bit 0:</b><br>Handle usable by Windows
(already in use when Windows started if clear)
<p><b>bit 1:</b><br>Reserved (0)
04h DWORD size in KB (may be zero, used only if flags bit 0 set)
08h DWORD physical address (only if flags bit 0 set)
</PRE>
<p>
<b>Category: <a href="cat-024.htm" tppabs="http://www.ctyme.com/intr/cat-024.htm">
Memory Management</a>
- <a href="int-21.htm" tppabs="http://www.ctyme.com/intr/int-21.htm">
Int 21h</a>
- <a href="alpha-m.htm" tppabs="http://www.ctyme.com/intr/alpha-m.htm">
M</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-2847.htm" tppabs="http://www.ctyme.com/intr/rb-2847.htm">
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
<a href="rb-2849.htm" tppabs="http://www.ctyme.com/intr/rb-2849.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>