delorie.com/archives/browse.cgi | search |
Mailing-List: | contact cygwin-developers-help AT cygwin DOT com; run by ezmlm |
List-Subscribe: | <mailto:cygwin-developers-subscribe AT cygwin DOT com> |
List-Archive: | <http://sources.redhat.com/ml/cygwin-developers/> |
List-Post: | <mailto:cygwin-developers AT cygwin DOT com> |
List-Help: | <mailto:cygwin-developers-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs> |
Sender: | cygwin-developers-owner AT cygwin DOT com |
Delivered-To: | mailing list cygwin-developers AT cygwin DOT com |
From: | "Gerald S. Williams" <gsw AT agere DOT com> |
To: | <cygwin-developers AT cygwin DOT com> |
Subject: | Re: True case-sensitive filenames |
Date: | Thu, 23 Jan 2003 09:49:44 -0500 |
Message-ID: | <GBEGLOMMCLDACBPKDIHFIECODBAA.gsw@agere.com> |
MIME-Version: | 1.0 |
X-Priority: | 3 (Normal) |
X-MSMail-Priority: | Normal |
In-Reply-To: | <Pine.LNX.4.44.0301231029320.11027-100000@moria.atlanticsky.com> |
X-MimeOLE: | Produced By Microsoft MimeOLE V6.00.2800.1106 |
Importance: | Normal |
Pavel Tsekov wrote: > There is. Use a debugger+disassembler and you are free to find out what > it does. You may also want to try to visit ReactOS' homepage. I tried that, but encountered something like JMP *406100 that couldn't be followed (the memory page couldn't be read). I was using GDB--maybe I should switch to WINDBG. Your second suggestion was quite helpful, though. As I had suspected, there is a FileRename operation in the Native API, which Microsoft has taken steps to hide (they only show the operation that allows you to change the short name). This is probably the answer (although currently ZwSetInformationFile/ NtSetInformationFile and FileRenameInformation aren't in any of the Cygwin w32 libs--I may need to install the DDK to try it). I'm pretty sure this will solve the issue of renaming both files and directories. There is also another issue: setting of the current working directory. I'm not certain, but it may be possible to do this using NtSetInformationProcess to set the following fields of the current process environment block: ProcessParameters->CurrentDirectoryPath ProcessParameters->CurrentDirectoryHandle If the ReactOS implementation matches NT's (and it probably does in this case), RtlSetCurrentDirectory_U normally does this. However, it uses a case-insensitive open to find the directory. -Jerry
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |