$NetBSD: patch-ak,v 1.14 2007/06/16 07:42:37 adam Exp $

--- dlls/ntdll/file.c.orig	2007-06-15 16:51:04.000000000 +0200
+++ dlls/ntdll/file.c
@@ -1855,6 +1855,35 @@ static NTSTATUS get_device_info( int fd,
             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__) || defined(__APPLE__)
         struct statfs stfs;
 
