www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/12/13/08:26:45

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.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019