- created server object for handling async i/o
- implemented WaitCommEvent with the EV_RXCHAR flag
- implemented GetOverlappedResult

diff --git a/server/trace.c b/server/trace.c
index 4ac36ea..c5ff2ea 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -1455,6 +1455,27 @@
     fprintf( stderr, " commerror=%08x", req->commerror );
 }
 
+static void dump_create_async_request( const struct create_async_request *req )
+{
+    fprintf( stderr, " file_handle=%d,", req->file_handle );
+    fprintf( stderr, " overlapped=%p,", req->overlapped );
+    fprintf( stderr, " buffer=%p,", req->buffer );
+    fprintf( stderr, " count=%d,", req->count );
+    fprintf( stderr, " func=%p,", req->func );
+    fprintf( stderr, " type=%d", req->type );
+}
+
+static void dump_create_async_reply( const struct create_async_request *req )
+{
+    fprintf( stderr, " ov_handle=%d", req->ov_handle );
+}
+
+static void dump_async_result_request( const struct async_result_request *req )
+{
+    fprintf( stderr, " ov_handle=%d,", req->ov_handle );
+    fprintf( stderr, " result=%d", req->result );
+}
+
 static const dump_func req_dumpers[REQ_NB_REQUESTS] = {
     (dump_func)dump_new_process_request,
     (dump_func)dump_wait_process_request,
@@ -1564,6 +1585,8 @@
     (dump_func)dump_create_serial_request,
     (dump_func)dump_get_serial_info_request,
     (dump_func)dump_set_serial_info_request,
+    (dump_func)dump_create_async_request,
+    (dump_func)dump_async_result_request,
 };
 
 static const dump_func reply_dumpers[REQ_NB_REQUESTS] = {
@@ -1675,6 +1698,8 @@
     (dump_func)dump_create_serial_reply,
     (dump_func)dump_get_serial_info_reply,
     (dump_func)0,
+    (dump_func)dump_create_async_reply,
+    (dump_func)0,
 };
 
 static const char * const req_names[REQ_NB_REQUESTS] = {
@@ -1786,6 +1811,8 @@
     "create_serial",
     "get_serial_info",
     "set_serial_info",
+    "create_async",
+    "async_result",
 };
 
 /* ### make_requests end ### */