From: Mark 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 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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