user32: Fix SPI_SETMOUSESPEED handling, the parameter is not a pointer.
[wine] / server / trace.c
index dd2ef1e..c446f63 100644 (file)
@@ -67,12 +67,15 @@ static void dump_uints( const int *ptr, int len )
 
 static void dump_timeout( const timeout_t *time )
 {
-    fprintf( stderr, get_timeout_str(*time) );
+    fputs( get_timeout_str(*time), stderr );
 }
 
-static void dump_file_pos( const file_pos_t *pos )
+static void dump_uint64( const unsigned __int64 *val )
 {
-    fprintf( stderr, "%x%08x", (unsigned int)(*pos >> 32), (unsigned int)*pos );
+    if ((unsigned int)*val != *val)
+        fprintf( stderr, "%x%08x", (unsigned int)(*val >> 32), (unsigned int)*val );
+    else
+        fprintf( stderr, "%08x", (unsigned int)*val );
 }
 
 static void dump_rectangle( const rectangle_t *rect )
@@ -111,8 +114,13 @@ static void dump_apc_call( const apc_call_t *call )
         fprintf( stderr, "APC_NONE" );
         break;
     case APC_USER:
-        fprintf( stderr, "APC_USER,args={%lx,%lx,%lx}",
-                 call->user.args[0], call->user.args[1], call->user.args[2] );
+        fprintf( stderr, "APC_USER,args={" );
+        dump_uint64( &call->user.args[0] );
+        fputc( ',', stderr );
+        dump_uint64( &call->user.args[1] );
+        fputc( ',', stderr );
+        dump_uint64( &call->user.args[2] );
+        fputc( '}', stderr );
         break;
     case APC_TIMER:
         fprintf( stderr, "APC_TIMER,time=" );
@@ -125,50 +133,56 @@ static void dump_apc_call( const apc_call_t *call )
                  get_status_name(call->async_io.status) );
         break;
     case APC_VIRTUAL_ALLOC:
-        fprintf( stderr, "APC_VIRTUAL_ALLOC,addr=%p,size=%lu,zero_bits=%u,op_type=%x,prot=%x",
-                 call->virtual_alloc.addr, call->virtual_alloc.size,
+        fprintf( stderr, "APC_VIRTUAL_ALLOC,addr=%p,size=", call->virtual_alloc.addr );
+        dump_uint64( &call->virtual_alloc.size );
+        fprintf( stderr, ",zero_bits=%u,op_type=%x,prot=%x",
                  call->virtual_alloc.zero_bits, call->virtual_alloc.op_type,
                  call->virtual_alloc.prot );
         break;
     case APC_VIRTUAL_FREE:
-        fprintf( stderr, "APC_VIRTUAL_FREE,addr=%p,size=%lu,op_type=%x",
-                 call->virtual_free.addr, call->virtual_free.size,
-                 call->virtual_free.op_type );
+        fprintf( stderr, "APC_VIRTUAL_FREE,addr=%p,size=", call->virtual_free.addr );
+        dump_uint64( &call->virtual_free.size );
+        fprintf( stderr, ",op_type=%x", call->virtual_free.op_type );
         break;
     case APC_VIRTUAL_QUERY:
         fprintf( stderr, "APC_VIRTUAL_QUERY,addr=%p", call->virtual_query.addr );
         break;
     case APC_VIRTUAL_PROTECT:
-        fprintf( stderr, "APC_VIRTUAL_PROTECT,addr=%p,size=%lu,prot=%x",
-                 call->virtual_protect.addr, call->virtual_protect.size,
-                 call->virtual_protect.prot );
+        fprintf( stderr, "APC_VIRTUAL_PROTECT,addr=%p,size=", call->virtual_protect.addr );
+        dump_uint64( &call->virtual_protect.size );
+        fprintf( stderr, ",prot=%x", call->virtual_protect.prot );
         break;
     case APC_VIRTUAL_FLUSH:
-        fprintf( stderr, "APC_VIRTUAL_FLUSH,addr=%p,size=%lu",
-                 call->virtual_flush.addr, call->virtual_flush.size );
+        fprintf( stderr, "APC_VIRTUAL_FLUSH,addr=%p,size=", call->virtual_flush.addr );
+        dump_uint64( &call->virtual_flush.size );
         break;
     case APC_VIRTUAL_LOCK:
-        fprintf( stderr, "APC_VIRTUAL_LOCK,addr=%p,size=%lu",
-                 call->virtual_lock.addr, call->virtual_lock.size );
+        fprintf( stderr, "APC_VIRTUAL_LOCK,addr=%p,size=", call->virtual_lock.addr );
+        dump_uint64( &call->virtual_lock.size );
         break;
     case APC_VIRTUAL_UNLOCK:
-        fprintf( stderr, "APC_VIRTUAL_UNLOCK,addr=%p,size=%lu",
-                 call->virtual_unlock.addr, call->virtual_unlock.size );
+        fprintf( stderr, "APC_VIRTUAL_UNLOCK,addr=%p,size=", call->virtual_unlock.addr );
+        dump_uint64( &call->virtual_unlock.size );
         break;
     case APC_MAP_VIEW:
-        fprintf( stderr, "APC_MAP_VIEW,handle=%p,addr=%p,size=%lu,offset=%x%08x,zero_bits=%u,alloc_type=%x,prot=%x",
-                 call->map_view.handle, call->map_view.addr, call->map_view.size,
-                 (unsigned int)(call->map_view.offset >> 32), (unsigned int)call->map_view.offset,
+        fprintf( stderr, "APC_MAP_VIEW,handle=%04x,addr=%p,size=",
+                 call->map_view.handle, call->map_view.addr );
+        dump_uint64( &call->map_view.size );
+        fprintf( stderr, ",offset=" );
+        dump_uint64( &call->map_view.offset );
+        fprintf( stderr, ",zero_bits=%u,alloc_type=%x,prot=%x",
                  call->map_view.zero_bits, call->map_view.alloc_type, call->map_view.prot );
         break;
     case APC_UNMAP_VIEW:
         fprintf( stderr, "APC_UNMAP_VIEW,addr=%p", call->unmap_view.addr );
         break;
     case APC_CREATE_THREAD:
-        fprintf( stderr, "APC_CREATE_THREAD,func=%p,arg=%p,reserve=%lx,commit=%lx,suspend=%u",
-                 call->create_thread.func, call->create_thread.arg,
-                 call->create_thread.reserve, call->create_thread.commit,
-                 call->create_thread.suspend );
+        fprintf( stderr, "APC_CREATE_THREAD,func=%p,arg=%p,reserve=",
+                 call->create_thread.func, call->create_thread.arg );
+        dump_uint64( &call->create_thread.reserve );
+        fprintf( stderr, ",commit=" );
+        dump_uint64( &call->create_thread.commit );
+        fprintf( stderr, ",suspend=%u", call->create_thread.suspend );
         break;
     default:
         fprintf( stderr, "type=%u", call->type );
@@ -189,55 +203,56 @@ static void dump_apc_result( const apc_result_t *result )
                  get_status_name( result->async_io.status ) );
         break;
     case APC_VIRTUAL_ALLOC:
-        fprintf( stderr, "APC_VIRTUAL_ALLOC,status=%s,addr=%p,size=%lu",
-                 get_status_name( result->virtual_alloc.status ),
-                 result->virtual_alloc.addr, result->virtual_alloc.size );
+        fprintf( stderr, "APC_VIRTUAL_ALLOC,status=%s,addr=%p,size=",
+                 get_status_name( result->virtual_alloc.status ), result->virtual_alloc.addr );
+        dump_uint64( &result->virtual_alloc.size );
         break;
     case APC_VIRTUAL_FREE:
-        fprintf( stderr, "APC_VIRTUAL_FREE,status=%s,addr=%p,size=%lu",
-                 get_status_name( result->virtual_free.status ),
-                 result->virtual_free.addr, result->virtual_free.size );
+        fprintf( stderr, "APC_VIRTUAL_FREE,status=%s,addr=%p,size=",
+                 get_status_name( result->virtual_free.status ), result->virtual_free.addr );
+        dump_uint64( &result->virtual_free.size );
         break;
     case APC_VIRTUAL_QUERY:
-        fprintf( stderr, "APC_VIRTUAL_QUERY,status=%s,base=%p,alloc_base=%p,size=%lu,state=%x,prot=%x,alloc_prot=%x,alloc_type=%x",
+        fprintf( stderr, "APC_VIRTUAL_QUERY,status=%s,base=%p,alloc_base=%p,size=",
                  get_status_name( result->virtual_query.status ),
-                 result->virtual_query.base, result->virtual_query.alloc_base,
-                 result->virtual_query.size, result->virtual_query.state,
-                 result->virtual_query.prot, result->virtual_query.alloc_prot,
-                 result->virtual_query.alloc_type );
+                 result->virtual_query.base, result->virtual_query.alloc_base );
+        dump_uint64( &result->virtual_query.size );
+        fprintf( stderr, ",state=%x,prot=%x,alloc_prot=%x,alloc_type=%x",
+                 result->virtual_query.state, result->virtual_query.prot,
+                 result->virtual_query.alloc_prot, result->virtual_query.alloc_type );
         break;
     case APC_VIRTUAL_PROTECT:
-        fprintf( stderr, "APC_VIRTUAL_PROTECT,status=%s,addr=%p,size=%lu,prot=%x",
-                 get_status_name( result->virtual_protect.status ),
-                 result->virtual_protect.addr, result->virtual_protect.size,
-                 result->virtual_protect.prot );
+        fprintf( stderr, "APC_VIRTUAL_PROTECT,status=%s,addr=%p,size=",
+                 get_status_name( result->virtual_protect.status ), result->virtual_protect.addr );
+        dump_uint64( &result->virtual_protect.size );
+        fprintf( stderr, ",prot=%x", result->virtual_protect.prot );
         break;
     case APC_VIRTUAL_FLUSH:
-        fprintf( stderr, "APC_VIRTUAL_FLUSH,status=%s,addr=%p,size=%lu",
-                 get_status_name( result->virtual_flush.status ),
-                 result->virtual_flush.addr, result->virtual_flush.size );
+        fprintf( stderr, "APC_VIRTUAL_FLUSH,status=%s,addr=%p,size=",
+                 get_status_name( result->virtual_flush.status ), result->virtual_flush.addr );
+        dump_uint64( &result->virtual_flush.size );
         break;
     case APC_VIRTUAL_LOCK:
-        fprintf( stderr, "APC_VIRTUAL_LOCK,status=%s,addr=%p,size=%lu",
-                 get_status_name( result->virtual_lock.status ),
-                 result->virtual_lock.addr, result->virtual_lock.size );
+        fprintf( stderr, "APC_VIRTUAL_LOCK,status=%s,addr=%p,size=",
+                 get_status_name( result->virtual_lock.status ), result->virtual_lock.addr );
+        dump_uint64( &result->virtual_lock.size );
         break;
     case APC_VIRTUAL_UNLOCK:
-        fprintf( stderr, "APC_VIRTUAL_UNLOCK,status=%s,addr=%p,size=%lu",
-                 get_status_name( result->virtual_unlock.status ),
-                 result->virtual_unlock.addr, result->virtual_unlock.size );
+        fprintf( stderr, "APC_VIRTUAL_UNLOCK,status=%s,addr=%p,size=",
+                 get_status_name( result->virtual_unlock.status ), result->virtual_unlock.addr );
+        dump_uint64( &result->virtual_unlock.size );
         break;
     case APC_MAP_VIEW:
-        fprintf( stderr, "APC_MAP_VIEW,status=%s,addr=%p,size=%lu",
-                 get_status_name( result->map_view.status ),
-                 result->map_view.addr, result->map_view.size );
+        fprintf( stderr, "APC_MAP_VIEW,status=%s,addr=%p,size=",
+                 get_status_name( result->map_view.status ), result->map_view.addr );
+        dump_uint64( &result->map_view.size );
         break;
     case APC_UNMAP_VIEW:
         fprintf( stderr, "APC_UNMAP_VIEW,status=%s",
                  get_status_name( result->unmap_view.status ) );
         break;
     case APC_CREATE_THREAD:
-        fprintf( stderr, "APC_CREATE_THREAD,status=%s,tid=%04x,handle=%p",
+        fprintf( stderr, "APC_CREATE_THREAD,status=%s,tid=%04x,handle=%04x",
                  get_status_name( result->create_thread.status ),
                  result->create_thread.tid, result->create_thread.handle );
         break;
@@ -250,7 +265,7 @@ static void dump_apc_result( const apc_result_t *result )
 
 static void dump_async_data( const async_data_t *data )
 {
-    fprintf( stderr, "{callback=%p,iosb=%p,arg=%p,apc=%p,event=%p}",
+    fprintf( stderr, "{callback=%p,iosb=%p,arg=%p,apc=%p,event=%04x}",
              data->callback, data->iosb, data->arg, data->apc, data->event );
 }
 
@@ -259,21 +274,30 @@ static void dump_luid( const luid_t *luid )
     fprintf( stderr, "%d.%u", luid->high_part, luid->low_part );
 }
 
-static void dump_context( const CONTEXT *context )
+static void dump_context( const CONTEXT *context, data_size_t size )
 {
+    CONTEXT ctx;
+
+    memset( &ctx, 0, sizeof(ctx) );
+    memcpy( &ctx, context, min( size, sizeof(CONTEXT) ));
 #ifdef __i386__
     fprintf( stderr, "{flags=%08x,eax=%08x,ebx=%08x,ecx=%08x,edx=%08x,esi=%08x,edi=%08x,"
              "ebp=%08x,eip=%08x,esp=%08x,eflags=%08x,cs=%04x,ds=%04x,es=%04x,"
              "fs=%04x,gs=%04x,dr0=%08x,dr1=%08x,dr2=%08x,dr3=%08x,dr6=%08x,dr7=%08x,",
-             context->ContextFlags, context->Eax, context->Ebx, context->Ecx, context->Edx,
-             context->Esi, context->Edi, context->Ebp, context->Eip, context->Esp, context->EFlags,
-             context->SegCs, context->SegDs, context->SegEs, context->SegFs, context->SegGs,
-             context->Dr0, context->Dr1, context->Dr2, context->Dr3, context->Dr6, context->Dr7 );
+             ctx.ContextFlags, ctx.Eax, ctx.Ebx, ctx.Ecx, ctx.Edx,
+             ctx.Esi, ctx.Edi, ctx.Ebp, ctx.Eip, ctx.Esp, ctx.EFlags,
+             ctx.SegCs, ctx.SegDs, ctx.SegEs, ctx.SegFs, ctx.SegGs,
+             ctx.Dr0, ctx.Dr1, ctx.Dr2, ctx.Dr3, ctx.Dr6, ctx.Dr7 );
     fprintf( stderr, "float=" );
-    dump_uints( (const int *)&context->FloatSave, sizeof(context->FloatSave) / sizeof(int) );
+    dump_uints( (const int *)&ctx.FloatSave, sizeof(ctx.FloatSave) / sizeof(int) );
+    if (size > FIELD_OFFSET( CONTEXT, ExtendedRegisters ))
+    {
+        fprintf( stderr, ",extended=" );
+        dump_uints( (const int *)&ctx.ExtendedRegisters, sizeof(ctx.ExtendedRegisters) / sizeof(int) );
+    }
     fprintf( stderr, "}" );
 #else
-    dump_uints( (const int *)context, sizeof(*context) / sizeof(int) );
+    dump_uints( (const int *)&ctx, sizeof(ctx) / sizeof(int) );
 #endif
 }
 
@@ -326,7 +350,7 @@ static void dump_varargs_handles( data_size_t size )
     fputc( '{', stderr );
     while (len > 0)
     {
-        fprintf( stderr, "%p", *data++ );
+        fprintf( stderr, "%04x", *data++ );
         if (--len) fputc( ',', stderr );
     }
     fputc( '}', stderr );
@@ -341,7 +365,7 @@ static void dump_varargs_user_handles( data_size_t size )
     fputc( '{', stderr );
     while (len > 0)
     {
-        fprintf( stderr, "%p", *data++ );
+        fprintf( stderr, "%08x", *data++ );
         if (--len) fputc( ',', stderr );
     }
     fputc( '}', stderr );
@@ -384,8 +408,8 @@ static void dump_varargs_context( data_size_t size )
         fprintf( stderr, "{}" );
         return;
     }
