delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/2003/01/23/09:49:50

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019