Subject: Re: Why does cygwin1.dll use NtCreateFile() instead of CreateFile()
From: Dan Ch <[email-masked]>
To: Brian Ford <[email-masked]>
Cc: [email-masked]
Date: Mon, 31 Jan 2005 21:59:38 -0800 (PST)

On Mon, 31 Jan 2005, Brian Ford wrote:
> On Sun, 30 Jan 2005, Dan Ch wrote:
> > I noticed that cygwin-1.5.12-1/winsup/cygwin/fhandler.cc
> > uses NtCreateFile() instead of CreateFile() on Windows NT based
> > operating systems (NT, 2000, 2003, XP) for opening files.  Why?  I
> > checked the archives for this mailing list and noted some activity
> > that discuses some side affects caused by using NtCreateFile()
> > instead of CreateFile() such as being able to use file names that are
> > off limits to normal Windows applications.  But I could not find
> > anything that explains the benefits of using NtCreateFile() instead
> > of CreateFile().
>
> IIRC, NtCreateFile is significantly cheaper if you already have a file
> handle, especially on network drives where the name to handle
> translation and open are fairly expensive.  The original reason was
> purely performance (since I believe my company paid for some of this
> optimization).

Thank you for answering my question.  Now I understand why
CreateFile() instead of NtCreateFile() probably did not cause
any major bugs.

Dan Ch.

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/