delorie.com/archives/browse.cgi | search |
Date: | Mon, 13 Dec 1999 10:37:49 +0200 (IST) |
From: | Eli Zaretskii <eliz AT is DOT elta DOT co DOT il> |
X-Sender: | eliz AT is |
To: | Pierre Muller <muller AT cerbere DOT u-strasbg DOT fr> |
cc: | Peter Johnson <locke AT mcs DOT net>, djgpp AT delorie DOT com |
Subject: | Re: NT4 DPMI BUG (303h, Allocate Real-Mode Callback) |
In-Reply-To: | <3.0.6.32.19991212231044.00928100@ics.u-strasbg.fr> |
Message-ID: | <Pine.SUN.3.91.991213103708.29470O-100000@is> |
MIME-Version: | 1.0 |
Reply-To: | djgpp AT delorie DOT com |
X-Mailing-List: | djgpp AT delorie DOT com |
X-Unsubscribes-To: | listserv AT delorie DOT com |
On Sun, 12 Dec 1999 muller AT cerbere DOT u-strasbg DOT fr wrote: > I mean that I only reserved room for one such structure inside > the loader file (equivalent of crt0.S) > so all calls to 0x303 DPMI function must use the same > register struct ! > (But Ralph Brown interrupt list anyhow states > that the content of this struct should only be > examined inside the protected mode code itself !) > > So if you specify another struct defined elsewhere > it will probably have an address > 0x10000 and thus WinNT > will write data at a wrong address ( true addr & 0xffff !!) > => crash ! Sorry, I'm still confused. AFAIK, Peter's solution doesn't call for another struct, it just passes to NT a different selector and offset for the same linear address of the same struct. The segment whose selector is passed is arranged in such a way that the offset has its high 16 bits cleared.
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |