delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2000/01/13/06:45:29

Message-Id: <200001130907.KAA26961@cerbere.u-strasbg.fr>
X-Sender: muller AT ics DOT u-strasbg DOT fr
X-Mailer: QUALCOMM Windows Eudora Pro Version 4.0.2
Date: Thu, 13 Jan 2000 10:02:05 +0100
To: djgpp-workers AT delorie DOT com
From: Pierre Muller <muller AT cerbere DOT u-strasbg DOT fr>
Subject: Re: Building a VxD for win95 for zero page protection
References: <200001111656 DOT RAA04758 AT cerbere DOT u-strasbg DOT fr>
<200001121629 DOT RAA19085 AT cerbere DOT u-strasbg DOT fr>
Mime-Version: 1.0
Reply-To: djgpp-workers AT delorie DOT com

>>     Did anyone ever thought about writing a Win95 VxD that would
>> allow to extend the DPMI specifications ?
>
>Or, rather, implement DPMI 1.0 functionality ;) 

  The problem is of course a time problem !
   
>How would the VxD be loaded? By the DOS program? Or would you place an
>entry in the registry to get it loaded on start-up of Windows '9x?

  I think both should be possible :
  - typically I was first thinking of people that develop DJGPP programs
and want to debug the efficiently without going back to DOS !

>>    Of particular interest would be to add the DPMI functions
>> 0x506 and 0x507
>
>I think you would have to implement function 0x504 to actually allocate
>the pages in the first place. You need the memory block handle to pass to
>0x506 and 0x507.

   But those are args of the functions 0x506 and 0x507
(only 0x507 is used in crt0.S for now !)

>>    because this would allow  to get GFP on zero page access !!
>
>How would you set the GPF handler to be the DJGPP code? This sounds like
>the most complicated part.

  There is a VMM VxD function that allows to insert an exception handler 
and another for the pager Handler !

>>    I looked at the Windows Device Devel Kit on M$ site and it seems
>> possible to get thnigs done...
>> 
>>    But I never programmed device drivers nor used microsoft compilers.
>
>Well, I managed to get a VxD to compile from source using the Win98 DDK
>(freely available) and Visual C++ 6.0 without having used either before. I
>think writing the code is the easy part. Debugging it may be very
>difficult with the tools provided in the DDK. I think you can use serial
>port debugging.

  As I already said, I know nothing about that part :(

>I think writing a VxD like this could be very useful. It might be possible
>to use it to implement shared memory between DOS boxes, which would allow
>a number of problems to be solved, e.g.
>
>1. Arbitrarily long command lines (no transfer buffer limit)
>2. Possible fork() support?
>3. Easy Unix domain sockets (rather than using the mailslots as in
>libsocket) or other interprocess communication
>4. Shared memory

     I agree but your suggestion is much more ambitious that 
mine was, ... which is not wrong at all.

     But this would only become possible if we can find several people
interested 
(that should be easy) but also some people willing to contribute to
the development of that idea (that's probably much more difficult !!)



Pierre Muller
Institut Charles Sadron
6,rue Boussingault
F 67083 STRASBOURG CEDEX (France)
mailto:muller AT ics DOT u-strasbg DOT fr
Phone : (33)-3-88-41-40-07  Fax : (33)-3-88-41-40-99

- Raw text -


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