Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Message-ID: <001501c0e3d8$9a4e07a0$7f291518@CX535256E> From: "Barubary" To: Subject: Device driver incompatible with Cygwin Date: Wed, 23 May 2001 15:35:00 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4522.1200 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 My strange problems involving fork() and Win2000 have been found. It is actually caused by the presence of a device driver I wrote called totalio. Totalio is a driver which grants direct access to x86 I/O ports to user mode programs. It is different from other such drivers in that it only grants access to *specific* I/O ports (PSX comm link / dreamcast serial card). Thus, it does not compromise system security, for access to these ports is harmless. How it does this is by setting a "create process" hook in kernel mode which sets the new process's I/O access bitmap. I believe that the problem is in the undocumented NTOSKRNL function Ke386IoSetAccessProcess. I think a memory leak is occurring. Cygwin isn't doing anything that would cause this specifically - it just creates processes far more often than normal Windows programs would. Running make on GCC creates thousands of processes, which could easily exhaust the non-paged pool if there is a memory leak in Ke386IoSetAccessProcess where the memory isn't freed when a process terminates. I think this is a bug in Win2000, but since the function is undocumented, I doubt Microsoft would do anything to fix it. Any ideas? -- Barubary -- Want to unsubscribe from this list? Check out: http://cygwin.com/ml/#unsubscribe-simple