On 25.01.2017 04:57, Jonathan Doron wrote:
((PLARGE_INTEGER)&info->VolumeSerialNumber)->LowPart = (ULONG)volstats.f_fsid.__val[0];
((PLARGE_INTEGER)&info->VolumeSerialNumber)->HighPart = (ULONG)volstats.f_fsid.__val[1];
Accessing members of f_fsid is not cross-platform compatible - you will either have to find a better way to get this information, or at least add corresponding checks to configure.ac. For more information see: https://linux.die.net/man/2/fstatfs
"""Nobody knows what f_fsid is supposed to contain (but see below)."""
"""Solaris, Irix and POSIX have a system call statvfs(2) that returns a struct statvfs (defined in <sys/statvfs.h>) containing an unsigned long f_fsid. Linux, SunOS, HP-UX, 4.4BSD have a system call statfs() that returns a struct statfs (defined in <sys/vfs.h>) containing a fsid_t f_fsid, where fsid_t is defined as struct { int val[2]; }."""