Mail Archives: djgpp/2000/12/01/18:21:42
From: | Mark <mark1smi AT almaden DOT ibm DOT com>
|
Newsgroups: | comp.os.msdos.djgpp
|
Subject: | vxd file system drivers and DPMI
|
Date: | Fri, 01 Dec 2000 13:43:35 -0800
|
Organization: | IBM Almaden Research Center
|
Lines: | 27
|
Message-ID: | <3A281B86.19CFEB8A@almaden.ibm.com>
|
NNTP-Posting-Host: | socks1.almaden.ibm.com
|
Mime-Version: | 1.0
|
X-Mailer: | Mozilla 4.73 [en] (WinNT; U)
|
X-Accept-Language: | en
|
To: | djgpp AT delorie DOT com
|
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
Reply-To: | djgpp AT delorie DOT com
|
Hello,
Even if you don't understand this first paragraph, you still may be able
to help.
I have been writing a distributed file system driver for windows 9x.
During the course of this process, it became clear that I would need to
do a gethostbyname while holding the Win16Mutex. Unfortunately,
gethostbyname is not available in the kernel. The standard way of doing
a gethostbyname from kernel code is to synchronize with a win32 dll
which will do the gethostbyname for you and repond. However, this
assumes that you don't hold the Win16Mutex since the win32 dll may
require it during the gethostbyname and cause the machine to deadlock.
All was dreary and bleak until I found the CODA filesystem from CMU
which had the exact same problem and solved it by synchronizing with a
"DOS Box" DPMI program compiled with DJGPP. This works because these
"DOS Box" programs never require the Win16Mutex.
So, I am trying to write such a program with DPMI which will basically
just do gethostbyname for my kernel vxd. However, I have 2 questions.
First, how do I call into my DOS Box program from the kernel? And
second, if this is an asynchronous call, how do I call into my kernel
vxd from my DOS Box program?
Perhaps somebody has an example program which communicates with a vxd? I
hope this newsgroup can help, I feel you are my last hope.
Thanks,
Mark
- Raw text -