Get rid of the removable media handling in the server.

diff --git a/dlls/kernel/volume.c b/dlls/kernel/volume.c
index 48cc2f1..2a4eab3 100644
--- a/dlls/kernel/volume.c
+++ b/dlls/kernel/volume.c
@@ -312,8 +312,7 @@
     {
         TRACE("trying %s\n", buffer );
 
-        ret = FILE_CreateFile( buffer, access, sharing, sa, OPEN_EXISTING,
-                               attributes, 0, DRIVE_FIXED );
+        ret = FILE_CreateFile( buffer, access, sharing, sa, OPEN_EXISTING, attributes, 0 );
         if (ret || GetLastError() != ERROR_FILE_NOT_FOUND) break;
         if (!dev) break;
 
diff --git a/dlls/kernel/vxd.c b/dlls/kernel/vxd.c
index 02638a0..fa90196 100644
--- a/dlls/kernel/vxd.c
+++ b/dlls/kernel/vxd.c
@@ -106,7 +106,7 @@
     unix_name[len1] = '/';
     WideCharToMultiByte( CP_UNIXCP, 0, name, -1, unix_name + len1 + 1, len2, NULL, NULL);
     ret = FILE_CreateFile( unix_name, 0, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,
-                           OPEN_ALWAYS, 0, 0, DRIVE_FIXED );
+                           OPEN_ALWAYS, 0, 0 );
     HeapFree( GetProcessHeap(), 0, unix_name );
     return ret;
 }
diff --git a/dlls/winedos/int21.c b/dlls/winedos/int21.c
index eb5d9b3..58967e9 100644
--- a/dlls/winedos/int21.c
+++ b/dlls/winedos/int21.c
@@ -824,7 +824,6 @@
         req->create     = FILE_OPEN_IF;
         req->options    = FILE_SYNCHRONOUS_IO_ALERT;
         req->attrs      = 0;
-        req->removable  = 0;
         wine_server_add_data( req, unix_name, strlen(unix_name) );
         SetLastError(0);
         if (!wine_server_call_err( req )) ret = reply->handle;
diff --git a/files/file.c b/files/file.c
index c41bc9f..6645a45 100644
--- a/files/file.c
+++ b/files/file.c
@@ -183,7 +183,7 @@
  */
 HANDLE FILE_CreateFile( LPCSTR filename, DWORD access, DWORD sharing,
                         LPSECURITY_ATTRIBUTES sa, DWORD creation,
-                        DWORD attributes, HANDLE template, UINT drive_type )
+                        DWORD attributes, HANDLE template )
 {
     unsigned int err;
     UINT disp, options;
@@ -220,7 +220,6 @@
         req->create     = disp;
         req->options    = options;
         req->attrs      = attributes;
-        req->removable  = (drive_type == DRIVE_REMOVABLE || drive_type == DRIVE_CDROM);
         wine_server_add_data( req, filename, strlen(filename) );
         SetLastError(0);
         err = wine_server_call( req );
@@ -365,7 +364,7 @@
             if (device)
             {
                 ret = FILE_CreateFile( device, access, sharing, sa, creation,
-                                       attributes, template, DRIVE_FIXED );
+                                       attributes, template );
             }
             else
             {
@@ -442,8 +441,7 @@
     }
 
     ret = FILE_CreateFile( full_name.long_name, access, sharing,
-                           sa, creation, attributes, template,
-                           GetDriveTypeW( full_name.short_name ) );
+                           sa, creation, attributes, template );
  done:
     if (!ret) ret = INVALID_HANDLE_VALUE;
     TRACE("returning %p\n", ret);
