Avoid segfault with overlapped WriteFile() calls.

diff --git a/files/file.c b/files/file.c
index 07ea93a..2ca5e74 100644
--- a/files/file.c
+++ b/files/file.c
@@ -1740,9 +1740,9 @@
         goto error;
     }
 
-    ovp->async.ops = &fileio_async_ops;
+    ovp->async.ops = ( lpCompletionRoutine ? &fileio_async_ops : &fileio_nocomp_async_ops );
     ovp->async.handle = hFile;
-    ovp->async.fd = FILE_GetUnixHandle( hFile, GENERIC_WRITE );
+    ovp->async.fd = fd;
     ovp->async.type = ASYNC_TYPE_WRITE;
     ovp->async.func = FILE_AsyncWriteService;
     ovp->lpOverlapped = overlapped;