$NetBSD: patch-ak,v 1.5 2006/02/26 07:48:11 wiz Exp $ --- dlls/ntdll/file.c.orig 2006-02-15 17:02:43.000000000 +0100 +++ dlls/ntdll/file.c @@ -1592,6 +1592,35 @@ NTSTATUS FILE_GetDeviceInfo( int fd, FIL info->DeviceType = FILE_DEVICE_DISK_FILE_SYSTEM; break; } +#elif defined(__NetBSD__) + struct statvfs stfs; + + if (fstatvfs( fd, &stfs) < 0) + info->DeviceType = FILE_DEVICE_DISK_FILE_SYSTEM; + else if (!strncmp("cd9660", stfs.f_fstypename, + sizeof(stfs.f_fstypename))) + { + info->DeviceType = FILE_DEVICE_CD_ROM_FILE_SYSTEM; + info->Characteristics |= FILE_REMOVABLE_MEDIA; + } + else if (!strncmp("nfs", stfs.f_fstypename, + sizeof(stfs.f_fstypename))) + { + info->DeviceType = FILE_DEVICE_NETWORK_FILE_SYSTEM; + info->Characteristics |= FILE_REMOTE_DEVICE; + } + else if (!strncmp("procfs", stfs.f_fstypename, + sizeof(stfs.f_fstypename))) + info->DeviceType = FILE_DEVICE_VIRTUAL_DISK; + else + info->DeviceType = FILE_DEVICE_DISK_FILE_SYSTEM; + if (stfs.f_flag & MNT_RDONLY) + info->Characteristics |= FILE_READ_ONLY_DEVICE; + if (!(stfs.f_flag & MNT_LOCAL)) + { + info->DeviceType = FILE_DEVICE_NETWORK_FILE_SYSTEM; + info->Characteristics |= FILE_REMOTE_DEVICE; + } #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) struct statfs stfs;