@@ -1439,8 +1437,7 @@
 
         /* check if we are allowed to rename the source */
         hFile = FILE_CreateFile( full_name1.long_name, 0, 0,
-                                 NULL, OPEN_EXISTING, 0, 0,
-                                 GetDriveTypeW( full_name1.short_name ) );
+                                 NULL, OPEN_EXISTING, 0, 0 );
         if (!hFile)
         {
             if (GetLastError() != ERROR_ACCESS_DENIED) return FALSE;
@@ -1452,8 +1449,7 @@
         /* check, if we are allowed to delete the destination,
         **     (but the file not being there is fine) */
         hFile = FILE_CreateFile( full_name2.long_name, GENERIC_READ|GENERIC_WRITE, 0,
-                                 NULL, OPEN_EXISTING, 0, 0,
-                                 GetDriveTypeW( full_name2.short_name ) );
+                                 NULL, OPEN_EXISTING, 0, 0 );
         if(!hFile && GetLastError() != ERROR_FILE_NOT_FOUND) return FALSE;
         CloseHandle(hFile);
 
diff --git a/include/file.h b/include/file.h
index af3bb33..28e621f 100644
--- a/include/file.h
+++ b/include/file.h
@@ -41,7 +41,7 @@
 extern BOOL FILE_Stat( LPCSTR unixName, BY_HANDLE_FILE_INFORMATION *info, BOOL *is_symlink );
 extern HANDLE FILE_CreateFile( LPCSTR filename, DWORD access, DWORD sharing,
                                LPSECURITY_ATTRIBUTES sa, DWORD creation,
-                               DWORD attributes, HANDLE template, UINT drive_type );
+                               DWORD attributes, HANDLE template );
 
 /* files/directory.c */
 extern int DIR_Init(void);
diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h
index 653f7e0..7f87a5e 100644
--- a/include/wine/server_protocol.h
+++ b/include/wine/server_protocol.h
@@ -753,7 +753,6 @@
     int          create;
     unsigned int options;
     unsigned int attrs;
-    int          removable;
     /* VARARG(filename,string); */
 };
 struct create_file_reply
@@ -1487,7 +1486,6 @@
     void*        base;
     obj_handle_t shared_file;
     int          shared_size;
-    int          removable;
 };
 
 
@@ -3693,6 +3691,6 @@
     struct set_global_windows_reply set_global_windows_reply;
 };
 
-#define SERVER_PROTOCOL_VERSION 136
+#define SERVER_PROTOCOL_VERSION 137
 
 #endif /* __WINE_WINE_SERVER_PROTOCOL_H */
diff --git a/misc/registry.c b/misc/registry.c
index 3b6409b..2a837e8 100644
--- a/misc/registry.c
+++ b/misc/registry.c
@@ -1201,7 +1201,7 @@
 {
     HANDLE file;
     if ((file = FILE_CreateFile( fn, GENERIC_READ, 0, NULL, OPEN_EXISTING,
-                                 FILE_ATTRIBUTE_NORMAL, 0, DRIVE_FIXED )))
+                                 FILE_ATTRIBUTE_NORMAL, 0 )))
     {
         SERVER_START_REQ( load_registry )
         {
diff --git a/server/file.c b/server/file.c
index 8f599ec..af421fc 100644
--- a/server/file.c
+++ b/server/file.c
@@ -58,7 +58,6 @@
     struct fd          *fd;         /* file descriptor for this file */
     unsigned int        access;     /* file access (GENERIC_READ/WRITE) */
     unsigned int        options;    /* file options (FILE_DELETE_ON_CLOSE, FILE_SYNCHRONOUS...) */
-    int                 removable;  /* is file on removable media? */
     struct async_queue  read_q;
     struct async_queue  write_q;
 };
@@ -109,7 +108,6 @@
     {
         file->access     = access;
         file->options    = FILE_SYNCHRONOUS_IO_NONALERT;
-        file->removable  = 0;
         if (!(file->fd = create_anonymous_fd( &file_fd_ops, fd, &file->obj )))
         {
             release_object( file );
@@ -122,7 +120,7 @@
 
 static struct object *create_file( const char *nameptr, size_t len, unsigned int access,
                                    unsigned int sharing, int create, unsigned int options,
-                                   unsigned int attrs, int removable )
+                                   unsigned int attrs )
 {
     struct file *file;
     int flags;
@@ -160,7 +158,6 @@
 
     file->access     = access;
     file->options    = options;
-    file->removable  = removable;
     if (is_overlapped( file ))
     {
         init_async_queue (&file->read_q);
@@ -207,12 +204,6 @@
     return is_same_file_fd( file1->fd, file2->fd );
 }
 
-/* check if the file is on removable media */
-int is_file_removable( struct file *file )
-{
-    return file->removable;
-}
-
 /* create a temp file for anonymous mappings */
 struct file *create_temp_file( int access )
 {
@@ -525,7 +516,7 @@
 
     reply->handle = 0;
     if ((file = create_file( get_req_data(), get_req_data_size(), req->access,
-                             req->sharing, req->create, req->options, req->attrs, req->removable )))
+                             req->sharing, req->create, req->options, req->attrs )))
     {
         reply->handle = alloc_handle( current->process, file, req->access, req->inherit );
         release_object( file );
diff --git a/server/file.h b/server/file.h
index 4d4538a..a8e5f3e 100644
--- a/server/file.h
+++ b/server/file.h
@@ -93,7 +93,6 @@
                                   unsigned int access );
 extern int get_file_unix_fd( struct file *file );
 extern int is_same_file( struct file *file1, struct file *file2 );
-extern int is_file_removable( struct file *file );
 extern int grow_file( struct file *file, int size_high, int size_low );
 extern struct file *create_temp_file( int access );
 extern void file_set_error(void);
diff --git a/server/mapping.c b/server/mapping.c
index f84f51c..2cac776 100644
--- a/server/mapping.c
+++ b/server/mapping.c
@@ -396,7 +396,6 @@
         reply->base        = mapping->base;
         reply->shared_file = 0;
         reply->shared_size = mapping->shared_size;
-        reply->removable   = is_file_removable( mapping->file );
         if (mapping->shared_file)
             reply->shared_file = alloc_handle( current->process, mapping->shared_file,
                                                GENERIC_READ|GENERIC_WRITE, 0 );
diff --git a/server/protocol.def b/server/protocol.def
index 5d0f732..cf8edf4 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -577,7 +577,6 @@
     int          create;        /* file create action */
     unsigned int options;       /* file options */
     unsigned int attrs;         /* file attributes for creation */
-    int          removable;     /* is file on removable media? */
     VARARG(filename,string);    /* file name */
 @REPLY
     obj_handle_t handle;        /* handle to the file */
@@ -1095,7 +1094,6 @@
     void*        base;          /* default base addr (for VPROT_IMAGE mapping) */
     obj_handle_t shared_file;   /* shared mapping file handle */
     int          shared_size;   /* shared mapping size */
-    int          removable;     /* is file on removable media? */
 @END
 
 
diff --git a/server/trace.c b/server/trace.c
index b18ae51..3b4af2c 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -837,7 +837,6 @@
     fprintf( stderr, " create=%d,", req->create );
     fprintf( stderr, " options=%08x,", req->options );
     fprintf( stderr, " attrs=%08x,", req->attrs );
-    fprintf( stderr, " removable=%d,", req->removable );
     fprintf( stderr, " filename=" );
     dump_varargs_string( cur_size );
 }
@@ -1336,8 +1335,7 @@
     fprintf( stderr, " header_size=%d,", req->header_size );
     fprintf( stderr, " base=%p,", req->base );
     fprintf( stderr, " shared_file=%p,", req->shared_file );
-    fprintf( stderr, " shared_size=%d,", req->shared_size );
-    fprintf( stderr, " removable=%d", req->removable );
+    fprintf( stderr, " shared_size=%d", req->shared_size );
 }
 
 static void dump_create_snapshot_request( const struct create_snapshot_request *req )