- got rid of include/async.h
- fixed some overlapped issues in socket handling
- moved kernel32.CancelIo implementation to ntdll

diff --git a/server/protocol.def b/server/protocol.def
index 0cfd8c5..6873faa 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -1615,20 +1615,26 @@
 #define SERIALINFO_SET_ERROR     0x04
 
 
-/* Create / reschedule an async I/O */
+/* Create an async I/O */
 @REQ(register_async)
-    obj_handle_t handle;  /* handle to comm port, socket or file */
-    int          type;
-    void*        overlapped;
-    int          count;
-    unsigned int status;
+    obj_handle_t handle;        /* handle to comm port, socket or file */
+    int          type;          /* type of queue to look after */
+    void*        io_apc;        /* APC routine to queue upon end of async */
+    void*        io_sb;         /* I/O status block (unique across all async on this handle) */
+    void*        io_user;       /* data to pass back to caller */
+    int          count;         /* count - usually # of bytes to be read/written */
 @END
-#define ASYNC_TYPE_NONE  0x00
 #define ASYNC_TYPE_READ  0x01
 #define ASYNC_TYPE_WRITE 0x02
 #define ASYNC_TYPE_WAIT  0x03
 
 
+/* Cancel all async op on a fd */
+@REQ(cancel_async)
+    obj_handle_t handle;        /* handle to comm port, socket or file */
+@END
+
+
 /* Create a named pipe */
 @REQ(create_named_pipe)
     unsigned int   openmode;