-    dump_context( cur_data );
-    remove_data( size );
+    dump_context( cur_data, size );
+    remove_data( min( size, sizeof(CONTEXT) ));
 }
 
 static void dump_varargs_exc_event( data_size_t size )
@@ -398,9 +422,12 @@ static void dump_varargs_exc_event( data_size_t size )
         return;
     }
     fprintf( stderr, "{context=" );
-    dump_context( ptr );
-    fprintf( stderr, ",rec=" );
-    dump_exc_record( (const EXCEPTION_RECORD *)(ptr + 1) );
+    dump_context( ptr, size );
+    if (size > sizeof(CONTEXT))
+    {
+        fprintf( stderr, ",rec=" );
+        dump_exc_record( (const EXCEPTION_RECORD *)(ptr + 1) );
+    }
     fputc( '}', stderr );
     remove_data( size );
 }
@@ -422,12 +449,12 @@ static void dump_varargs_debug_event( data_size_t size )
         fprintf( stderr, ",first=%d}", event->info.exception.first );
         break;
     case CREATE_THREAD_DEBUG_EVENT:
-        fprintf( stderr, "{create_thread,thread=%p,teb=%p,start=%p}",
+        fprintf( stderr, "{create_thread,thread=%04x,teb=%p,start=%p}",
                  event->info.create_thread.handle, event->info.create_thread.teb,
                  event->info.create_thread.start );
         break;
     case CREATE_PROCESS_DEBUG_EVENT:
-        fprintf( stderr, "{create_process,file=%p,process=%p,thread=%p,base=%p,offset=%d,"
+        fprintf( stderr, "{create_process,file=%04x,process=%04x,thread=%04x,base=%p,offset=%d,"
                          "size=%d,teb=%p,start=%p,name=%p,unicode=%d}",
                  event->info.create_process.file, event->info.create_process.process,
                  event->info.create_process.thread, event->info.create_process.base,
@@ -442,7 +469,7 @@ static void dump_varargs_debug_event( data_size_t size )
         fprintf( stderr, "{exit_process,code=%d}", event->info.exit.exit_code );
         break;
     case LOAD_DLL_DEBUG_EVENT:
-        fprintf( stderr, "{load_dll,file=%p,base=%p,offset=%d,size=%d,name=%p,unicode=%d}",
+        fprintf( stderr, "{load_dll,file=%04x,base=%p,offset=%d,size=%d,name=%p,unicode=%d}",
                  event->info.load_dll.handle, event->info.load_dll.base,
                  event->info.load_dll.dbg_offset, event->info.load_dll.dbg_size,
                  event->info.load_dll.name, event->info.load_dll.unicode );
@@ -578,8 +605,8 @@ static void dump_varargs_properties( data_size_t size )
     fputc( '{', stderr );
     while (len > 0)
     {
-        fprintf( stderr, "{atom=%04x,str=%d,handle=%p}",
-                 prop->atom, prop->string, prop->handle );
+        fprintf( stderr, "{atom=%04x,str=%d,data=%lx}",
+                 prop->atom, prop->string, prop->data );
         prop++;
         if (--len) fputc( ',', stderr );
     }
@@ -789,15 +816,17 @@ static void dump_varargs_object_attributes( data_size_t size )
     if (size >= sizeof(struct object_attributes))
     {
         const WCHAR *str;
-        fprintf( stderr, "rootdir=%p,sd=", objattr->rootdir );
-        if (objattr->sd_len > size - sizeof(*objattr)) return;
+        fprintf( stderr, "rootdir=%04x,sd=", objattr->rootdir );
+        if (objattr->sd_len > size - sizeof(*objattr) ||
+            objattr->name_len > size - sizeof(*objattr) - objattr->sd_len)
+            return;
         dump_inline_security_descriptor( (const struct security_descriptor *)(objattr + 1), objattr->sd_len );
-        str = (const WCHAR *)cur_data + (sizeof(*objattr) + objattr->sd_len) / sizeof(WCHAR);
+        str = (const WCHAR *)objattr + (sizeof(*objattr) + objattr->sd_len) / sizeof(WCHAR);
         fprintf( stderr, ",name=L\"" );
-        dump_strW( str, (size - sizeof(*objattr) - objattr->sd_len) / sizeof(WCHAR),
-                   stderr, "\"\"" );
+        dump_strW( str, objattr->name_len / sizeof(WCHAR), stderr, "\"\"" );
         fputc( '\"', stderr );
-        remove_data( size );
+        remove_data( ((sizeof(*objattr) + objattr->sd_len) / sizeof(WCHAR)) * sizeof(WCHAR) +
+                     objattr->name_len );
     }
     fputc( '}', stderr );
 }
@@ -812,10 +841,10 @@ static void dump_new_process_request( const struct new_process_request *req )
     fprintf( stderr, " inherit_all=%d,", req->inherit_all );
     fprintf( stderr, " create_flags=%08x,", req->create_flags );
     fprintf( stderr, " socket_fd=%d,", req->socket_fd );
-    fprintf( stderr, " exe_file=%p,", req->exe_file );
-    fprintf( stderr, " hstdin=%p,", req->hstdin );
-    fprintf( stderr, " hstdout=%p,", req->hstdout );
-    fprintf( stderr, " hstderr=%p,", req->hstderr );
+    fprintf( stderr, " exe_file=%04x,", req->exe_file );
+    fprintf( stderr, " hstdin=%04x,", req->hstdin );
+    fprintf( stderr, " hstdout=%04x,", req->hstdout );
+    fprintf( stderr, " hstderr=%04x,", req->hstderr );
     fprintf( stderr, " process_access=%08x,", req->process_access );
     fprintf( stderr, " process_attr=%08x,", req->process_attr );
     fprintf( stderr, " thread_access=%08x,", req->thread_access );
@@ -829,16 +858,16 @@ static void dump_new_process_request( const struct new_process_request *req )
 
 static void dump_new_process_reply( const struct new_process_reply *req )
 {
-    fprintf( stderr, " info=%p,", req->info );
+    fprintf( stderr, " info=%04x,", req->info );
     fprintf( stderr, " pid=%04x,", req->pid );
-    fprintf( stderr, " phandle=%p,", req->phandle );
+    fprintf( stderr, " phandle=%04x,", req->phandle );
     fprintf( stderr, " tid=%04x,", req->tid );
-    fprintf( stderr, " thandle=%p", req->thandle );
+    fprintf( stderr, " thandle=%04x", req->thandle );
 }
 
 static void dump_get_new_process_info_request( const struct get_new_process_info_request *req )
 {
-    fprintf( stderr, " info=%p", req->info );
+    fprintf( stderr, " info=%04x", req->info );
 }
 
 static void dump_get_new_process_info_reply( const struct get_new_process_info_reply *req )
@@ -858,7 +887,7 @@ static void dump_new_thread_request( const struct new_thread_request *req )
 static void dump_new_thread_reply( const struct new_thread_reply *req )
 {
     fprintf( stderr, " tid=%04x,", req->tid );
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_startup_info_request( const struct get_startup_info_request *req )
@@ -867,10 +896,10 @@ static void dump_get_startup_info_request( const struct get_startup_info_request
 
 static void dump_get_startup_info_reply( const struct get_startup_info_reply *req )
 {
-    fprintf( stderr, " exe_file=%p,", req->exe_file );
-    fprintf( stderr, " hstdin=%p,", req->hstdin );
-    fprintf( stderr, " hstdout=%p,", req->hstdout );
-    fprintf( stderr, " hstderr=%p,", req->hstderr );
+    fprintf( stderr, " exe_file=%04x,", req->exe_file );
+    fprintf( stderr, " hstdin=%04x,", req->hstdin );
+    fprintf( stderr, " hstdout=%04x,", req->hstdout );
+    fprintf( stderr, " hstderr=%04x,", req->hstderr );
     fprintf( stderr, " info=" );
     dump_varargs_startup_info( cur_size );
     fputc( ',', stderr );
@@ -911,7 +940,7 @@ static void dump_init_thread_reply( const struct init_thread_reply *req )
 
 static void dump_terminate_process_request( const struct terminate_process_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " exit_code=%d", req->exit_code );
 }
 
@@ -922,7 +951,7 @@ static void dump_terminate_process_reply( const struct terminate_process_reply *
 
 static void dump_terminate_thread_request( const struct terminate_thread_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " exit_code=%d", req->exit_code );
 }
 
@@ -934,7 +963,7 @@ static void dump_terminate_thread_reply( const struct terminate_thread_reply *re
 
 static void dump_get_process_info_request( const struct get_process_info_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_process_info_reply( const struct get_process_info_reply *req )
@@ -943,7 +972,7 @@ static void dump_get_process_info_reply( const struct get_process_info_reply *re
     fprintf( stderr, " ppid=%04x,", req->ppid );
     fprintf( stderr, " exit_code=%d,", req->exit_code );
     fprintf( stderr, " priority=%d,", req->priority );
-    fprintf( stderr, " affinity=%d,", req->affinity );
+    fprintf( stderr, " affinity=%08x,", req->affinity );
     fprintf( stderr, " peb=%p,", req->peb );
     fprintf( stderr, " start_time=" );
     dump_timeout( &req->start_time );
@@ -954,15 +983,15 @@ static void dump_get_process_info_reply( const struct get_process_info_reply *re
 
 static void dump_set_process_info_request( const struct set_process_info_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " mask=%d,", req->mask );
     fprintf( stderr, " priority=%d,", req->priority );
-    fprintf( stderr, " affinity=%d", req->affinity );
+    fprintf( stderr, " affinity=%08x", req->affinity );
 }
 
 static void dump_get_thread_info_request( const struct get_thread_info_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " tid_in=%04x", req->tid_in );
 }
 
@@ -973,7 +1002,7 @@ static void dump_get_thread_info_reply( const struct get_thread_info_reply *req
     fprintf( stderr, " teb=%p,", req->teb );
     fprintf( stderr, " exit_code=%d,", req->exit_code );
     fprintf( stderr, " priority=%d,", req->priority );
-    fprintf( stderr, " affinity=%d,", req->affinity );
+    fprintf( stderr, " affinity=%08x,", req->affinity );
     fprintf( stderr, " creation_time=" );
     dump_timeout( &req->creation_time );
     fprintf( stderr, "," );
@@ -985,30 +1014,31 @@ static void dump_get_thread_info_reply( const struct get_thread_info_reply *req
 
 static void dump_set_thread_info_request( const struct set_thread_info_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " mask=%d,", req->mask );
     fprintf( stderr, " priority=%d,", req->priority );
-    fprintf( stderr, " affinity=%d,", req->affinity );
-    fprintf( stderr, " token=%p", req->token );
+    fprintf( stderr, " affinity=%08x,", req->affinity );
+    fprintf( stderr, " token=%04x", req->token );
 }
 
 static void dump_get_dll_info_request( const struct get_dll_info_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " base_address=%p", req->base_address );
 }
 
 static void dump_get_dll_info_reply( const struct get_dll_info_reply *req )
 {
-    fprintf( stderr, " size=%lu,", (unsigned long)req->size );
     fprintf( stderr, " entry_point=%p,", req->entry_point );
+    fprintf( stderr, " size=%u,", req->size );
+    fprintf( stderr, " filename_len=%u,", req->filename_len );
     fprintf( stderr, " filename=" );
     dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_suspend_thread_request( const struct suspend_thread_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_suspend_thread_reply( const struct suspend_thread_reply *req )
@@ -1018,7 +1048,7 @@ static void dump_suspend_thread_reply( const struct suspend_thread_reply *req )
 
 static void dump_resume_thread_request( const struct resume_thread_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_resume_thread_reply( const struct resume_thread_reply *req )
@@ -1028,12 +1058,12 @@ static void dump_resume_thread_reply( const struct resume_thread_reply *req )
 
 static void dump_load_dll_request( const struct load_dll_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " base=%p,", req->base );
-    fprintf( stderr, " size=%lu,", (unsigned long)req->size );
+    fprintf( stderr, " name=%p,", req->name );
+    fprintf( stderr, " size=%u,", req->size );
     fprintf( stderr, " dbg_offset=%d,", req->dbg_offset );
     fprintf( stderr, " dbg_size=%d,", req->dbg_size );
-    fprintf( stderr, " name=%p,", req->name );
     fprintf( stderr, " filename=" );
     dump_varargs_unicode_str( cur_size );
 }
@@ -1045,21 +1075,21 @@ static void dump_unload_dll_request( const struct unload_dll_request *req )
 
 static void dump_queue_apc_request( const struct queue_apc_request *req )
 {
-    fprintf( stderr, " thread=%p,", req->thread );
-    fprintf( stderr, " process=%p,", req->process );
+    fprintf( stderr, " thread=%04x,", req->thread );
+    fprintf( stderr, " process=%04x,", req->process );
     fprintf( stderr, " call=" );
     dump_apc_call( &req->call );
 }
 
 static void dump_queue_apc_reply( const struct queue_apc_reply *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " self=%d", req->self );
 }
 
 static void dump_get_apc_result_request( const struct get_apc_result_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_apc_result_reply( const struct get_apc_result_reply *req )
@@ -1070,12 +1100,12 @@ static void dump_get_apc_result_reply( const struct get_apc_result_reply *req )
 
 static void dump_close_handle_request( const struct close_handle_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_set_handle_info_request( const struct set_handle_info_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " flags=%d,", req->flags );
     fprintf( stderr, " mask=%d", req->mask );
 }
@@ -1087,9 +1117,9 @@ static void dump_set_handle_info_reply( const struct set_handle_info_reply *req
 
 static void dump_dup_handle_request( const struct dup_handle_request *req )
 {
-    fprintf( stderr, " src_process=%p,", req->src_process );
-    fprintf( stderr, " src_handle=%p,", req->src_handle );
-    fprintf( stderr, " dst_process=%p,", req->dst_process );
+    fprintf( stderr, " src_process=%04x,", req->src_process );
+    fprintf( stderr, " src_handle=%04x,", req->src_handle );
+    fprintf( stderr, " dst_process=%04x,", req->dst_process );
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
     fprintf( stderr, " options=%08x", req->options );
@@ -1097,7 +1127,7 @@ static void dump_dup_handle_request( const struct dup_handle_request *req )
 
 static void dump_dup_handle_reply( const struct dup_handle_reply *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " self=%d,", req->self );
     fprintf( stderr, " closed=%d", req->closed );
 }
@@ -1111,7 +1141,7 @@ static void dump_open_process_request( const struct open_process_request *req )
 
 static void dump_open_process_reply( const struct open_process_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_open_thread_request( const struct open_thread_request *req )
@@ -1123,15 +1153,15 @@ static void dump_open_thread_request( const struct open_thread_request *req )
 
 static void dump_open_thread_reply( const struct open_thread_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_select_request( const struct select_request *req )
 {
     fprintf( stderr, " flags=%d,", req->flags );
     fprintf( stderr, " cookie=%p,", req->cookie );
-    fprintf( stderr, " signal=%p,", req->signal );
-    fprintf( stderr, " prev_apc=%p,", req->prev_apc );
+    fprintf( stderr, " signal=%04x,", req->signal );
+    fprintf( stderr, " prev_apc=%04x,", req->prev_apc );
     fprintf( stderr, " timeout=" );
     dump_timeout( &req->timeout );
     fprintf( stderr, "," );
@@ -1144,7 +1174,7 @@ static void dump_select_request( const struct select_request *req )
 
 static void dump_select_reply( const struct select_reply *req )
 {
-    fprintf( stderr, " apc_handle=%p,", req->apc_handle );
+    fprintf( stderr, " apc_handle=%04x,", req->apc_handle );
     fprintf( stderr, " timeout=" );
     dump_timeout( &req->timeout );
     fprintf( stderr, "," );
@@ -1164,12 +1194,12 @@ static void dump_create_event_request( const struct create_event_request *req )
 
 static void dump_create_event_reply( const struct create_event_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_event_op_request( const struct event_op_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " op=%d", req->op );
 }
 
@@ -1177,34 +1207,33 @@ static void dump_open_event_request( const struct open_event_request *req )
 {
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " rootdir=%04x,", req->rootdir );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_open_event_reply( const struct open_event_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_create_mutex_request( const struct create_mutex_request *req )
 {
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
     fprintf( stderr, " owned=%d,", req->owned );
-    fprintf( stderr, " name=" );
-    dump_varargs_unicode_str( cur_size );
+    fprintf( stderr, " objattr=" );
+    dump_varargs_object_attributes( cur_size );
 }
 
 static void dump_create_mutex_reply( const struct create_mutex_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_release_mutex_request( const struct release_mutex_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_release_mutex_reply( const struct release_mutex_reply *req )
@@ -1216,14 +1245,14 @@ static void dump_open_mutex_request( const struct open_mutex_request *req )
 {
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " rootdir=%04x,", req->rootdir );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_open_mutex_reply( const struct open_mutex_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_create_semaphore_request( const struct create_semaphore_request *req )
@@ -1238,12 +1267,12 @@ static void dump_create_semaphore_request( const struct create_semaphore_request
 
 static void dump_create_semaphore_reply( const struct create_semaphore_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_release_semaphore_request( const struct release_semaphore_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " count=%08x", req->count );
 }
 
@@ -1256,14 +1285,14 @@ static void dump_open_semaphore_request( const struct open_semaphore_request *re
 {
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " rootdir=%04x,", req->rootdir );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_open_semaphore_reply( const struct open_semaphore_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_create_file_request( const struct create_file_request *req )
@@ -1274,20 +1303,23 @@ static void dump_create_file_request( const struct create_file_request *req )
     fprintf( stderr, " create=%d,", req->create );
     fprintf( stderr, " options=%08x,", req->options );
     fprintf( stderr, " attrs=%08x,", req->attrs );
+    fprintf( stderr, " objattr=" );
+    dump_varargs_object_attributes( cur_size );
+    fputc( ',', stderr );
     fprintf( stderr, " filename=" );
     dump_varargs_string( cur_size );
 }
 
 static void dump_create_file_reply( const struct create_file_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_open_file_object_request( const struct open_file_object_request *req )
 {
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " rootdir=%04x,", req->rootdir );
     fprintf( stderr, " sharing=%08x,", req->sharing );
     fprintf( stderr, " options=%08x,", req->options );
     fprintf( stderr, " filename=" );
@@ -1296,7 +1328,7 @@ static void dump_open_file_object_request( const struct open_file_object_request
 
 static void dump_open_file_object_reply( const struct open_file_object_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_alloc_file_handle_request( const struct alloc_file_handle_request *req )
@@ -1308,12 +1340,12 @@ static void dump_alloc_file_handle_request( const struct alloc_file_handle_reque
 
 static void dump_alloc_file_handle_reply( const struct alloc_file_handle_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_handle_fd_request( const struct get_handle_fd_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_handle_fd_reply( const struct get_handle_fd_reply *req )
@@ -1326,22 +1358,22 @@ static void dump_get_handle_fd_reply( const struct get_handle_fd_reply *req )
 
 static void dump_flush_file_request( const struct flush_file_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_flush_file_reply( const struct flush_file_reply *req )
 {
-    fprintf( stderr, " event=%p", req->event );
+    fprintf( stderr, " event=%04x", req->event );
 }
 
 static void dump_lock_file_request( const struct lock_file_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " offset=" );
-    dump_file_pos( &req->offset );
+    dump_uint64( &req->offset );
     fprintf( stderr, "," );
     fprintf( stderr, " count=" );
-    dump_file_pos( &req->count );
+    dump_uint64( &req->count );
     fprintf( stderr, "," );
     fprintf( stderr, " shared=%d,", req->shared );
     fprintf( stderr, " wait=%d", req->wait );
@@ -1349,18 +1381,18 @@ static void dump_lock_file_request( const struct lock_file_request *req )
 
 static void dump_lock_file_reply( const struct lock_file_reply *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " overlapped=%d", req->overlapped );
 }
 
 static void dump_unlock_file_request( const struct unlock_file_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " offset=" );
-    dump_file_pos( &req->offset );
+    dump_uint64( &req->offset );
     fprintf( stderr, "," );
     fprintf( stderr, " count=" );
-    dump_file_pos( &req->count );
+    dump_uint64( &req->count );
 }
 
 static void dump_create_socket_request( const struct create_socket_request *req )
@@ -1375,35 +1407,35 @@ static void dump_create_socket_request( const struct create_socket_request *req
 
 static void dump_create_socket_reply( const struct create_socket_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_accept_socket_request( const struct accept_socket_request *req )
 {
-    fprintf( stderr, " lhandle=%p,", req->lhandle );
+    fprintf( stderr, " lhandle=%04x,", req->lhandle );
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x", req->attributes );
 }
 
 static void dump_accept_socket_reply( const struct accept_socket_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_set_socket_event_request( const struct set_socket_event_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " mask=%08x,", req->mask );
-    fprintf( stderr, " event=%p,", req->event );
-    fprintf( stderr, " window=%p,", req->window );
+    fprintf( stderr, " event=%04x,", req->event );
+    fprintf( stderr, " window=%08x,", req->window );
     fprintf( stderr, " msg=%08x", req->msg );
 }
 
 static void dump_get_socket_event_request( const struct get_socket_event_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " service=%d,", req->service );
-    fprintf( stderr, " c_event=%p", req->c_event );
+    fprintf( stderr, " c_event=%04x", req->c_event );
 }
 
 static void dump_get_socket_event_reply( const struct get_socket_event_reply *req )
@@ -1417,7 +1449,7 @@ static void dump_get_socket_event_reply( const struct get_socket_event_reply *re
 
 static void dump_enable_socket_event_request( const struct enable_socket_event_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " mask=%08x,", req->mask );
     fprintf( stderr, " sstate=%08x,", req->sstate );
     fprintf( stderr, " cstate=%08x", req->cstate );
@@ -1425,8 +1457,8 @@ static void dump_enable_socket_event_request( const struct enable_socket_event_r
 
 static void dump_set_socket_deferred_request( const struct set_socket_deferred_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
-    fprintf( stderr, " deferred=%p", req->deferred );
+    fprintf( stderr, " handle=%04x,", req->handle );
+    fprintf( stderr, " deferred=%04x", req->deferred );
 }
 
 static void dump_alloc_console_request( const struct alloc_console_request *req )
@@ -1438,8 +1470,8 @@ static void dump_alloc_console_request( const struct alloc_console_request *req
 
 static void dump_alloc_console_reply( const struct alloc_console_reply *req )
 {
-    fprintf( stderr, " handle_in=%p,", req->handle_in );
-    fprintf( stderr, " event=%p", req->event );
+    fprintf( stderr, " handle_in=%04x,", req->handle_in );
+    fprintf( stderr, " event=%04x", req->event );
 }
 
 static void dump_free_console_request( const struct free_console_request *req )
@@ -1448,7 +1480,7 @@ static void dump_free_console_request( const struct free_console_request *req )
 
 static void dump_get_console_renderer_events_request( const struct get_console_renderer_events_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_console_renderer_events_reply( const struct get_console_renderer_events_reply *req )
@@ -1459,7 +1491,7 @@ static void dump_get_console_renderer_events_reply( const struct get_console_ren
 
 static void dump_open_console_request( const struct open_console_request *req )
 {
-    fprintf( stderr, " from=%p,", req->from );
+    fprintf( stderr, " from=%04x,", req->from );
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
     fprintf( stderr, " share=%d", req->share );
@@ -1467,7 +1499,7 @@ static void dump_open_console_request( const struct open_console_request *req )
 
 static void dump_open_console_reply( const struct open_console_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_console_wait_event_request( const struct get_console_wait_event_request *req )
@@ -1476,12 +1508,12 @@ static void dump_get_console_wait_event_request( const struct get_console_wait_e
 
 static void dump_get_console_wait_event_reply( const struct get_console_wait_event_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_console_mode_request( const struct get_console_mode_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_console_mode_reply( const struct get_console_mode_reply *req )
@@ -1491,28 +1523,28 @@ static void dump_get_console_mode_reply( const struct get_console_mode_reply *re
 
 static void dump_set_console_mode_request( const struct set_console_mode_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " mode=%d", req->mode );
 }
 
 static void dump_set_console_input_info_request( const struct set_console_input_info_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " mask=%d,", req->mask );
-    fprintf( stderr, " active_sb=%p,", req->active_sb );
+    fprintf( stderr, " active_sb=%04x,", req->active_sb );
     fprintf( stderr, " history_mode=%d,", req->history_mode );
     fprintf( stderr, " history_size=%d,", req->history_size );
     fprintf( stderr, " edition_mode=%d,", req->edition_mode );
     fprintf( stderr, " input_cp=%d,", req->input_cp );
     fprintf( stderr, " output_cp=%d,", req->output_cp );
-    fprintf( stderr, " win=%p,", req->win );
+    fprintf( stderr, " win=%08x,", req->win );
     fprintf( stderr, " title=" );
     dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_get_console_input_info_request( const struct get_console_input_info_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_console_input_info_reply( const struct get_console_input_info_reply *req )
@@ -1523,21 +1555,21 @@ static void dump_get_console_input_info_reply( const struct get_console_input_in
     fprintf( stderr, " edition_mode=%d,", req->edition_mode );
     fprintf( stderr, " input_cp=%d,", req->input_cp );
     fprintf( stderr, " output_cp=%d,", req->output_cp );
-    fprintf( stderr, " win=%p,", req->win );
+    fprintf( stderr, " win=%08x,", req->win );
     fprintf( stderr, " title=" );
     dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_append_console_input_history_request( const struct append_console_input_history_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " line=" );
     dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_get_console_input_history_request( const struct get_console_input_history_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " index=%d", req->index );
 }
 
@@ -1550,7 +1582,7 @@ static void dump_get_console_input_history_reply( const struct get_console_input
 
 static void dump_create_console_output_request( const struct create_console_output_request *req )
 {
-    fprintf( stderr, " handle_in=%p,", req->handle_in );
+    fprintf( stderr, " handle_in=%04x,", req->handle_in );
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
     fprintf( stderr, " share=%08x", req->share );
@@ -1558,12 +1590,12 @@ static void dump_create_console_output_request( const struct create_console_outp
 
 static void dump_create_console_output_reply( const struct create_console_output_reply *req )
 {
-    fprintf( stderr, " handle_out=%p", req->handle_out );
+    fprintf( stderr, " handle_out=%04x", req->handle_out );
 }
 
 static void dump_set_console_output_info_request( const struct set_console_output_info_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " mask=%d,", req->mask );
     fprintf( stderr, " cursor_size=%d,", req->cursor_size );
     fprintf( stderr, " cursor_visible=%d,", req->cursor_visible );
@@ -1582,7 +1614,7 @@ static void dump_set_console_output_info_request( const struct set_console_outpu
 
 static void dump_get_console_output_info_request( const struct get_console_output_info_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_console_output_info_reply( const struct get_console_output_info_reply *req )
@@ -1604,7 +1636,7 @@ static void dump_get_console_output_info_reply( const struct get_console_output_
 
 static void dump_write_console_input_request( const struct write_console_input_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " rec=" );
     dump_varargs_input_records( cur_size );
 }
@@ -1616,7 +1648,7 @@ static void dump_write_console_input_reply( const struct write_console_input_rep
 
 static void dump_read_console_input_request( const struct read_console_input_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " flush=%d", req->flush );
 }
 
@@ -1629,7 +1661,7 @@ static void dump_read_console_input_reply( const struct read_console_input_reply
 
 static void dump_write_console_output_request( const struct write_console_output_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " x=%d,", req->x );
     fprintf( stderr, " y=%d,", req->y );
     fprintf( stderr, " mode=%d,", req->mode );
@@ -1647,7 +1679,7 @@ static void dump_write_console_output_reply( const struct write_console_output_r
 
 static void dump_fill_console_output_request( const struct fill_console_output_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " x=%d,", req->x );
     fprintf( stderr, " y=%d,", req->y );
     fprintf( stderr, " mode=%d,", req->mode );
@@ -1664,7 +1696,7 @@ static void dump_fill_console_output_reply( const struct fill_console_output_rep
 
 static void dump_read_console_output_request( const struct read_console_output_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " x=%d,", req->x );
     fprintf( stderr, " y=%d,", req->y );
     fprintf( stderr, " mode=%d,", req->mode );
@@ -1681,7 +1713,7 @@ static void dump_read_console_output_reply( const struct read_console_output_rep
 
 static void dump_move_console_output_request( const struct move_console_output_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " x_src=%d,", req->x_src );
     fprintf( stderr, " y_src=%d,", req->y_src );
     fprintf( stderr, " x_dst=%d,", req->x_dst );
@@ -1699,7 +1731,7 @@ static void dump_send_console_signal_request( const struct send_console_signal_r
 static void dump_read_directory_changes_request( const struct read_directory_changes_request *req )
 {
     fprintf( stderr, " filter=%08x,", req->filter );
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " subtree=%d,", req->subtree );
     fprintf( stderr, " want_data=%d,", req->want_data );
     fprintf( stderr, " async=" );
@@ -1708,7 +1740,7 @@ static void dump_read_directory_changes_request( const struct read_directory_cha
 
 static void dump_read_change_request( const struct read_change_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_read_change_reply( const struct read_change_reply *req )
@@ -1722,67 +1754,91 @@ static void dump_create_mapping_request( const struct create_mapping_request *re
 {
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
     fprintf( stderr, " size=" );
-    dump_file_pos( &req->size );
+    dump_uint64( &req->size );
     fprintf( stderr, "," );
-    fprintf( stderr, " protect=%d,", req->protect );
-    fprintf( stderr, " file_handle=%p,", req->file_handle );
-    fprintf( stderr, " name=" );
-    dump_varargs_unicode_str( cur_size );
+    fprintf( stderr, " protect=%08x,", req->protect );
+    fprintf( stderr, " file_handle=%04x,", req->file_handle );
+    fprintf( stderr, " objattr=" );
+    dump_varargs_object_attributes( cur_size );
 }
 
 static void dump_create_mapping_reply( const struct create_mapping_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_open_mapping_request( const struct open_mapping_request *req )
 {
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " rootdir=%04x,", req->rootdir );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_open_mapping_reply( const struct open_mapping_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_mapping_info_request( const struct get_mapping_info_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
+    fprintf( stderr, " access=%08x", req->access );
 }
 
 static void dump_get_mapping_info_reply( const struct get_mapping_info_reply *req )
 {
     fprintf( stderr, " size=" );
-    dump_file_pos( &req->size );
+    dump_uint64( &req->size );
     fprintf( stderr, "," );
     fprintf( stderr, " protect=%d,", req->protect );
     fprintf( stderr, " header_size=%d,", req->header_size );
     fprintf( stderr, " base=%p,", req->base );
-    fprintf( stderr, " mapping=%p,", req->mapping );
-    fprintf( stderr, " shared_file=%p", req->shared_file );
+    fprintf( stderr, " mapping=%04x,", req->mapping );
+    fprintf( stderr, " shared_file=%04x", req->shared_file );
+}
+
+static void dump_get_mapping_committed_range_request( const struct get_mapping_committed_range_request *req )
+{
+    fprintf( stderr, " handle=%04x,", req->handle );
+    fprintf( stderr, " offset=" );
+    dump_uint64( &req->offset );
+}
+
+static void dump_get_mapping_committed_range_reply( const struct get_mapping_committed_range_reply *req )
+{
+    fprintf( stderr, " size=" );
+    dump_uint64( &req->size );
+    fprintf( stderr, "," );
+    fprintf( stderr, " committed=%d", req->committed );
+}
+
+static void dump_add_mapping_committed_range_request( const struct add_mapping_committed_range_request *req )
+{
+    fprintf( stderr, " handle=%04x,", req->handle );
+    fprintf( stderr, " offset=" );
+    dump_uint64( &req->offset );
+    fprintf( stderr, "," );
+    fprintf( stderr, " size=" );
+    dump_uint64( &req->size );
 }
 
 static void dump_create_snapshot_request( const struct create_snapshot_request *req )
 {
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " flags=%d,", req->flags );
-    fprintf( stderr, " pid=%04x", req->pid );
+    fprintf( stderr, " flags=%08x", req->flags );
 }
 
 static void dump_create_snapshot_reply( const struct create_snapshot_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_next_process_request( const struct next_process_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " reset=%d", req->reset );
 }
 
@@ -1791,8 +1847,6 @@ static void dump_next_process_reply( const struct next_process_reply *req )
     fprintf( stderr, " count=%d,", req->count );
     fprintf( stderr, " pid=%04x,", req->pid );
     fprintf( stderr, " ppid=%04x,", req->ppid );
-    fprintf( stderr, " heap=%p,", req->heap );
-    fprintf( stderr, " module=%p,", req->module );
     fprintf( stderr, " threads=%d,", req->threads );
     fprintf( stderr, " priority=%d,", req->priority );
     fprintf( stderr, " handles=%d,", req->handles );
@@ -1802,7 +1856,7 @@ static void dump_next_process_reply( const struct next_process_reply *req )
 
 static void dump_next_thread_request( const struct next_thread_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " reset=%d", req->reset );
 }
 
@@ -1815,21 +1869,6 @@ static void dump_next_thread_reply( const struct next_thread_reply *req )
     fprintf( stderr, " delta_pri=%d", req->delta_pri );
 }
 
-static void dump_next_module_request( const struct next_module_request *req )
-{
-    fprintf( stderr, " handle=%p,", req->handle );
-    fprintf( stderr, " reset=%d", req->reset );
-}
-
-static void dump_next_module_reply( const struct next_module_reply *req )
-{
-    fprintf( stderr, " pid=%04x,", req->pid );
-    fprintf( stderr, " base=%p,", req->base );
-    fprintf( stderr, " size=%lu,", (unsigned long)req->size );
-    fprintf( stderr, " filename=" );
-    dump_varargs_unicode_str( cur_size );
-}
-
 static void dump_wait_debug_event_request( const struct wait_debug_event_request *req )
 {
     fprintf( stderr, " get_handle=%d", req->get_handle );
@@ -1839,7 +1878,7 @@ static void dump_wait_debug_event_reply( const struct wait_debug_event_reply *re
 {
     fprintf( stderr, " pid=%04x,", req->pid );
     fprintf( stderr, " tid=%04x,", req->tid );
-    fprintf( stderr, " wait=%p,", req->wait );
+    fprintf( stderr, " wait=%04x,", req->wait );
     fprintf( stderr, " event=" );
     dump_varargs_debug_event( cur_size );
 }
@@ -1853,12 +1892,12 @@ static void dump_queue_exception_event_request( const struct queue_exception_eve
 
 static void dump_queue_exception_event_reply( const struct queue_exception_event_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_exception_status_request( const struct get_exception_status_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_exception_status_reply( const struct get_exception_status_reply *req )
@@ -1889,7 +1928,7 @@ static void dump_debug_process_request( const struct debug_process_request *req
 
 static void dump_debug_break_request( const struct debug_break_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_debug_break_reply( const struct debug_break_reply *req )
@@ -1904,7 +1943,7 @@ static void dump_set_debugger_kill_on_exit_request( const struct set_debugger_ki
 
 static void dump_read_process_memory_request( const struct read_process_memory_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " addr=%p", req->addr );
 }
 
@@ -1916,7 +1955,7 @@ static void dump_read_process_memory_reply( const struct read_process_memory_rep
 
 static void dump_write_process_memory_request( const struct write_process_memory_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " addr=%p,", req->addr );
     fprintf( stderr, " data=" );
     dump_varargs_bytes( cur_size );
@@ -1924,11 +1963,10 @@ static void dump_write_process_memory_request( const struct write_process_memory
 
 static void dump_create_key_request( const struct create_key_request *req )
 {
-    fprintf( stderr, " parent=%p,", req->parent );
+    fprintf( stderr, " parent=%04x,", req->parent );
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
     fprintf( stderr, " options=%08x,", req->options );
-    fprintf( stderr, " modif=%ld,", (long)req->modif );
     fprintf( stderr, " namelen=%u,", req->namelen );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( min(cur_size,req->namelen) );
@@ -1939,13 +1977,13 @@ static void dump_create_key_request( const struct create_key_request *req )
 
 static void dump_create_key_reply( const struct create_key_reply *req )
 {
-    fprintf( stderr, " hkey=%p,", req->hkey );
+    fprintf( stderr, " hkey=%04x,", req->hkey );
     fprintf( stderr, " created=%d", req->created );
 }
 
 static void dump_open_key_request( const struct open_key_request *req )
 {
-    fprintf( stderr, " parent=%p,", req->parent );
+    fprintf( stderr, " parent=%04x,", req->parent );
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
     fprintf( stderr, " name=" );
@@ -1954,22 +1992,22 @@ static void dump_open_key_request( const struct open_key_request *req )
 
 static void dump_open_key_reply( const struct open_key_reply *req )
 {
-    fprintf( stderr, " hkey=%p", req->hkey );
+    fprintf( stderr, " hkey=%04x", req->hkey );
 }
 
 static void dump_delete_key_request( const struct delete_key_request *req )
 {
-    fprintf( stderr, " hkey=%p", req->hkey );
+    fprintf( stderr, " hkey=%04x", req->hkey );
 }
 
 static void dump_flush_key_request( const struct flush_key_request *req )
 {
-    fprintf( stderr, " hkey=%p", req->hkey );
+    fprintf( stderr, " hkey=%04x", req->hkey );
 }
 
 static void dump_enum_key_request( const struct enum_key_request *req )
 {
-    fprintf( stderr, " hkey=%p,", req->hkey );
+    fprintf( stderr, " hkey=%04x,", req->hkey );
     fprintf( stderr, " index=%d,", req->index );
     fprintf( stderr, " info_class=%d", req->info_class );
 }
@@ -1982,7 +2020,9 @@ static void dump_enum_key_reply( const struct enum_key_reply *req )
     fprintf( stderr, " values=%d,", req->values );
     fprintf( stderr, " max_value=%d,", req->max_value );
     fprintf( stderr, " max_data=%d,", req->max_data );
-    fprintf( stderr, " modif=%ld,", (long)req->modif );
+    fprintf( stderr, " modif=" );
+    dump_timeout( &req->modif );
+    fprintf( stderr, "," );
     fprintf( stderr, " total=%u,", req->total );
     fprintf( stderr, " namelen=%u,", req->namelen );
     fprintf( stderr, " name=" );
@@ -1994,7 +2034,7 @@ static void dump_enum_key_reply( const struct enum_key_reply *req )
 
 static void dump_set_key_value_request( const struct set_key_value_request *req )
 {
-    fprintf( stderr, " hkey=%p,", req->hkey );
+    fprintf( stderr, " hkey=%04x,", req->hkey );
     fprintf( stderr, " type=%d,", req->type );
     fprintf( stderr, " namelen=%u,", req->namelen );
     fprintf( stderr, " name=" );
@@ -2006,7 +2046,7 @@ static void dump_set_key_value_request( const struct set_key_value_request *req
 
 static void dump_get_key_value_request( const struct get_key_value_request *req )
 {
-    fprintf( stderr, " hkey=%p,", req->hkey );
+    fprintf( stderr, " hkey=%04x,", req->hkey );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( cur_size );
 }
@@ -2021,7 +2061,7 @@ static void dump_get_key_value_reply( const struct get_key_value_reply *req )
 
 static void dump_enum_key_value_request( const struct enum_key_value_request *req )
 {
-    fprintf( stderr, " hkey=%p,", req->hkey );
+    fprintf( stderr, " hkey=%04x,", req->hkey );
     fprintf( stderr, " index=%d,", req->index );
     fprintf( stderr, " info_class=%d", req->info_class );
 }
@@ -2040,34 +2080,34 @@ static void dump_enum_key_value_reply( const struct enum_key_value_reply *req )
 
 static void dump_delete_key_value_request( const struct delete_key_value_request *req )
 {
-    fprintf( stderr, " hkey=%p,", req->hkey );
+    fprintf( stderr, " hkey=%04x,", req->hkey );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_load_registry_request( const struct load_registry_request *req )
 {
-    fprintf( stderr, " hkey=%p,", req->hkey );
-    fprintf( stderr, " file=%p,", req->file );
+    fprintf( stderr, " hkey=%04x,", req->hkey );
+    fprintf( stderr, " file=%04x,", req->file );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_unload_registry_request( const struct unload_registry_request *req )
 {
-    fprintf( stderr, " hkey=%p", req->hkey );
+    fprintf( stderr, " hkey=%04x", req->hkey );
 }
 
 static void dump_save_registry_request( const struct save_registry_request *req )
 {
-    fprintf( stderr, " hkey=%p,", req->hkey );
-    fprintf( stderr, " file=%p", req->file );
+    fprintf( stderr, " hkey=%04x,", req->hkey );
+    fprintf( stderr, " file=%04x", req->file );
 }
 
 static void dump_set_registry_notification_request( const struct set_registry_notification_request *req )
 {
-    fprintf( stderr, " hkey=%p,", req->hkey );
-    fprintf( stderr, " event=%p,", req->event );
+    fprintf( stderr, " hkey=%04x,", req->hkey );
+    fprintf( stderr, " event=%04x,", req->event );
     fprintf( stderr, " subtree=%d,", req->subtree );
     fprintf( stderr, " filter=%08x", req->filter );
 }
@@ -2076,7 +2116,7 @@ static void dump_create_timer_request( const struct create_timer_request *req )
 {
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " rootdir=%04x,", req->rootdir );
     fprintf( stderr, " manual=%d,", req->manual );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( cur_size );
@@ -2084,26 +2124,26 @@ static void dump_create_timer_request( const struct create_timer_request *req )
 
 static void dump_create_timer_reply( const struct create_timer_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_open_timer_request( const struct open_timer_request *req )
 {
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " rootdir=%04x,", req->rootdir );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_open_timer_reply( const struct open_timer_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_set_timer_request( const struct set_timer_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " expire=" );
     dump_timeout( &req->expire );
     fprintf( stderr, "," );
@@ -2119,7 +2159,7 @@ static void dump_set_timer_reply( const struct set_timer_reply *req )
 
 static void dump_cancel_timer_request( const struct cancel_timer_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_cancel_timer_reply( const struct cancel_timer_reply *req )
@@ -2129,7 +2169,7 @@ static void dump_cancel_timer_reply( const struct cancel_timer_reply *req )
 
 static void dump_get_timer_info_request( const struct get_timer_info_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_timer_info_reply( const struct get_timer_info_reply *req )
@@ -2142,7 +2182,7 @@ static void dump_get_timer_info_reply( const struct get_timer_info_reply *req )
 
 static void dump_get_thread_context_request( const struct get_thread_context_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " flags=%08x,", req->flags );
     fprintf( stderr, " suspend=%d", req->suspend );
 }
@@ -2156,7 +2196,7 @@ static void dump_get_thread_context_reply( const struct get_thread_context_reply
 
 static void dump_set_thread_context_request( const struct set_thread_context_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " flags=%08x,", req->flags );
     fprintf( stderr, " suspend=%d,", req->suspend );
     fprintf( stderr, " context=" );
@@ -2170,7 +2210,7 @@ static void dump_set_thread_context_reply( const struct set_thread_context_reply
 
 static void dump_get_selector_entry_request( const struct get_selector_entry_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " entry=%d", req->entry );
 }
 
@@ -2183,7 +2223,7 @@ static void dump_get_selector_entry_reply( const struct get_selector_entry_reply
 
 static void dump_add_atom_request( const struct add_atom_request *req )
 {
-    fprintf( stderr, " table=%p,", req->table );
+    fprintf( stderr, " table=%04x,", req->table );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( cur_size );
 }
@@ -2195,13 +2235,13 @@ static void dump_add_atom_reply( const struct add_atom_reply *req )
 
 static void dump_delete_atom_request( const struct delete_atom_request *req )
 {
-    fprintf( stderr, " table=%p,", req->table );
+    fprintf( stderr, " table=%04x,", req->table );
     fprintf( stderr, " atom=%04x", req->atom );
 }
 
 static void dump_find_atom_request( const struct find_atom_request *req )
 {
-    fprintf( stderr, " table=%p,", req->table );
+    fprintf( stderr, " table=%04x,", req->table );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( cur_size );
 }
@@ -2213,7 +2253,7 @@ static void dump_find_atom_reply( const struct find_atom_reply *req )
 
 static void dump_get_atom_information_request( const struct get_atom_information_request *req )
 {
-    fprintf( stderr, " table=%p,", req->table );
+    fprintf( stderr, " table=%04x,", req->table );
     fprintf( stderr, " atom=%04x", req->atom );
 }
 
@@ -2228,14 +2268,14 @@ static void dump_get_atom_information_reply( const struct get_atom_information_r
 
 static void dump_set_atom_information_request( const struct set_atom_information_request *req )
 {
-    fprintf( stderr, " table=%p,", req->table );
+    fprintf( stderr, " table=%04x,", req->table );
     fprintf( stderr, " atom=%04x,", req->atom );
     fprintf( stderr, " pinned=%d", req->pinned );
 }
 
 static void dump_empty_atom_table_request( const struct empty_atom_table_request *req )
 {
-    fprintf( stderr, " table=%p,", req->table );
+    fprintf( stderr, " table=%04x,", req->table );
     fprintf( stderr, " if_pinned=%d", req->if_pinned );
 }
 
@@ -2246,7 +2286,7 @@ static void dump_init_atom_table_request( const struct init_atom_table_request *
 
 static void dump_init_atom_table_reply( const struct init_atom_table_reply *req )
 {
-    fprintf( stderr, " table=%p", req->table );
+    fprintf( stderr, " table=%04x", req->table );
 }
 
 static void dump_get_msg_queue_request( const struct get_msg_queue_request *req )
@@ -2255,12 +2295,12 @@ static void dump_get_msg_queue_request( const struct get_msg_queue_request *req
 
 static void dump_get_msg_queue_reply( const struct get_msg_queue_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_set_queue_fd_request( const struct set_queue_fd_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_set_queue_mask_request( const struct set_queue_mask_request *req )
@@ -2289,12 +2329,12 @@ static void dump_get_queue_status_reply( const struct get_queue_status_reply *re
 
 static void dump_get_process_idle_event_request( const struct get_process_idle_event_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_process_idle_event_reply( const struct get_process_idle_event_reply *req )
 {
-    fprintf( stderr, " event=%p", req->event );
+    fprintf( stderr, " event=%04x", req->event );
 }
 
 static void dump_send_message_request( const struct send_message_request *req )
@@ -2302,7 +2342,7 @@ static void dump_send_message_request( const struct send_message_request *req )
     fprintf( stderr, " id=%04x,", req->id );
     fprintf( stderr, " type=%d,", req->type );
     fprintf( stderr, " flags=%d,", req->flags );
-    fprintf( stderr, " win=%p,", req->win );
+    fprintf( stderr, " win=%08x,", req->win );
     fprintf( stderr, " msg=%08x,", req->msg );
     fprintf( stderr, " wparam=%lx,", req->wparam );
     fprintf( stderr, " lparam=%lx,", req->lparam );
@@ -2321,7 +2361,7 @@ static void dump_post_quit_message_request( const struct post_quit_message_reque
 static void dump_send_hardware_message_request( const struct send_hardware_message_request *req )
 {
     fprintf( stderr, " id=%04x,", req->id );
-    fprintf( stderr, " win=%p,", req->win );
+    fprintf( stderr, " win=%08x,", req->win );
     fprintf( stderr, " msg=%08x,", req->msg );
     fprintf( stderr, " time=%08x,", req->time );
     fprintf( stderr, " wparam=%lx,", req->wparam );
@@ -2334,7 +2374,7 @@ static void dump_send_hardware_message_request( const struct send_hardware_messa
 static void dump_get_message_request( const struct get_message_request *req )
 {
     fprintf( stderr, " flags=%08x,", req->flags );
-    fprintf( stderr, " get_win=%p,", req->get_win );
+    fprintf( stderr, " get_win=%08x,", req->get_win );
     fprintf( stderr, " get_first=%08x,", req->get_first );
     fprintf( stderr, " get_last=%08x,", req->get_last );
     fprintf( stderr, " hw_id=%08x,", req->hw_id );
@@ -2344,7 +2384,7 @@ static void dump_get_message_request( const struct get_message_request *req )
 
 static void dump_get_message_reply( const struct get_message_reply *req )
 {
-    fprintf( stderr, " win=%p,", req->win );
+    fprintf( stderr, " win=%08x,", req->win );
     fprintf( stderr, " type=%d,", req->type );
     fprintf( stderr, " msg=%08x,", req->msg );
     fprintf( stderr, " wparam=%lx,", req->wparam );
@@ -2372,7 +2412,7 @@ static void dump_accept_hardware_message_request( const struct accept_hardware_m
 {
     fprintf( stderr, " hw_id=%08x,", req->hw_id );
     fprintf( stderr, " remove=%d,", req->remove );
-    fprintf( stderr, " new_win=%p", req->new_win );
+    fprintf( stderr, " new_win=%08x", req->new_win );
 }
 
 static void dump_get_message_reply_request( const struct get_message_reply_request *req )
@@ -2389,7 +2429,7 @@ static void dump_get_message_reply_reply( const struct get_message_reply_reply *
 
 static void dump_set_win_timer_request( const struct set_win_timer_request *req )
 {
-    fprintf( stderr, " win=%p,", req->win );
+    fprintf( stderr, " win=%08x,", req->win );
     fprintf( stderr, " msg=%08x,", req->msg );
     fprintf( stderr, " rate=%08x,", req->rate );
     fprintf( stderr, " id=%lx,", req->id );
@@ -2403,14 +2443,24 @@ static void dump_set_win_timer_reply( const struct set_win_timer_reply *req )
 
 static void dump_kill_win_timer_request( const struct kill_win_timer_request *req )
 {
-    fprintf( stderr, " win=%p,", req->win );
+    fprintf( stderr, " win=%08x,", req->win );
     fprintf( stderr, " msg=%08x,", req->msg );
     fprintf( stderr, " id=%lx", req->id );
 }
 
+static void dump_is_window_hung_request( const struct is_window_hung_request *req )
+{
+    fprintf( stderr, " win=%08x", req->win );
+}
+
+static void dump_is_window_hung_reply( const struct is_window_hung_reply *req )
+{
+    fprintf( stderr, " is_hung=%d", req->is_hung );
+}
+
 static void dump_get_serial_info_request( const struct get_serial_info_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_serial_info_reply( const struct get_serial_info_reply *req )
@@ -2425,7 +2475,7 @@ static void dump_get_serial_info_reply( const struct get_serial_info_reply *req
 
 static void dump_set_serial_info_request( const struct set_serial_info_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " flags=%d,", req->flags );
     fprintf( stderr, " readinterval=%08x,", req->readinterval );
     fprintf( stderr, " readconst=%08x,", req->readconst );
@@ -2437,7 +2487,7 @@ static void dump_set_serial_info_request( const struct set_serial_info_request *
 
 static void dump_register_async_request( const struct register_async_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " type=%d,", req->type );
     fprintf( stderr, " count=%d,", req->count );
     fprintf( stderr, " async=" );
@@ -2446,12 +2496,12 @@ static void dump_register_async_request( const struct register_async_request *re
 
 static void dump_cancel_async_request( const struct cancel_async_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_ioctl_request( const struct ioctl_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " code=" );
     dump_ioctl_code( &req->code );
     fprintf( stderr, "," );
@@ -2464,7 +2514,7 @@ static void dump_ioctl_request( const struct ioctl_request *req )
 
 static void dump_ioctl_reply( const struct ioctl_reply *req )
 {
-    fprintf( stderr, " wait=%p,", req->wait );
+    fprintf( stderr, " wait=%04x,", req->wait );
     fprintf( stderr, " options=%08x,", req->options );
     fprintf( stderr, " out_data=" );
     dump_varargs_bytes( cur_size );
@@ -2472,7 +2522,7 @@ static void dump_ioctl_reply( const struct ioctl_reply *req )
 
 static void dump_get_ioctl_result_request( const struct get_ioctl_result_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " user_arg=%p", req->user_arg );
 }
 
@@ -2486,7 +2536,7 @@ static void dump_create_named_pipe_request( const struct create_named_pipe_reque
 {
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " rootdir=%04x,", req->rootdir );
     fprintf( stderr, " options=%08x,", req->options );
     fprintf( stderr, " flags=%08x,", req->flags );
     fprintf( stderr, " maxinstances=%08x,", req->maxinstances );
@@ -2501,12 +2551,12 @@ static void dump_create_named_pipe_request( const struct create_named_pipe_reque
 
 static void dump_create_named_pipe_reply( const struct create_named_pipe_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_named_pipe_info_request( const struct get_named_pipe_info_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_named_pipe_info_reply( const struct get_named_pipe_info_reply *req )
@@ -2520,24 +2570,26 @@ static void dump_get_named_pipe_info_reply( const struct get_named_pipe_info_rep
 
 static void dump_create_window_request( const struct create_window_request *req )
 {
-    fprintf( stderr, " parent=%p,", req->parent );
-    fprintf( stderr, " owner=%p,", req->owner );
+    fprintf( stderr, " parent=%08x,", req->parent );
+    fprintf( stderr, " owner=%08x,", req->owner );
     fprintf( stderr, " atom=%04x,", req->atom );
-    fprintf( stderr, " instance=%p", req->instance );
+    fprintf( stderr, " instance=%p,", req->instance );
+    fprintf( stderr, " class=" );
+    dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_create_window_reply( const struct create_window_reply *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
-    fprintf( stderr, " parent=%p,", req->parent );
-    fprintf( stderr, " owner=%p,", req->owner );
+    fprintf( stderr, " handle=%08x,", req->handle );
+    fprintf( stderr, " parent=%08x,", req->parent );
+    fprintf( stderr, " owner=%08x,", req->owner );
     fprintf( stderr, " extra=%d,", req->extra );
     fprintf( stderr, " class_ptr=%p", req->class_ptr );
 }
 
 static void dump_destroy_window_request( const struct destroy_window_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%08x", req->handle );
 }
 
 static void dump_get_desktop_window_request( const struct get_desktop_window_request *req )
@@ -2547,30 +2599,31 @@ static void dump_get_desktop_window_request( const struct get_desktop_window_req
 
 static void dump_get_desktop_window_reply( const struct get_desktop_window_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " top_window=%08x,", req->top_window );
+    fprintf( stderr, " msg_window=%08x", req->msg_window );
 }
 
 static void dump_set_window_owner_request( const struct set_window_owner_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
-    fprintf( stderr, " owner=%p", req->owner );
+    fprintf( stderr, " handle=%08x,", req->handle );
+    fprintf( stderr, " owner=%08x", req->owner );
 }
 
 static void dump_set_window_owner_reply( const struct set_window_owner_reply *req )
 {
-    fprintf( stderr, " full_owner=%p,", req->full_owner );
-    fprintf( stderr, " prev_owner=%p", req->prev_owner );
+    fprintf( stderr, " full_owner=%08x,", req->full_owner );
+    fprintf( stderr, " prev_owner=%08x", req->prev_owner );
 }
 
 static void dump_get_window_info_request( const struct get_window_info_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%08x", req->handle );
 }
 
 static void dump_get_window_info_reply( const struct get_window_info_reply *req )
 {
-    fprintf( stderr, " full_handle=%p,", req->full_handle );
-    fprintf( stderr, " last_active=%p,", req->last_active );
+    fprintf( stderr, " full_handle=%08x,", req->full_handle );
+    fprintf( stderr, " last_active=%08x,", req->last_active );
     fprintf( stderr, " pid=%04x,", req->pid );
     fprintf( stderr, " tid=%04x,", req->tid );
     fprintf( stderr, " atom=%04x,", req->atom );
@@ -2580,7 +2633,7 @@ static void dump_get_window_info_reply( const struct get_window_info_reply *req
 static void dump_set_window_info_request( const struct set_window_info_request *req )
 {
     fprintf( stderr, " flags=%08x,", req->flags );
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%08x,", req->handle );
     fprintf( stderr, " style=%08x,", req->style );
     fprintf( stderr, " ex_style=%08x,", req->ex_style );
     fprintf( stderr, " id=%08x,", req->id );
@@ -2604,19 +2657,19 @@ static void dump_set_window_info_reply( const struct set_window_info_reply *req
 
 static void dump_set_parent_request( const struct set_parent_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
-    fprintf( stderr, " parent=%p", req->parent );
+    fprintf( stderr, " handle=%08x,", req->handle );
+    fprintf( stderr, " parent=%08x", req->parent );
 }
 
 static void dump_set_parent_reply( const struct set_parent_reply *req )
 {
-    fprintf( stderr, " old_parent=%p,", req->old_parent );
-    fprintf( stderr, " full_parent=%p", req->full_parent );
+    fprintf( stderr, " old_parent=%08x,", req->old_parent );
+    fprintf( stderr, " full_parent=%08x", req->full_parent );
 }
 
 static void dump_get_window_parents_request( const struct get_window_parents_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%08x", req->handle );
 }
 
 static void dump_get_window_parents_reply( const struct get_window_parents_reply *req )
@@ -2628,9 +2681,12 @@ static void dump_get_window_parents_reply( const struct get_window_parents_reply
 
 static void dump_get_window_children_request( const struct get_window_children_request *req )
 {
-    fprintf( stderr, " parent=%p,", req->parent );
+    fprintf( stderr, " desktop=%04x,", req->desktop );
+    fprintf( stderr, " parent=%08x,", req->parent );
     fprintf( stderr, " atom=%04x,", req->atom );
-    fprintf( stderr, " tid=%04x", req->tid );
+    fprintf( stderr, " tid=%04x,", req->tid );
+    fprintf( stderr, " class=" );
+    dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_get_window_children_reply( const struct get_window_children_reply *req )
@@ -2642,7 +2698,7 @@ static void dump_get_window_children_reply( const struct get_window_children_rep
 
 static void dump_get_window_children_from_point_request( const struct get_window_children_from_point_request *req )
 {
-    fprintf( stderr, " parent=%p,", req->parent );
+    fprintf( stderr, " parent=%08x,", req->parent );
     fprintf( stderr, " x=%d,", req->x );
     fprintf( stderr, " y=%d", req->y );
 }
@@ -2656,26 +2712,26 @@ static void dump_get_window_children_from_point_reply( const struct get_window_c
 
 static void dump_get_window_tree_request( const struct get_window_tree_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%08x", req->handle );
 }
 
 static void dump_get_window_tree_reply( const struct get_window_tree_reply *req )
 {
-    fprintf( stderr, " parent=%p,", req->parent );
-    fprintf( stderr, " owner=%p,", req->owner );
-    fprintf( stderr, " next_sibling=%p,", req->next_sibling );
-    fprintf( stderr, " prev_sibling=%p,", req->prev_sibling );
-    fprintf( stderr, " first_sibling=%p,", req->first_sibling );
-    fprintf( stderr, " last_sibling=%p,", req->last_sibling );
-    fprintf( stderr, " first_child=%p,", req->first_child );
-    fprintf( stderr, " last_child=%p", req->last_child );
+    fprintf( stderr, " parent=%08x,", req->parent );
+    fprintf( stderr, " owner=%08x,", req->owner );
+    fprintf( stderr, " next_sibling=%08x,", req->next_sibling );
+    fprintf( stderr, " prev_sibling=%08x,", req->prev_sibling );
+    fprintf( stderr, " first_sibling=%08x,", req->first_sibling );
+    fprintf( stderr, " last_sibling=%08x,", req->last_sibling );
+    fprintf( stderr, " first_child=%08x,", req->first_child );
+    fprintf( stderr, " last_child=%08x", req->last_child );
 }
 
 static void dump_set_window_pos_request( const struct set_window_pos_request *req )
 {
     fprintf( stderr, " flags=%08x,", req->flags );
-    fprintf( stderr, " handle=%p,", req->handle );
-    fprintf( stderr, " previous=%p,", req->previous );
+    fprintf( stderr, " handle=%08x,", req->handle );
+    fprintf( stderr, " previous=%08x,", req->previous );
     fprintf( stderr, " window=" );
     dump_rectangle( &req->window );
     fprintf( stderr, "," );
@@ -2688,12 +2744,13 @@ static void dump_set_window_pos_request( const struct set_window_pos_request *re
 
 static void dump_set_window_pos_reply( const struct set_window_pos_reply *req )
 {
-    fprintf( stderr, " new_style=%08x", req->new_style );
+    fprintf( stderr, " new_style=%08x,", req->new_style );
+    fprintf( stderr, " new_ex_style=%08x", req->new_ex_style );
 }
 
 static void dump_get_window_rectangles_request( const struct get_window_rectangles_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%08x", req->handle );
 }
 
 static void dump_get_window_rectangles_reply( const struct get_window_rectangles_reply *req )
@@ -2710,7 +2767,7 @@ static void dump_get_window_rectangles_reply( const struct get_window_rectangles
 
 static void dump_get_window_text_request( const struct get_window_text_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%08x", req->handle );
 }
 
 static void dump_get_window_text_reply( const struct get_window_text_reply *req )
@@ -2721,15 +2778,15 @@ static void dump_get_window_text_reply( const struct get_window_text_reply *req
 
 static void dump_set_window_text_request( const struct set_window_text_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%08x,", req->handle );
     fprintf( stderr, " text=" );
     dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_get_windows_offset_request( const struct get_windows_offset_request *req )
 {
-    fprintf( stderr, " from=%p,", req->from );
-    fprintf( stderr, " to=%p", req->to );
+    fprintf( stderr, " from=%08x,", req->from );
+    fprintf( stderr, " to=%08x", req->to );
 }
 
 static void dump_get_windows_offset_reply( const struct get_windows_offset_reply *req )
@@ -2740,13 +2797,13 @@ static void dump_get_windows_offset_reply( const struct get_windows_offset_reply
 
 static void dump_get_visible_region_request( const struct get_visible_region_request *req )
 {
-    fprintf( stderr, " window=%p,", req->window );
+    fprintf( stderr, " window=%08x,", req->window );
     fprintf( stderr, " flags=%08x", req->flags );
 }
 
 static void dump_get_visible_region_reply( const struct get_visible_region_reply *req )
 {
-    fprintf( stderr, " top_win=%p,", req->top_win );
+    fprintf( stderr, " top_win=%08x,", req->top_win );
     fprintf( stderr, " top_rect=" );
     dump_rectangle( &req->top_rect );
     fprintf( stderr, "," );
@@ -2760,7 +2817,7 @@ static void dump_get_visible_region_reply( const struct get_visible_region_reply
 
 static void dump_get_window_region_request( const struct get_window_region_request *req )
 {
-    fprintf( stderr, " window=%p", req->window );
+    fprintf( stderr, " window=%08x", req->window );
 }
 
 static void dump_get_window_region_reply( const struct get_window_region_reply *req )
@@ -2772,7 +2829,7 @@ static void dump_get_window_region_reply( const struct get_window_region_reply *
 
 static void dump_set_window_region_request( const struct set_window_region_request *req )
 {
-    fprintf( stderr, " window=%p,", req->window );
+    fprintf( stderr, " window=%08x,", req->window );
     fprintf( stderr, " redraw=%d,", req->redraw );
     fprintf( stderr, " region=" );
     dump_varargs_rectangles( cur_size );
@@ -2780,14 +2837,14 @@ static void dump_set_window_region_request( const struct set_window_region_reque
 
 static void dump_get_update_region_request( const struct get_update_region_request *req )
 {
-    fprintf( stderr, " window=%p,", req->window );
-    fprintf( stderr, " from_child=%p,", req->from_child );
+    fprintf( stderr, " window=%08x,", req->window );
+    fprintf( stderr, " from_child=%08x,", req->from_child );
     fprintf( stderr, " flags=%08x", req->flags );
 }
 
 static void dump_get_update_region_reply( const struct get_update_region_reply *req )
 {
-    fprintf( stderr, " child=%p,", req->child );
+    fprintf( stderr, " child=%08x,", req->child );
     fprintf( stderr, " flags=%08x,", req->flags );
     fprintf( stderr, " total_size=%u,", req->total_size );
     fprintf( stderr, " region=" );
@@ -2796,14 +2853,14 @@ static void dump_get_update_region_reply( const struct get_update_region_reply *
 
 static void dump_update_window_zorder_request( const struct update_window_zorder_request *req )
 {
-    fprintf( stderr, " window=%p,", req->window );
+    fprintf( stderr, " window=%08x,", req->window );
     fprintf( stderr, " rect=" );
     dump_rectangle( &req->rect );
 }
 
 static void dump_redraw_window_request( const struct redraw_window_request *req )
 {
-    fprintf( stderr, " window=%p,", req->window );
+    fprintf( stderr, " window=%08x,", req->window );
     fprintf( stderr, " flags=%08x,", req->flags );
     fprintf( stderr, " region=" );
     dump_varargs_rectangles( cur_size );
@@ -2811,16 +2868,16 @@ static void dump_redraw_window_request( const struct redraw_window_request *req
 
 static void dump_set_window_property_request( const struct set_window_property_request *req )
 {
-    fprintf( stderr, " window=%p,", req->window );
+    fprintf( stderr, " window=%08x,", req->window );
     fprintf( stderr, " atom=%04x,", req->atom );
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " data=%lx,", req->data );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_remove_window_property_request( const struct remove_window_property_request *req )
 {
-    fprintf( stderr, " window=%p,", req->window );
+    fprintf( stderr, " window=%08x,", req->window );
     fprintf( stderr, " atom=%04x,", req->atom );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( cur_size );
@@ -2828,12 +2885,12 @@ static void dump_remove_window_property_request( const struct remove_window_prop
 
 static void dump_remove_window_property_reply( const struct remove_window_property_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " data=%lx", req->data );
 }
 
 static void dump_get_window_property_request( const struct get_window_property_request *req )
 {
-    fprintf( stderr, " window=%p,", req->window );
+    fprintf( stderr, " window=%08x,", req->window );
     fprintf( stderr, " atom=%04x,", req->atom );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( cur_size );
@@ -2841,12 +2898,12 @@ static void dump_get_window_property_request( const struct get_window_property_r
 
 static void dump_get_window_property_reply( const struct get_window_property_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " data=%lx", req->data );
 }
 
 static void dump_get_window_properties_request( const struct get_window_properties_request *req )
 {
-    fprintf( stderr, " window=%p", req->window );
+    fprintf( stderr, " window=%08x", req->window );
 }
 
 static void dump_get_window_properties_reply( const struct get_window_properties_reply *req )
@@ -2867,7 +2924,7 @@ static void dump_create_winstation_request( const struct create_winstation_reque
 
 static void dump_create_winstation_reply( const struct create_winstation_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_open_winstation_request( const struct open_winstation_request *req )
@@ -2880,12 +2937,12 @@ static void dump_open_winstation_request( const struct open_winstation_request *
 
 static void dump_open_winstation_reply( const struct open_winstation_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_close_winstation_request( const struct close_winstation_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_process_winstation_request( const struct get_process_winstation_request *req )
@@ -2894,12 +2951,24 @@ static void dump_get_process_winstation_request( const struct get_process_winsta
 
 static void dump_get_process_winstation_reply( const struct get_process_winstation_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_set_process_winstation_request( const struct set_process_winstation_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
+}
+
+static void dump_enum_winstation_request( const struct enum_winstation_request *req )
+{
+    fprintf( stderr, " index=%08x", req->index );
+}
+
+static void dump_enum_winstation_reply( const struct enum_winstation_reply *req )
+{
+    fprintf( stderr, " next=%08x,", req->next );
+    fprintf( stderr, " name=" );
+    dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_create_desktop_request( const struct create_desktop_request *req )
@@ -2913,11 +2982,12 @@ static void dump_create_desktop_request( const struct create_desktop_request *re
 
 static void dump_create_desktop_reply( const struct create_desktop_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_open_desktop_request( const struct open_desktop_request *req )
 {
+    fprintf( stderr, " winsta=%04x,", req->winsta );
     fprintf( stderr, " flags=%08x,", req->flags );
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
@@ -2927,12 +2997,12 @@ static void dump_open_desktop_request( const struct open_desktop_request *req )
 
 static void dump_open_desktop_reply( const struct open_desktop_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_close_desktop_request( const struct close_desktop_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_thread_desktop_request( const struct get_thread_desktop_request *req )
@@ -2942,17 +3012,30 @@ static void dump_get_thread_desktop_request( const struct get_thread_desktop_req
 
 static void dump_get_thread_desktop_reply( const struct get_thread_desktop_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_set_thread_desktop_request( const struct set_thread_desktop_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
+}
+
+static void dump_enum_desktop_request( const struct enum_desktop_request *req )
+{
+    fprintf( stderr, " winstation=%04x,", req->winstation );
+    fprintf( stderr, " index=%08x", req->index );
+}
+
+static void dump_enum_desktop_reply( const struct enum_desktop_reply *req )
+{
+    fprintf( stderr, " next=%08x,", req->next );
+    fprintf( stderr, " name=" );
+    dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_set_user_object_info_request( const struct set_user_object_info_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " flags=%08x,", req->flags );
     fprintf( stderr, " obj_flags=%08x", req->obj_flags );
 }
@@ -2979,13 +3062,13 @@ static void dump_get_thread_input_request( const struct get_thread_input_request
 
 static void dump_get_thread_input_reply( const struct get_thread_input_reply *req )
 {
-    fprintf( stderr, " focus=%p,", req->focus );
-    fprintf( stderr, " capture=%p,", req->capture );
-    fprintf( stderr, " active=%p,", req->active );
-    fprintf( stderr, " foreground=%p,", req->foreground );
-    fprintf( stderr, " menu_owner=%p,", req->menu_owner );
-    fprintf( stderr, " move_size=%p,", req->move_size );
-    fprintf( stderr, " caret=%p,", req->caret );
+    fprintf( stderr, " focus=%08x,", req->focus );
+    fprintf( stderr, " capture=%08x,", req->capture );
+    fprintf( stderr, " active=%08x,", req->active );
+    fprintf( stderr, " foreground=%08x,", req->foreground );
+    fprintf( stderr, " menu_owner=%08x,", req->menu_owner );
+    fprintf( stderr, " move_size=%08x,", req->move_size );
+    fprintf( stderr, " caret=%08x,", req->caret );
     fprintf( stderr, " rect=" );
     dump_rectangle( &req->rect );
 }
@@ -3021,58 +3104,58 @@ static void dump_set_key_state_request( const struct set_key_state_request *req
 
 static void dump_set_foreground_window_request( const struct set_foreground_window_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%08x", req->handle );
 }
 
 static void dump_set_foreground_window_reply( const struct set_foreground_window_reply *req )
 {
-    fprintf( stderr, " previous=%p,", req->previous );
+    fprintf( stderr, " previous=%08x,", req->previous );
     fprintf( stderr, " send_msg_old=%d,", req->send_msg_old );
     fprintf( stderr, " send_msg_new=%d", req->send_msg_new );
 }
 
 static void dump_set_focus_window_request( const struct set_focus_window_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%08x", req->handle );
 }
 
 static void dump_set_focus_window_reply( const struct set_focus_window_reply *req )
 {
-    fprintf( stderr, " previous=%p", req->previous );
+    fprintf( stderr, " previous=%08x", req->previous );
 }
 
 static void dump_set_active_window_request( const struct set_active_window_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%08x", req->handle );
 }
 
 static void dump_set_active_window_reply( const struct set_active_window_reply *req )
 {
-    fprintf( stderr, " previous=%p", req->previous );
+    fprintf( stderr, " previous=%08x", req->previous );
 }
 
 static void dump_set_capture_window_request( const struct set_capture_window_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%08x,", req->handle );
     fprintf( stderr, " flags=%08x", req->flags );
 }
 
 static void dump_set_capture_window_reply( const struct set_capture_window_reply *req )
 {
-    fprintf( stderr, " previous=%p,", req->previous );
-    fprintf( stderr, " full_handle=%p", req->full_handle );
+    fprintf( stderr, " previous=%08x,", req->previous );
+    fprintf( stderr, " full_handle=%08x", req->full_handle );
 }
 
 static void dump_set_caret_window_request( const struct set_caret_window_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%08x,", req->handle );
     fprintf( stderr, " width=%d,", req->width );
     fprintf( stderr, " height=%d", req->height );
 }
 
 static void dump_set_caret_window_reply( const struct set_caret_window_reply *req )
 {
-    fprintf( stderr, " previous=%p,", req->previous );
+    fprintf( stderr, " previous=%08x,", req->previous );
     fprintf( stderr, " old_rect=" );
     dump_rectangle( &req->old_rect );
     fprintf( stderr, "," );
@@ -3083,7 +3166,7 @@ static void dump_set_caret_window_reply( const struct set_caret_window_reply *re
 static void dump_set_caret_info_request( const struct set_caret_info_request *req )
 {
     fprintf( stderr, " flags=%08x,", req->flags );
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%08x,", req->handle );
     fprintf( stderr, " x=%d,", req->x );
     fprintf( stderr, " y=%d,", req->y );
     fprintf( stderr, " hide=%d,", req->hide );
@@ -3092,7 +3175,7 @@ static void dump_set_caret_info_request( const struct set_caret_info_request *re
 
 static void dump_set_caret_info_reply( const struct set_caret_info_reply *req )
 {
-    fprintf( stderr, " full_handle=%p,", req->full_handle );
+    fprintf( stderr, " full_handle=%08x,", req->full_handle );
     fprintf( stderr, " old_rect=" );
     dump_rectangle( &req->old_rect );
     fprintf( stderr, "," );
@@ -3116,13 +3199,13 @@ static void dump_set_hook_request( const struct set_hook_request *req )
 
 static void dump_set_hook_reply( const struct set_hook_reply *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%08x,", req->handle );
     fprintf( stderr, " active_hooks=%08x", req->active_hooks );
 }
 
 static void dump_remove_hook_request( const struct remove_hook_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%08x,", req->handle );
     fprintf( stderr, " id=%d,", req->id );
     fprintf( stderr, " proc=%p", req->proc );
 }
@@ -3136,14 +3219,14 @@ static void dump_start_hook_chain_request( const struct start_hook_chain_request
 {
     fprintf( stderr, " id=%d,", req->id );
     fprintf( stderr, " event=%d,", req->event );
-    fprintf( stderr, " window=%p,", req->window );
+    fprintf( stderr, " window=%08x,", req->window );
     fprintf( stderr, " object_id=%d,", req->object_id );
     fprintf( stderr, " child_id=%d", req->child_id );
 }
 
 static void dump_start_hook_chain_reply( const struct start_hook_chain_reply *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%08x,", req->handle );
     fprintf( stderr, " pid=%04x,", req->pid );
     fprintf( stderr, " tid=%04x,", req->tid );
     fprintf( stderr, " proc=%p,", req->proc );
@@ -3160,17 +3243,17 @@ static void dump_finish_hook_chain_request( const struct finish_hook_chain_reque
 
 static void dump_get_hook_info_request( const struct get_hook_info_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%08x,", req->handle );
     fprintf( stderr, " get_next=%d,", req->get_next );
     fprintf( stderr, " event=%d,", req->event );
-    fprintf( stderr, " window=%p,", req->window );
+    fprintf( stderr, " window=%08x,", req->window );
     fprintf( stderr, " object_id=%d,", req->object_id );
     fprintf( stderr, " child_id=%d", req->child_id );
 }
 
 static void dump_get_hook_info_reply( const struct get_hook_info_reply *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%08x,", req->handle );
     fprintf( stderr, " id=%d,", req->id );
     fprintf( stderr, " pid=%04x,", req->pid );
     fprintf( stderr, " tid=%04x,", req->tid );
@@ -3188,13 +3271,22 @@ static void dump_create_class_request( const struct create_class_request *req )
     fprintf( stderr, " instance=%p,", req->instance );
     fprintf( stderr, " extra=%d,", req->extra );
     fprintf( stderr, " win_extra=%d,", req->win_extra );
-    fprintf( stderr, " client_ptr=%p", req->client_ptr );
+    fprintf( stderr, " client_ptr=%p,", req->client_ptr );
+    fprintf( stderr, " name=" );
+    dump_varargs_unicode_str( cur_size );
+}
+
+static void dump_create_class_reply( const struct create_class_reply *req )
+{
+    fprintf( stderr, " atom=%04x", req->atom );
 }
 
 static void dump_destroy_class_request( const struct destroy_class_request *req )
 {
     fprintf( stderr, " atom=%04x,", req->atom );
-    fprintf( stderr, " instance=%p", req->instance );
+    fprintf( stderr, " instance=%p,", req->instance );
+    fprintf( stderr, " name=" );
+    dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_destroy_class_reply( const struct destroy_class_reply *req )
@@ -3204,7 +3296,7 @@ static void dump_destroy_class_reply( const struct destroy_class_reply *req )
 
 static void dump_set_class_info_request( const struct set_class_info_request *req )
 {
-    fprintf( stderr, " window=%p,", req->window );
+    fprintf( stderr, " window=%08x,", req->window );
     fprintf( stderr, " flags=%08x,", req->flags );
     fprintf( stderr, " atom=%04x,", req->atom );
     fprintf( stderr, " style=%08x,", req->style );
@@ -3228,24 +3320,24 @@ static void dump_set_class_info_reply( const struct set_class_info_reply *req )
 static void dump_set_clipboard_info_request( const struct set_clipboard_info_request *req )
 {
     fprintf( stderr, " flags=%08x,", req->flags );
-    fprintf( stderr, " clipboard=%p,", req->clipboard );
-    fprintf( stderr, " owner=%p,", req->owner );
-    fprintf( stderr, " viewer=%p,", req->viewer );
+    fprintf( stderr, " clipboard=%08x,", req->clipboard );
+    fprintf( stderr, " owner=%08x,", req->owner );
+    fprintf( stderr, " viewer=%08x,", req->viewer );
     fprintf( stderr, " seqno=%08x", req->seqno );
 }
 
 static void dump_set_clipboard_info_reply( const struct set_clipboard_info_reply *req )
 {
     fprintf( stderr, " flags=%08x,", req->flags );
-    fprintf( stderr, " old_clipboard=%p,", req->old_clipboard );
-    fprintf( stderr, " old_owner=%p,", req->old_owner );
-    fprintf( stderr, " old_viewer=%p,", req->old_viewer );
+    fprintf( stderr, " old_clipboard=%08x,", req->old_clipboard );
+    fprintf( stderr, " old_owner=%08x,", req->old_owner );
+    fprintf( stderr, " old_viewer=%08x,", req->old_viewer );
     fprintf( stderr, " seqno=%08x", req->seqno );
 }
 
 static void dump_open_token_request( const struct open_token_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
     fprintf( stderr, " flags=%08x", req->flags );
@@ -3253,29 +3345,29 @@ static void dump_open_token_request( const struct open_token_request *req )
 
 static void dump_open_token_reply( const struct open_token_reply *req )
 {
-    fprintf( stderr, " token=%p", req->token );
+    fprintf( stderr, " token=%04x", req->token );
 }
 
 static void dump_set_global_windows_request( const struct set_global_windows_request *req )
 {
     fprintf( stderr, " flags=%08x,", req->flags );
-    fprintf( stderr, " shell_window=%p,", req->shell_window );
-    fprintf( stderr, " shell_listview=%p,", req->shell_listview );
-    fprintf( stderr, " progman_window=%p,", req->progman_window );
-    fprintf( stderr, " taskman_window=%p", req->taskman_window );
+    fprintf( stderr, " shell_window=%08x,", req->shell_window );
+    fprintf( stderr, " shell_listview=%08x,", req->shell_listview );
+    fprintf( stderr, " progman_window=%08x,", req->progman_window );
+    fprintf( stderr, " taskman_window=%08x", req->taskman_window );
 }
 
 static void dump_set_global_windows_reply( const struct set_global_windows_reply *req )
 {
-    fprintf( stderr, " old_shell_window=%p,", req->old_shell_window );
-    fprintf( stderr, " old_shell_listview=%p,", req->old_shell_listview );
-    fprintf( stderr, " old_progman_window=%p,", req->old_progman_window );
-    fprintf( stderr, " old_taskman_window=%p", req->old_taskman_window );
+    fprintf( stderr, " old_shell_window=%08x,", req->old_shell_window );
+    fprintf( stderr, " old_shell_listview=%08x,", req->old_shell_listview );
+    fprintf( stderr, " old_progman_window=%08x,", req->old_progman_window );
+    fprintf( stderr, " old_taskman_window=%08x", req->old_taskman_window );
 }
 
 static void dump_adjust_token_privileges_request( const struct adjust_token_privileges_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " disable_all=%d,", req->disable_all );
     fprintf( stderr, " get_modified_state=%d,", req->get_modified_state );
     fprintf( stderr, " privileges=" );
@@ -3291,7 +3383,7 @@ static void dump_adjust_token_privileges_reply( const struct adjust_token_privil
 
 static void dump_get_token_privileges_request( const struct get_token_privileges_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_token_privileges_reply( const struct get_token_privileges_reply *req )
@@ -3303,7 +3395,7 @@ static void dump_get_token_privileges_reply( const struct get_token_privileges_r
 
 static void dump_check_token_privileges_request( const struct check_token_privileges_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " all_required=%d,", req->all_required );
     fprintf( stderr, " privileges=" );
     dump_varargs_LUID_AND_ATTRIBUTES( cur_size );
@@ -3318,7 +3410,7 @@ static void dump_check_token_privileges_reply( const struct check_token_privileg
 
 static void dump_duplicate_token_request( const struct duplicate_token_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
     fprintf( stderr, " primary=%d,", req->primary );
@@ -3327,12 +3419,12 @@ static void dump_duplicate_token_request( const struct duplicate_token_request *
 
 static void dump_duplicate_token_reply( const struct duplicate_token_reply *req )
 {
-    fprintf( stderr, " new_handle=%p", req->new_handle );
+    fprintf( stderr, " new_handle=%04x", req->new_handle );
 }
 
 static void dump_access_check_request( const struct access_check_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " desired_access=%08x,", req->desired_access );
     fprintf( stderr, " mapping_read=%08x,", req->mapping_read );
     fprintf( stderr, " mapping_write=%08x,", req->mapping_write );
@@ -3353,7 +3445,7 @@ static void dump_access_check_reply( const struct access_check_reply *req )
 
 static void dump_get_token_user_request( const struct get_token_user_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_token_user_reply( const struct get_token_user_reply *req )
@@ -3365,7 +3457,7 @@ static void dump_get_token_user_reply( const struct get_token_user_reply *req )
 
 static void dump_get_token_groups_request( const struct get_token_groups_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_token_groups_reply( const struct get_token_groups_reply *req )
@@ -3377,7 +3469,7 @@ static void dump_get_token_groups_reply( const struct get_token_groups_reply *re
 
 static void dump_set_security_object_request( const struct set_security_object_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " security_info=%08x,", req->security_info );
     fprintf( stderr, " sd=" );
     dump_varargs_security_descriptor( cur_size );
@@ -3385,7 +3477,7 @@ static void dump_set_security_object_request( const struct set_security_object_r
 
 static void dump_get_security_object_request( const struct get_security_object_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " security_info=%08x", req->security_info );
 }
 
@@ -3400,7 +3492,7 @@ static void dump_create_mailslot_request( const struct create_mailslot_request *
 {
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " rootdir=%04x,", req->rootdir );
     fprintf( stderr, " max_msgsize=%08x,", req->max_msgsize );
     fprintf( stderr, " read_timeout=" );
     dump_timeout( &req->read_timeout );
@@ -3411,12 +3503,12 @@ static void dump_create_mailslot_request( const struct create_mailslot_request *
 
 static void dump_create_mailslot_reply( const struct create_mailslot_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_set_mailslot_info_request( const struct set_mailslot_info_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
+    fprintf( stderr, " handle=%04x,", req->handle );
     fprintf( stderr, " flags=%08x,", req->flags );
     fprintf( stderr, " read_timeout=" );
     dump_timeout( &req->read_timeout );
@@ -3433,35 +3525,51 @@ static void dump_create_directory_request( const struct create_directory_request
 {
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " rootdir=%04x,", req->rootdir );
     fprintf( stderr, " directory_name=" );
     dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_create_directory_reply( const struct create_directory_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_open_directory_request( const struct open_directory_request *req )
 {
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " rootdir=%04x,", req->rootdir );
     fprintf( stderr, " directory_name=" );
     dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_open_directory_reply( const struct open_directory_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
+}
+
+static void dump_get_directory_entry_request( const struct get_directory_entry_request *req )
+{
+    fprintf( stderr, " handle=%04x,", req->handle );
+    fprintf( stderr, " index=%08x", req->index );
+}
+
+static void dump_get_directory_entry_reply( const struct get_directory_entry_reply *req )
+{
+    fprintf( stderr, " name_len=%u,", req->name_len );
+    fprintf( stderr, " name=" );
+    dump_varargs_unicode_str( min(cur_size,req->name_len) );
+    fputc( ',', stderr );
+    fprintf( stderr, " type=" );
+    dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_create_symlink_request( const struct create_symlink_request *req )
 {
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " rootdir=%04x,", req->rootdir );
     fprintf( stderr, " name_len=%u,", req->name_len );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( min(cur_size,req->name_len) );
@@ -3472,26 +3580,26 @@ static void dump_create_symlink_request( const struct create_symlink_request *re
 
 static void dump_create_symlink_reply( const struct create_symlink_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_open_symlink_request( const struct open_symlink_request *req )
 {
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " rootdir=%04x,", req->rootdir );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( cur_size );
 }
 
 static void dump_open_symlink_reply( const struct open_symlink_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_query_symlink_request( const struct query_symlink_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_query_symlink_reply( const struct query_symlink_reply *req )
@@ -3502,7 +3610,7 @@ static void dump_query_symlink_reply( const struct query_symlink_reply *req )
 
 static void dump_get_object_info_request( const struct get_object_info_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_object_info_reply( const struct get_object_info_reply *req )
@@ -3511,9 +3619,14 @@ static void dump_get_object_info_reply( const struct get_object_info_reply *req
     fprintf( stderr, " ref_count=%08x", req->ref_count );
 }
 
+static void dump_unlink_object_request( const struct unlink_object_request *req )
+{
+    fprintf( stderr, " handle=%04x", req->handle );
+}
+
 static void dump_get_token_impersonation_level_request( const struct get_token_impersonation_level_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_token_impersonation_level_reply( const struct get_token_impersonation_level_reply *req )
@@ -3539,15 +3652,15 @@ static void dump_create_device_manager_request( const struct create_device_manag
 
 static void dump_create_device_manager_reply( const struct create_device_manager_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_create_device_request( const struct create_device_request *req )
 {
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
-    fprintf( stderr, " manager=%p,", req->manager );
+    fprintf( stderr, " rootdir=%04x,", req->rootdir );
+    fprintf( stderr, " manager=%04x,", req->manager );
     fprintf( stderr, " user_ptr=%p,", req->user_ptr );
     fprintf( stderr, " name=" );
     dump_varargs_unicode_str( cur_size );
@@ -3555,18 +3668,18 @@ static void dump_create_device_request( const struct create_device_request *req
 
 static void dump_create_device_reply( const struct create_device_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_delete_device_request( const struct delete_device_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_next_device_request_request( const struct get_next_device_request_request *req )
 {
-    fprintf( stderr, " manager=%p,", req->manager );
-    fprintf( stderr, " prev=%p,", req->prev );
+    fprintf( stderr, " manager=%04x,", req->manager );
+    fprintf( stderr, " prev=%04x,", req->prev );
     fprintf( stderr, " status=%08x,", req->status );
     fprintf( stderr, " prev_data=" );
     dump_varargs_bytes( cur_size );
@@ -3574,7 +3687,7 @@ static void dump_get_next_device_request_request( const struct get_next_device_r
 
 static void dump_get_next_device_request_reply( const struct get_next_device_request_reply *req )
 {
-    fprintf( stderr, " next=%p,", req->next );
+    fprintf( stderr, " next=%04x,", req->next );
     fprintf( stderr, " code=" );
     dump_ioctl_code( &req->code );
     fprintf( stderr, "," );
@@ -3591,12 +3704,12 @@ static void dump_make_process_system_request( const struct make_process_system_r
 
 static void dump_make_process_system_reply( const struct make_process_system_reply *req )
 {
-    fprintf( stderr, " event=%p", req->event );
+    fprintf( stderr, " event=%04x", req->event );
 }
 
 static void dump_get_token_statistics_request( const struct get_token_statistics_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_get_token_statistics_reply( const struct get_token_statistics_reply *req )
@@ -3618,55 +3731,63 @@ static void dump_create_completion_request( const struct create_completion_reque
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
     fprintf( stderr, " concurrent=%08x,", req->concurrent );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " rootdir=%04x,", req->rootdir );
     fprintf( stderr, " filename=" );
     dump_varargs_string( cur_size );
 }
 
 static void dump_create_completion_reply( const struct create_completion_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_open_completion_request( const struct open_completion_request *req )
 {
     fprintf( stderr, " access=%08x,", req->access );
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " rootdir=%p,", req->rootdir );
+    fprintf( stderr, " rootdir=%04x,", req->rootdir );
     fprintf( stderr, " filename=" );
     dump_varargs_string( cur_size );
 }
 
 static void dump_open_completion_reply( const struct open_completion_reply *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_add_completion_request( const struct add_completion_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
-    fprintf( stderr, " ckey=%lx,", req->ckey );
-    fprintf( stderr, " cvalue=%lx,", req->cvalue );
-    fprintf( stderr, " information=%lx,", req->information );
+    fprintf( stderr, " handle=%04x,", req->handle );
+    fprintf( stderr, " ckey=" );
+    dump_uint64( &req->ckey );
+    fprintf( stderr, "," );
+    fprintf( stderr, " cvalue=" );
+    dump_uint64( &req->cvalue );
+    fprintf( stderr, "," );
+    fprintf( stderr, " information=%08x,", req->information );
     fprintf( stderr, " status=%08x", req->status );
 }
 
 static void dump_remove_completion_request( const struct remove_completion_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_remove_completion_reply( const struct remove_completion_reply *req )
 {
-    fprintf( stderr, " ckey=%lx,", req->ckey );
-    fprintf( stderr, " cvalue=%lx,", req->cvalue );
-    fprintf( stderr, " information=%lx,", req->information );
+    fprintf( stderr, " ckey=" );
+    dump_uint64( &req->ckey );
+    fprintf( stderr, "," );
+    fprintf( stderr, " cvalue=" );
+    dump_uint64( &req->cvalue );
+    fprintf( stderr, "," );
+    fprintf( stderr, " information=%08x,", req->information );
     fprintf( stderr, " status=%08x", req->status );
 }
 
 static void dump_query_completion_request( const struct query_completion_request *req )
 {
-    fprintf( stderr, " handle=%p", req->handle );
+    fprintf( stderr, " handle=%04x", req->handle );
 }
 
 static void dump_query_completion_reply( const struct query_completion_reply *req )
@@ -3676,9 +3797,40 @@ static void dump_query_completion_reply( const struct query_completion_reply *re
 
 static void dump_set_completion_info_request( const struct set_completion_info_request *req )
 {
-    fprintf( stderr, " handle=%p,", req->handle );
-    fprintf( stderr, " chandle=%p,", req->chandle );
-    fprintf( stderr, " ckey=%lx", req->ckey );
+    fprintf( stderr, " handle=%04x,", req->handle );
+    fprintf( stderr, " chandle=%04x,", req->chandle );
+    fprintf( stderr, " ckey=" );
+    dump_uint64( &req->ckey );
+}
+
+static void dump_add_fd_completion_request( const struct add_fd_completion_request *req )
+{
+    fprintf( stderr, " handle=%04x,", req->handle );
+    fprintf( stderr, " cvalue=" );
+    dump_uint64( &req->cvalue );
+    fprintf( stderr, "," );
+    fprintf( stderr, " status=%08x,", req->status );
+    fprintf( stderr, " information=%08x", req->information );
+}
+
+static void dump_get_window_layered_info_request( const struct get_window_layered_info_request *req )
+{
+    fprintf( stderr, " handle=%08x", req->handle );
+}
+
+static void dump_get_window_layered_info_reply( const struct get_window_layered_info_reply *req )
+{
+    fprintf( stderr, " color_key=%08x,", req->color_key );
+    fprintf( stderr, " alpha=%08x,", req->alpha );
+    fprintf( stderr, " flags=%08x", req->flags );
+}
+
+static void dump_set_window_layered_info_request( const struct set_window_layered_info_request *req )
+{
+    fprintf( stderr, " handle=%08x,", req->handle );
+    fprintf( stderr, " color_key=%08x,", req->color_key );
+    fprintf( stderr, " alpha=%08x,", req->alpha );
+    fprintf( stderr, " flags=%08x", req->flags );
 }
 
 static const dump_func req_dumpers[REQ_NB_REQUESTS] = {
@@ -3755,10 +3907,11 @@ static const dump_func req_dumpers[REQ_NB_REQUESTS] = {
     (dump_func)dump_create_mapping_request,
     (dump_func)dump_open_mapping_request,
     (dump_func)dump_get_mapping_info_request,
+    (dump_func)dump_get_mapping_committed_range_request,
+    (dump_func)dump_add_mapping_committed_range_request,
     (dump_func)dump_create_snapshot_request,
     (dump_func)dump_next_process_request,
     (dump_func)dump_next_thread_request,
-    (dump_func)dump_next_module_request,
     (dump_func)dump_wait_debug_event_request,
     (dump_func)dump_queue_exception_event_request,
     (dump_func)dump_get_exception_status_request,
@@ -3811,6 +3964,7 @@ static const dump_func req_dumpers[REQ_NB_REQUESTS] = {
     (dump_func)dump_get_message_reply_request,
     (dump_func)dump_set_win_timer_request,
     (dump_func)dump_kill_win_timer_request,
+    (dump_func)dump_is_window_hung_request,
     (dump_func)dump_get_serial_info_request,
     (dump_func)dump_set_serial_info_request,
     (dump_func)dump_register_async_request,
@@ -3850,11 +4004,13 @@ static const dump_func req_dumpers[REQ_NB_REQUESTS] = {
     (dump_func)dump_close_winstation_request,
     (dump_func)dump_get_process_winstation_request,
     (dump_func)dump_set_process_winstation_request,
+    (dump_func)dump_enum_winstation_request,
     (dump_func)dump_create_desktop_request,
     (dump_func)dump_open_desktop_request,
     (dump_func)dump_close_desktop_request,
     (dump_func)dump_get_thread_desktop_request,
     (dump_func)dump_set_thread_desktop_request,
+    (dump_func)dump_enum_desktop_request,
     (dump_func)dump_set_user_object_info_request,
     (dump_func)dump_attach_thread_input_request,
     (dump_func)dump_get_thread_input_request,
@@ -3891,10 +4047,12 @@ static const dump_func req_dumpers[REQ_NB_REQUESTS] = {
     (dump_func)dump_set_mailslot_info_request,
     (dump_func)dump_create_directory_request,
     (dump_func)dump_open_directory_request,
+    (dump_func)dump_get_directory_entry_request,
     (dump_func)dump_create_symlink_request,
     (dump_func)dump_open_symlink_request,
     (dump_func)dump_query_symlink_request,
     (dump_func)dump_get_object_info_request,
+    (dump_func)dump_unlink_object_request,
     (dump_func)dump_get_token_impersonation_level_request,
     (dump_func)dump_allocate_locally_unique_id_request,
     (dump_func)dump_create_device_manager_request,
@@ -3909,6 +4067,9 @@ static const dump_func req_dumpers[REQ_NB_REQUESTS] = {
     (dump_func)dump_remove_completion_request,
     (dump_func)dump_query_completion_request,
     (dump_func)dump_set_completion_info_request,
+    (dump_func)dump_add_fd_completion_request,
+    (dump_func)dump_get_window_layered_info_request,
+    (dump_func)dump_set_window_layered_info_request,
 };
 
 static const dump_func reply_dumpers[REQ_NB_REQUESTS] = {
@@ -3916,29 +4077,29 @@ static const dump_func reply_dumpers[REQ_NB_REQUESTS] = {
     (dump_func)dump_get_new_process_info_reply,
     (dump_func)dump_new_thread_reply,
     (dump_func)dump_get_startup_info_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_init_thread_reply,
     (dump_func)dump_terminate_process_reply,
     (dump_func)dump_terminate_thread_reply,
     (dump_func)dump_get_process_info_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_get_thread_info_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_get_dll_info_reply,
     (dump_func)dump_suspend_thread_reply,
     (dump_func)dump_resume_thread_reply,
-    (dump_func)0,
-    (dump_func)0,
+    NULL,
+    NULL,
     (dump_func)dump_queue_apc_reply,
     (dump_func)dump_get_apc_result_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_set_handle_info_reply,
     (dump_func)dump_dup_handle_reply,
     (dump_func)dump_open_process_reply,
     (dump_func)dump_open_thread_reply,
     (dump_func)dump_select_reply,
     (dump_func)dump_create_event_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_open_event_reply,
     (dump_func)dump_create_mutex_reply,
     (dump_func)dump_release_mutex_reply,
@@ -3952,66 +4113,67 @@ static const dump_func reply_dumpers[REQ_NB_REQUESTS] = {
     (dump_func)dump_get_handle_fd_reply,
     (dump_func)dump_flush_file_reply,
     (dump_func)dump_lock_file_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_create_socket_reply,
     (dump_func)dump_accept_socket_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_get_socket_event_reply,
-    (dump_func)0,
-    (dump_func)0,
+    NULL,
+    NULL,
     (dump_func)dump_alloc_console_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_get_console_renderer_events_reply,
     (dump_func)dump_open_console_reply,
     (dump_func)dump_get_console_wait_event_reply,
     (dump_func)dump_get_console_mode_reply,
-    (dump_func)0,
-    (dump_func)0,
+    NULL,
+    NULL,
     (dump_func)dump_get_console_input_info_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_get_console_input_history_reply,
     (dump_func)dump_create_console_output_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_get_console_output_info_reply,
     (dump_func)dump_write_console_input_reply,
     (dump_func)dump_read_console_input_reply,
     (dump_func)dump_write_console_output_reply,
     (dump_func)dump_fill_console_output_reply,
     (dump_func)dump_read_console_output_reply,
-    (dump_func)0,
-    (dump_func)0,
-    (dump_func)0,
+    NULL,
+    NULL,
+    NULL,
     (dump_func)dump_read_change_reply,
     (dump_func)dump_create_mapping_reply,
     (dump_func)dump_open_mapping_reply,
     (dump_func)dump_get_mapping_info_reply,
+    (dump_func)dump_get_mapping_committed_range_reply,
+    NULL,
     (dump_func)dump_create_snapshot_reply,
     (dump_func)dump_next_process_reply,
     (dump_func)dump_next_thread_reply,
-    (dump_func)dump_next_module_reply,
     (dump_func)dump_wait_debug_event_reply,
     (dump_func)dump_queue_exception_event_reply,
     (dump_func)dump_get_exception_status_reply,
-    (dump_func)0,
-    (dump_func)0,
-    (dump_func)0,
+    NULL,
+    NULL,
+    NULL,
     (dump_func)dump_debug_break_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_read_process_memory_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_create_key_reply,
     (dump_func)dump_open_key_reply,
-    (dump_func)0,
-    (dump_func)0,
+    NULL,
+    NULL,
     (dump_func)dump_enum_key_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_get_key_value_reply,
     (dump_func)dump_enum_key_value_reply,
-    (dump_func)0,
-    (dump_func)0,
-    (dump_func)0,
-    (dump_func)0,
-    (dump_func)0,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
     (dump_func)dump_create_timer_reply,
     (dump_func)dump_open_timer_reply,
     (dump_func)dump_set_timer_reply,
@@ -4021,36 +4183,37 @@ static const dump_func reply_dumpers[REQ_NB_REQUESTS] = {
     (dump_func)dump_set_thread_context_reply,
     (dump_func)dump_get_selector_entry_reply,
     (dump_func)dump_add_atom_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_find_atom_reply,
     (dump_func)dump_get_atom_information_reply,
-    (dump_func)0,
-    (dump_func)0,
+    NULL,
+    NULL,
     (dump_func)dump_init_atom_table_reply,
     (dump_func)dump_get_msg_queue_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_set_queue_mask_reply,
     (dump_func)dump_get_queue_status_reply,
     (dump_func)dump_get_process_idle_event_reply,
-    (dump_func)0,
-    (dump_func)0,
-    (dump_func)0,
+    NULL,
+    NULL,
+    NULL,
     (dump_func)dump_get_message_reply,
-    (dump_func)0,
-    (dump_func)0,
+    NULL,
+    NULL,
     (dump_func)dump_get_message_reply_reply,
     (dump_func)dump_set_win_timer_reply,
-    (dump_func)0,
+    NULL,
+    (dump_func)dump_is_window_hung_reply,
     (dump_func)dump_get_serial_info_reply,
-    (dump_func)0,
-    (dump_func)0,
-    (dump_func)0,
+    NULL,
+    NULL,
+    NULL,
     (dump_func)dump_ioctl_reply,
     (dump_func)dump_get_ioctl_result_reply,
     (dump_func)dump_create_named_pipe_reply,
     (dump_func)dump_get_named_pipe_info_reply,
     (dump_func)dump_create_window_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_get_desktop_window_reply,
     (dump_func)dump_set_window_owner_reply,
     (dump_func)dump_get_window_info_reply,
@@ -4063,34 +4226,36 @@ static const dump_func reply_dumpers[REQ_NB_REQUESTS] = {
     (dump_func)dump_set_window_pos_reply,
     (dump_func)dump_get_window_rectangles_reply,
     (dump_func)dump_get_window_text_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_get_windows_offset_reply,
     (dump_func)dump_get_visible_region_reply,
     (dump_func)dump_get_window_region_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_get_update_region_reply,
-    (dump_func)0,
-    (dump_func)0,
-    (dump_func)0,
+    NULL,
+    NULL,
+    NULL,
     (dump_func)dump_remove_window_property_reply,
     (dump_func)dump_get_window_property_reply,
     (dump_func)dump_get_window_properties_reply,
     (dump_func)dump_create_winstation_reply,
     (dump_func)dump_open_winstation_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_get_process_winstation_reply,
-    (dump_func)0,
+    NULL,
+    (dump_func)dump_enum_winstation_reply,
     (dump_func)dump_create_desktop_reply,
     (dump_func)dump_open_desktop_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_get_thread_desktop_reply,
-    (dump_func)0,
+    NULL,
+    (dump_func)dump_enum_desktop_reply,
     (dump_func)dump_set_user_object_info_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_get_thread_input_reply,
     (dump_func)dump_get_last_input_time_reply,
     (dump_func)dump_get_key_state_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_set_foreground_window_reply,
     (dump_func)dump_set_focus_window_reply,
     (dump_func)dump_set_active_window_reply,
@@ -4100,9 +4265,9 @@ static const dump_func reply_dumpers[REQ_NB_REQUESTS] = {
     (dump_func)dump_set_hook_reply,
     (dump_func)dump_remove_hook_reply,
     (dump_func)dump_start_hook_chain_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_get_hook_info_reply,
-    (dump_func)0,
+    (dump_func)dump_create_class_reply,
     (dump_func)dump_destroy_class_reply,
     (dump_func)dump_set_class_info_reply,
     (dump_func)dump_set_clipboard_info_reply,
@@ -4115,30 +4280,35 @@ static const dump_func reply_dumpers[REQ_NB_REQUESTS] = {
     (dump_func)dump_access_check_reply,
     (dump_func)dump_get_token_user_reply,
     (dump_func)dump_get_token_groups_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_get_security_object_reply,
     (dump_func)dump_create_mailslot_reply,
     (dump_func)dump_set_mailslot_info_reply,
     (dump_func)dump_create_directory_reply,
     (dump_func)dump_open_directory_reply,
+    (dump_func)dump_get_directory_entry_reply,
     (dump_func)dump_create_symlink_reply,
     (dump_func)dump_open_symlink_reply,
     (dump_func)dump_query_symlink_reply,
     (dump_func)dump_get_object_info_reply,
+    NULL,
     (dump_func)dump_get_token_impersonation_level_reply,
     (dump_func)dump_allocate_locally_unique_id_reply,
     (dump_func)dump_create_device_manager_reply,
     (dump_func)dump_create_device_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_get_next_device_request_reply,
     (dump_func)dump_make_process_system_reply,
     (dump_func)dump_get_token_statistics_reply,
     (dump_func)dump_create_completion_reply,
     (dump_func)dump_open_completion_reply,
-    (dump_func)0,
+    NULL,
     (dump_func)dump_remove_completion_reply,
     (dump_func)dump_query_completion_reply,
-    (dump_func)0,
+    NULL,
+    NULL,
+    (dump_func)dump_get_window_layered_info_reply,
+    NULL,
 };
 
 static const char * const req_names[REQ_NB_REQUESTS] = {
@@ -4215,10 +4385,11 @@ static const char * const req_names[REQ_NB_REQUESTS] = {
     "create_mapping",
     "open_mapping",
     "get_mapping_info",
+    "get_mapping_committed_range",
+    "add_mapping_committed_range",
     "create_snapshot",
     "next_process",
     "next_thread",
-    "next_module",
     "wait_debug_event",
     "queue_exception_event",
     "get_exception_status",
@@ -4271,6 +4442,7 @@ static const char * const req_names[REQ_NB_REQUESTS] = {
     "get_message_reply",
     "set_win_timer",
     "kill_win_timer",
+    "is_window_hung",
     "get_serial_info",
     "set_serial_info",
     "register_async",
@@ -4310,11 +4482,13 @@ static const char * const req_names[REQ_NB_REQUESTS] = {
     "close_winstation",
     "get_process_winstation",
     "set_process_winstation",
+    "enum_winstation",
     "create_desktop",
     "open_desktop",
     "close_desktop",
     "get_thread_desktop",
     "set_thread_desktop",
+    "enum_desktop",
     "set_user_object_info",
     "attach_thread_input",
     "get_thread_input",
@@ -4351,10 +4525,12 @@ static const char * const req_names[REQ_NB_REQUESTS] = {
     "set_mailslot_info",
     "create_directory",
     "open_directory",
+    "get_directory_entry",
     "create_symlink",
     "open_symlink",
     "query_symlink",
     "get_object_info",
+    "unlink_object",
     "get_token_impersonation_level",
     "allocate_locally_unique_id",
     "create_device_manager",
@@ -4369,6 +4545,9 @@ static const char * const req_names[REQ_NB_REQUESTS] = {
     "remove_completion",
     "query_completion",
     "set_completion_info",
+    "add_fd_completion",
+    "get_window_layered_info",
+    "set_window_layered_info",
 };
 
 static const struct
@@ -4409,6 +4588,7 @@ static const struct
     { "HANDLE_NOT_CLOSABLE",         STATUS_HANDLE_NOT_CLOSABLE },
     { "ILLEGAL_FUNCTION",            STATUS_ILLEGAL_FUNCTION },
     { "INSTANCE_NOT_AVAILABLE",      STATUS_INSTANCE_NOT_AVAILABLE },
+    { "INSUFFICIENT_RESOURCES",      STATUS_INSUFFICIENT_RESOURCES },
     { "INVALID_CID",                 STATUS_INVALID_CID },
     { "INVALID_DEVICE_REQUEST",      STATUS_INVALID_DEVICE_REQUEST },
     { "INVALID_FILE_FOR_SECTION",    STATUS_INVALID_FILE_FOR_SECTION },
@@ -4454,6 +4634,7 @@ static const struct
     { "SECTION_TOO_BIG",             STATUS_SECTION_TOO_BIG },
     { "SEMAPHORE_LIMIT_EXCEEDED",    STATUS_SEMAPHORE_LIMIT_EXCEEDED },
     { "SHARING_VIOLATION",           STATUS_SHARING_VIOLATION },
+    { "SHUTDOWN_IN_PROGRESS",        STATUS_SHUTDOWN_IN_PROGRESS },
     { "SUSPEND_COUNT_EXCEEDED",      STATUS_SUSPEND_COUNT_EXCEEDED },
     { "THREAD_IS_TERMINATING",       STATUS_THREAD_IS_TERMINATING },
     { "TIMEOUT",                     STATUS_TIMEOUT },