From: muller AT cerbere DOT u-strasbg DOT fr Message-Id: <3.0.6.32.19991212231044.00928100@ics.u-strasbg.fr> X-Sender: muller AT ics DOT u-strasbg DOT fr X-Mailer: QUALCOMM Windows Eudora Light Version 3.0.6 (32) Date: Sun, 12 Dec 1999 23:10:44 +0100 To: Eli Zaretskii , Peter Johnson , Pierre Muller Subject: Re: NT4 DPMI BUG (303h, Allocate Real-Mode Callback) Cc: djgpp AT delorie DOT com In-Reply-To: References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Reply-To: djgpp AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk At 14:03 12/12/99 +0200, Eli Zaretskii wrote: > >On Sat, 11 Dec 1999, Peter Johnson wrote: > >> > Having several different register structs has no point as >> > the values of the registers are only garantued inside the call ! >> > (See Ralph Brown Interrupt List !) >> >> Unfortunately we cannot use this workaround without changing how the >> interface works (unless we just ignore the passed registers structure, >> which would be bad form, perhaps.. comments, Eli?). > >To tell the truth, I don't really understand Pierre's comment, so I >cannot comment myself. > >Pierre, could you please clarify what did you refer to as ``having >several different register structs''? 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 ! This was simply to say that my solution was easier because it had less overhead, but its less general also ! I hope I was a little more clear, even if I am not really sure about it!