| delorie.com/archives/browse.cgi | search | 
| DMARC-Filter: | OpenDMARC Filter v1.4.2 delorie.com 517ACxD72752092 | 
| Authentication-Results: | delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com | 
| Authentication-Results: | delorie.com; spf=pass smtp.mailfrom=cygwin.com | 
| DKIM-Filter: | OpenDKIM Filter v2.11.0 delorie.com 517ACxD72752092 | 
| Authentication-Results: | delorie.com; | 
| dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=yzenScWC | |
| X-Recipient: | archive-cygwin AT delorie DOT com | 
| DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org CCB2E385843F | 
| DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; | 
| s=default; t=1738923176; | |
| bh=SzJ2JZSu2rsVjz67jt2z/L01+fnb9g+y3xiZ4zDnmbE=; | |
| h=Date:To:Subject:References:In-Reply-To:List-Id:List-Unsubscribe: | |
| List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: | |
| From; | |
| b=yzenScWCjXeg7uTJcSM0aWENAIrEsRqzmJLf5Zf2Wio1mRTjM4c7XtJsqu6fn4yXa | |
| q+ADmsNJVbBD8Tw51vXQjhWah/zmYOLBFqHHXfWSDON5eA1YLi8HJWRaBj0FuCBnIU | |
| rwzsmdhKAqiXPlhLZVgMTCw84E0R6UVQ6HVNjb3I= | |
| X-Original-To: | cygwin AT cygwin DOT com | 
| Delivered-To: | cygwin AT cygwin DOT com | 
| DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org B03263858CD1 | 
| Date: | Fri, 7 Feb 2025 11:11:55 +0100 | 
| To: | cygwin AT cygwin DOT com | 
| Subject: | Re: exposing Windows mountpoints in Cygwin | 
| Message-ID: | <Z6Xca2fSsB1rcq7n@calimero.vinschen.de> | 
| Mail-Followup-To: | cygwin AT cygwin DOT com | 
| References: | <09960367-4427-2929-9b12-17cc2a15f5c3 AT jdrake DOT com> | 
| MIME-Version: | 1.0 | 
| In-Reply-To: | <09960367-4427-2929-9b12-17cc2a15f5c3@jdrake.com> | 
| X-BeenThere: | cygwin AT cygwin DOT com | 
| X-Mailman-Version: | 2.1.30 | 
| List-Id: | General Cygwin discussions and problem reports <cygwin.cygwin.com> | 
| List-Unsubscribe: | <https://cygwin.com/mailman/options/cygwin>, | 
| <mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe> | |
| List-Archive: | <https://cygwin.com/pipermail/cygwin/> | 
| List-Post: | <mailto:cygwin AT cygwin DOT com> | 
| List-Help: | <mailto:cygwin-request AT cygwin DOT com?subject=help> | 
| List-Subscribe: | <https://cygwin.com/mailman/listinfo/cygwin>, | 
| <mailto:cygwin-request AT cygwin DOT com?subject=subscribe> | |
| From: | Corinna Vinschen via Cygwin <cygwin AT cygwin DOT com> | 
| Reply-To: | cygwin AT cygwin DOT com | 
| Cc: | Corinna Vinschen <corinna-cygwin AT cygwin DOT com> | 
| Errors-To: | cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com | 
| Sender: | "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com> | 
On Feb  6 13:31, Jeremy Drake via Cygwin wrote:
> Now that my patch to escape characters in /proc/mounts has been applied,
> I'll get back to what I was thinking about back in June.  I would like to
> have a way to list Windows volume roots in Cygwin, and it seems to make
> sense to me to expose them via getmntent, /proc/mounts, etc.  The way I
> see this working is probably to replace the available_drives mechanism for
> enumerating mounts in favor of using FindFirst/NextVolumeW and
> GetVolumePathNamesForVolumeNameW to enumerate cygdrive mount points.
Been there, done that, but that was more than 10 years ago, so things
might have changed.  At the time, the volume manager was incredibly
slow.  Enumerating and converting volume paths from one style into the
other just took too much time.  And, as you know, Cygwin already is
slow...
Still, if you want to do that, it should not be part of the standard
mount points becasue this is another level of implementation.  These are
the POSIX mount points handled by Cygwin.  That should be part of the
cygdrive handling.  Sounds like you were mulling over this anyway.
But it's not quite clear what the expected output should be.  On this
userspace level, we have no use for Volume paths ("\\?\Volume{UUID}"),
and we have no use for the devices ("\\?\HarddiskVolume1").
And, you can already visit this info without even having to use
the volume manager, by just looking up the NT namespace, as the
/proc/sys emulation does, for instance:
  $ ls -gG /proc/sys/GLOBAL\?\?/ | grep 'Volume{'
  lr--r--r-- 1 0 Feb  7 11:11 Volume{0bd61b5f-949e-4c06-9ebe-13aa68abb838} -> /proc/sys/Device/HarddiskVolume4
  lr--r--r-- 1 0 Feb  7 11:11 Volume{437ef40c-9169-4b0c-94ee-d894aae17c56} -> /proc/sys/Device/HarddiskVolume1
  lr--r--r-- 1 0 Feb  7 11:11 Volume{a326a87c-0f80-4d14-a91a-a95e822c1a60} -> /proc/sys/Device/HarddiskVolume3
  lr--r--r-- 1 0 Feb  7 11:11 Volume{adccf9db-e210-11ef-81ad-806e6f6e6963} -> /proc/sys/Device/CdRom0
So what is the expected output in the cygdrive dir?
What I could imagine is something like this.  Assuming two drives, one
of them mounted into a dir:
  C:		\Device\HarddiskVolume1
  C:\foo	\Device\HarddiskVolume2
  
  $ ls -gG /cygdrive
  d---r-x---+ 1  0 Feb  7 03:38 c
  drwxrwxr-x  1  0 Jan  8 11:02 c_foo -> /mnt/c/foo
but other than that...
Corinna
-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple
| webmaster | delorie software privacy | 
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |