Added handle_t type to server interface so that we can make handles
pointers later on.
Always use 0 to signal invalid handle in server requests.
diff --git a/files/dos_fs.c b/files/dos_fs.c
index db203f9..2aa9b8b 100644
--- a/files/dos_fs.c
+++ b/files/dos_fs.c
@@ -697,7 +697,7 @@
*/
static HANDLE DOSFS_CreateCommPort(LPCSTR name, DWORD access)
{
- HANDLE ret = INVALID_HANDLE_VALUE;
+ HANDLE ret;
char devname[40];
TRACE("%s %lx\n", name, access);
@@ -718,7 +718,8 @@
req->sharing = FILE_SHARE_READ|FILE_SHARE_WRITE;
memcpy( server_data_ptr(req), devname, len );
SetLastError(0);
- if (!(server_call( REQ_CREATE_SERIAL ))) ret = req->handle;
+ server_call( REQ_CREATE_SERIAL );
+ ret = req->handle;
}
SERVER_END_REQ;
@@ -730,14 +731,14 @@
* DOSFS_OpenDevice
*
* Open a DOS device. This might not map 1:1 into the UNIX device concept.
+ * Returns 0 on failure.
*/
-HFILE DOSFS_OpenDevice( const char *name, DWORD access )
+HANDLE DOSFS_OpenDevice( const char *name, DWORD access )
{
int i;
const char *p;
- HFILE handle;
+ HANDLE handle;
- if (!name) return (HFILE)NULL; /* if FILE_DupUnixHandle was used */
if (name[0] && (name[1] == ':')) name += 2;
if ((p = strrchr( name, '/' ))) name = p + 1;
if ((p = strrchr( name, '\\' ))) name = p + 1;
@@ -752,9 +753,9 @@
if (!strcmp(DOSFS_Devices[i].name,"NUL"))
return FILE_CreateFile( "/dev/null", access,
FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,
- OPEN_EXISTING, 0, -1, TRUE );
+ OPEN_EXISTING, 0, 0, TRUE );
if (!strcmp(DOSFS_Devices[i].name,"CON")) {
- HFILE to_dup;
+ HANDLE to_dup;
switch (access & (GENERIC_READ|GENERIC_WRITE)) {
case GENERIC_READ:
to_dup = GetStdHandle( STD_INPUT_HANDLE );
@@ -764,12 +765,11 @@
break;
default:
FIXME("can't open CON read/write\n");
- return HFILE_ERROR;
- break;
+ return 0;
}
if (!DuplicateHandle( GetCurrentProcess(), to_dup, GetCurrentProcess(),
&handle, 0, FALSE, DUPLICATE_SAME_ACCESS ))
- handle = HFILE_ERROR;
+ handle = 0;
return handle;
}
if (!strcmp(DOSFS_Devices[i].name,"SCSIMGR$") ||
@@ -782,11 +782,11 @@
return handle;
FIXME("device open %s not supported (yet)\n",DOSFS_Devices[i].name);
- return HFILE_ERROR;
+ return 0;
}
}
}
- return HFILE_ERROR;
+ return 0;
}