Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <41FD7A5F.2040407@x-ray.at> Date: Mon, 31 Jan 2005 01:22:55 +0100 From: Reini Urban User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:1.7) Gecko/20040616 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: Why does cygwin1.dll use NtCreateFile() instead of CreateFile() References: <20050130233747 DOT 5199 DOT qmail AT web80101 DOT mail DOT yahoo DOT com> In-Reply-To: <20050130233747.5199.qmail@web80101.mail.yahoo.com> Content-Type: multipart/mixed; boundary="------------030007000501030602010703" X-IsSubscribed: yes --------------030007000501030602010703 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Dan Ch schrieb: > Thank you for providing some information. But I do not understand > what types of objects require read permission in order to successfully > open with SYNCHRONIZE access. On Windows XP Professional SP2, using > CreateFile(...,GENERIC_WRITE | SYNCHRONIZE, ...) to open an ordinary > file on a local drive that has write-only permissions does not seem > to be a problem. I am primarily interested in the "buggy behavior" > that a user would experience if CreateFile() was used instead > of NtCreateFile(). Special filenames in subdirs like con,prn,aux,nul,lpt1 et al do not work with CreateFile(), but do work as plain files with NtCreateFile(). See attached test. -- Reini Urban http://xarch.tu-graz.ac.at/home/rurban/ --------------030007000501030602010703 Content-Type: application/x-CleverContent20; name="testcreate.cc" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="testcreate.cc" Ly8gYysrIC1JLi4vc3JjL3dpbnN1cC9jeWd3aW4gLW8gdGVzdGNyZWF0ZSB0 ZXN0Y3JlYXRlLmNjIC1sbnRkbGwgCiNpbmNsdWRlICJ3aW5zdXAuaCIKI2lu Y2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxudGRlZi5oPgojaW5jbHVkZSAi bnRkbGwuaCIKCi8vI2RlZmluZSBOVENSRUFURQojdW5kZWYgTlRDUkVBVEUK Ck5UU1RBVFVTIAogIE50Q3JlYXRlRGlyZWN0b3J5T2JqZWN0KAogICAgT1VU IFBIQU5ETEUgIERpcmVjdG9yeUhhbmRsZSwKICAgIElOIEFDQ0VTU19NQVNL ICBEZXNpcmVkQWNjZXNzLAogICAgSU4gUE9CSkVDVF9BVFRSSUJVVEVTICBP YmplY3RBdHRyaWJ1dGVzCiAgICApOwoKI2lmbmRlZiBOVENSRUFURQpzdGF0 aWMgSEFORExFCmNyZWF0ZSAoY2hhciAqcGF0aCkKewogIEhBTkRMRSBoRmls ZTsgCiAgY2hhciBwd2RbQ1lHX01BWF9QQVRIXSwgZGV2W0NZR19NQVhfUEFU SF07CiAgaW50IGxlbjsKCiAgLy9jcmVhdGUgKCJcXFxcLlxcYzpcXGNvbiIp OwogIGlmIChsZW4gPSBHZXRDdXJyZW50RGlyZWN0b3J5QSAoQ1lHX01BWF9Q QVRILCBwd2QpKSB7CiAgICBzdHJjcHkoZGV2LCAiXFxcXC5cXCIpOwogICAg c3RyY2F0KGRldiwgcHdkKTsKICAgIHN0cmNhdChkZXYsICJcXCIpOwogICAg c3RyY2F0KGRldiwgcGF0aCk7CiAgfQogIGhGaWxlID0gQ3JlYXRlRmlsZShk ZXYsICAgICAvLyBmaWxlIHRvIGNyZWF0ZQoJCSAgICAgR0VORVJJQ19XUklU RSwgICAgICAgICAgLy8gb3BlbiBmb3Igd3JpdGluZwoJCSAgICAgMCwgICAg ICAgICAgICAgICAgICAgICAgLy8gZG8gbm90IHNoYXJlCgkJICAgICBOVUxM LCAgICAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IHNlY3VyaXR5CgkJICAg ICBDUkVBVEVfQUxXQVlTLCAgICAgICAgICAvLyBvdmVyd3JpdGUgZXhpc3Rp bmcKCQkgICAgIEZJTEVfQVRUUklCVVRFX05PUk1BTCB8IC8vIG5vcm1hbCBm aWxlCgkJICAgICBGSUxFX0ZMQUdfT1ZFUkxBUFBFRCwgICAvLyBhc3luY2hy b25vdXMgSS9PCgkJICAgICBOVUxMKTsgICAgICAgICAgICAgICAgICAvLyBu byBhdHRyLiB0ZW1wbGF0ZQogIGlmIChoRmlsZSA9PSBJTlZBTElEX0hBTkRM RV9WQUxVRSkgcmV0dXJuIDA7CiAgcHJpbnRmKCIlcyBjcmVhdGVkXG4iLCBw YXRoKTsKICBDbG9zZUhhbmRsZShoRmlsZSk7CiAgcmV0dXJuIGhGaWxlOwp9 CgojZWxzZQpzdGF0aWMgSEFORExFCm50X2NyZWF0ZSAoV0NIQVIgKndwYXRo KQp7CiAgV0NIQVIgcHdkWzIqQ1lHX01BWF9QQVRIXTsKICBVTklDT0RFX1NU UklORyB1cGF0aCA9IHswLCBzaXplb2YgKHdwYXRoKSwgd3BhdGh9OwogIC8v VU5JQ09ERV9TVFJJTkcgY3BhdGggPSB7MCwgMiwgTCIuIn07CgogIGludCBs ZW47CiAgSEFORExFIHgsIHJvb3QgPSBOVUxMOwogIE9CSkVDVF9BVFRSSUJV VEVTIGF0dHI7CiAgSU9fU1RBVFVTX0JMT0NLIGlvOwogIE5UU1RBVFVTIHN0 YXR1czsKICAKICBpZiAobGVuID0gR2V0Q3VycmVudERpcmVjdG9yeVcgKDIq Q1lHX01BWF9QQVRILCBwd2QpKSB7CiAgICBVTklDT0RFX1NUUklORyB1cHdk ID0gezAsIHNpemVvZiAocHdkKSwgcHdkfTsKICAgIEluaXRpYWxpemVPYmpl Y3RBdHRyaWJ1dGVzICgmYXR0ciwgJnVwd2QsIE9CSl9DQVNFX0lOU0VOU0lU SVZFLCBOVUxMLCBOVUxMKTsKICAgIE50T3BlbkZpbGUoJnJvb3QsIFNUQU5E QVJEX1JJR0hUU19BTEwsICZhdHRyLCAmaW8sIDAsIDApOwogIH0KICBJbml0 aWFsaXplT2JqZWN0QXR0cmlidXRlcyAoJmF0dHIsICZ1cGF0aCwgT0JKX0NB U0VfSU5TRU5TSVRJVkUsIHJvb3QsIE5VTEwpOwogIC8vIGh0dHA6Ly9tc2Ru Lm1pY3Jvc29mdC5jb20vbGlicmFyeS9kZWZhdWx0LmFzcD91cmw9L2xpYnJh cnkvZW4tdXMvZGV2bm90ZXMvd2lucHJvZy9udGNyZWF0ZWZpbGUuYXNwCiAg c3RhdHVzID0gTnRDcmVhdGVGaWxlICgmeCwgU1RBTkRBUkRfUklHSFRTX0FM TCwgJmF0dHIsICZpbywgTlVMTCwgRklMRV9BVFRSSUJVVEVfTk9STUFMLCAK ICAgICAgICAgICAgICAgICAgICAgICAgIEZJTEVfU0hBUkVfUkVBRCwgRklM RV9PUEVOLCBGSUxFX0RFTEVURV9PTl9DTE9TRSwgTlVMTCwgMCk7CiAgaWYg KCFOVF9TVUNDRVNTIChzdGF0dXMpKQogICAgewogICAgICBwcmludGYoImVy cm9yIGNyZWF0aW5nICVsc1xuIiwgd3BhdGgpOwogICAgICByZXR1cm4gMDsK ICAgIH0KICBlbHNlIHsKICAgIENsb3NlSGFuZGxlKHgpOwogICAgcmV0dXJu IHg7CiAgfQp9CiNlbmRpZgoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBh cmd2KQp7CiNpZm5kZWYgTlRDUkVBVEUKICBjcmVhdGUgKCJjb24iKTsKICBj cmVhdGUgKCJjb20iKTsKICBjcmVhdGUgKCJudWwiKTsKICBjcmVhdGUgKCJh dXgiKTsKICBjcmVhdGUgKCJwcm4iKTsKICBjcmVhdGUgKCJscHQxIik7CiAg Y3JlYXRlICgiLi4uIik7CiNlbHNlCiAgbnRfY3JlYXRlIChMImNvbiIpOwog IG50X2NyZWF0ZSAoTCJudWwiKTsKICBudF9jcmVhdGUgKEwiYXV4Iik7CiAg bnRfY3JlYXRlIChMInBybiIpOwogIG50X2NyZWF0ZSAoTCJscHQxIik7CiAg bnRfY3JlYXRlIChMIi4uLnR4dCIpOwojZW5kaWYKICByZXR1cm4oMCk7Cn0K --------------030007000501030602010703 Content-Type: text/plain; charset=us-ascii -- 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/ --------------030007000501030602010703--