[PATCH] Cygwin: Add /dev/disk/by-id symlinks

Corinna Vinschen corinna-cygwin@cygwin.com
Fri Nov 3 11:11:39 GMT 2023


On Nov  3 12:06, Christian Franke wrote:
> Corinna Vinschen wrote:
> > > I ran this on Windows 11 and Windows 2K19 in a QEMU/KVM VM.  A
> > > \Device\Harddisk0\Partition0 symlink pointing to \Device\Harddisk0\DR0
> > > exists in both cases.  I straced it, and found the following debug
> > > output:
> > > 
> > >    1015 1155432 [main] ls 361 stordesc_to_id_name: Harddisk0\Partition0: 'Red_Hat' 'VirtIO' '' (ignored)
> > > 
> > > Is that really desired?
> 
> Yes - if IOCTL_STORAGE_QUERY_PROPERTY{... PropertyStandardQuery} does not
> return a serial number (''), the device is intentionally ignored.

See my other mail I just sent.

> > Thread 1 "ls" hit Breakpoint 2, stordesc_to_id_name (upath=0x7ffffc500,
> >      ioctl_buf=0x10e0720 "(", name=...)
> >      at /home/corinna/src/cygwin/vanilla/winsup/cygwin/fhandler/dev_disk.cc:44
> > 44        const STORAGE_DEVICE_DESCRIPTOR *desc =
> > (gdb) n
> > 47        int vendor_len = 0, product_len = 0, serial_len = 0;
> > (gdb)
> > 48        if (desc->VendorIdOffset)
> > (gdb)
> > 49          vendor_len = sanitize_id_string (ioctl_buf + desc->VendorIdOffset);
> > (gdb)
> > 50        if (desc->ProductIdOffset)
> > (gdb)
> > 51          product_len = sanitize_id_string (ioctl_buf + desc->ProductIdOffset);
> > (gdb)
> > 52        if (desc->SerialNumberOffset)
> > (gdb)
> > 53          serial_len = sanitize_id_string (ioctl_buf + desc->SerialNumberOffset);
> 
> If possibly, please check whether (desc->SerialNumberOffset) is 0 or
> (ioctl_buf + desc->SerialNumberOffset) points to '\0' or a string of spaces.
> If no, there is possibly something wrong in sanitize_id_string().

desc->SerialNumberOffset is > 0, serial_len is 0, it points to an empty
string.


Corinna


More information about the Cygwin-patches mailing list