diff --git a/dlls/kernel32/debugger.c b/dlls/kernel32/debugger.c index 91b2cf43ba9..78f282fa478 100644 --- a/dlls/kernel32/debugger.c +++ b/dlls/kernel32/debugger.c @@ -86,7 +86,7 @@ BOOL WINAPI WaitForDebugEvent( event->u.CreateProcessInfo.hFile = wine_server_ptr_handle( data.info.create_process.file ); event->u.CreateProcessInfo.hProcess = wine_server_ptr_handle( data.info.create_process.process ); event->u.CreateProcessInfo.hThread = wine_server_ptr_handle( data.info.create_process.thread ); - event->u.CreateProcessInfo.lpBaseOfImage = data.info.create_process.base; + event->u.CreateProcessInfo.lpBaseOfImage = wine_server_get_ptr( data.info.create_process.base ); event->u.CreateProcessInfo.dwDebugInfoFileOffset = data.info.create_process.dbg_offset; event->u.CreateProcessInfo.nDebugInfoSize = data.info.create_process.dbg_size; event->u.CreateProcessInfo.lpThreadLocalBase = data.info.create_process.teb; @@ -102,14 +102,14 @@ BOOL WINAPI WaitForDebugEvent( break; case LOAD_DLL_DEBUG_EVENT: event->u.LoadDll.hFile = wine_server_ptr_handle( data.info.load_dll.handle ); - event->u.LoadDll.lpBaseOfDll = data.info.load_dll.base; + event->u.LoadDll.lpBaseOfDll = wine_server_get_ptr( data.info.load_dll.base ); event->u.LoadDll.dwDebugInfoFileOffset = data.info.load_dll.dbg_offset; event->u.LoadDll.nDebugInfoSize = data.info.load_dll.dbg_size; event->u.LoadDll.lpImageName = data.info.load_dll.name; event->u.LoadDll.fUnicode = data.info.load_dll.unicode; break; case UNLOAD_DLL_DEBUG_EVENT: - event->u.UnloadDll.lpBaseOfDll = data.info.unload_dll.base; + event->u.UnloadDll.lpBaseOfDll = wine_server_get_ptr( data.info.unload_dll.base ); break; case OUTPUT_DEBUG_STRING_EVENT: event->u.DebugString.lpDebugStringData = data.info.output_string.string; diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c index aa103ac53f7..f07a9740ac2 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -1447,7 +1447,7 @@ static void load_builtin_callback( void *module, const char *filename ) SERVER_START_REQ( load_dll ) { req->handle = 0; - req->base = module; + req->base = wine_server_client_ptr( module ); req->size = nt->OptionalHeader.SizeOfImage; req->dbg_offset = nt->FileHeader.PointerToSymbolTable; req->dbg_size = nt->FileHeader.NumberOfSymbols; @@ -1529,7 +1529,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, HANDLE file, SERVER_START_REQ( load_dll ) { req->handle = wine_server_obj_handle( file ); - req->base = module; + req->base = wine_server_client_ptr( module ); req->size = nt->OptionalHeader.SizeOfImage; req->dbg_offset = nt->FileHeader.PointerToSymbolTable; req->dbg_size = nt->FileHeader.NumberOfSymbols; @@ -2264,7 +2264,7 @@ static void free_modref( WINE_MODREF *wm ) SERVER_START_REQ( unload_dll ) { - req->base = wm->ldr.BaseAddress; + req->base = wine_server_client_ptr( wm->ldr.BaseAddress ); wine_server_call( req ); } SERVER_END_REQ; diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c index 6ba1433f43b..244044f1f5b 100644 --- a/dlls/ntdll/process.c +++ b/dlls/ntdll/process.c @@ -315,7 +315,7 @@ NTSTATUS WINAPI NtQueryInformationProcess( UNICODE_STRING *image_file_name_str = ProcessInformation; req->handle = wine_server_obj_handle( ProcessHandle ); - req->base_address = NULL; /* main module */ + req->base_address = 0; /* main module */ wine_server_set_reply( req, image_file_name_str ? image_file_name_str + 1 : NULL, ProcessInformationLength > sizeof(UNICODE_STRING) ? ProcessInformationLength - sizeof(UNICODE_STRING) : 0 ); ret = wine_server_call( req ); diff --git a/dlls/ntdll/server.c b/dlls/ntdll/server.c index fd154ff8f2c..8345a9381eb 100644 --- a/dlls/ntdll/server.c +++ b/dlls/ntdll/server.c @@ -986,7 +986,7 @@ NTSTATUS server_init_process_done(void) /* Signal the parent process to continue */ SERVER_START_REQ( init_process_done ) { - req->module = peb->ImageBaseAddress; + req->module = wine_server_client_ptr( peb->ImageBaseAddress ); req->entry = (char *)peb->ImageBaseAddress + nt->OptionalHeader.AddressOfEntryPoint; req->gui = (nt->OptionalHeader.Subsystem != IMAGE_SUBSYSTEM_WINDOWS_CUI); status = wine_server_call( req ); diff --git a/dlls/user32/class.c b/dlls/user32/class.c index 418c86e6526..478ff4f604b 100644 --- a/dlls/user32/class.c +++ b/dlls/user32/class.c @@ -146,7 +146,7 @@ static BOOL set_server_info( HWND hwnd, INT offset, LONG_PTR newval, UINT size ) break; case GCLP_HMODULE: req->flags = SET_CLASS_INSTANCE; - req->instance = (void *)newval; + req->instance = wine_server_client_ptr( (void *)newval ); break; default: assert( offset >= 0 ); @@ -275,7 +275,7 @@ void CLASS_FreeModuleClasses( HMODULE16 hModule ) SERVER_START_REQ( destroy_class ) { req->atom = class->atomName; - req->instance = class->hInstance; + req->instance = wine_server_client_ptr( class->hInstance ); ret = !wine_server_call_err( req ); } SERVER_END_REQ; @@ -354,7 +354,7 @@ static CLASS *CLASS_RegisterClass( LPCWSTR name, HINSTANCE hInstance, BOOL local { req->local = local; req->style = style; - req->instance = hInstance; + req->instance = wine_server_client_ptr( hInstance ); req->extra = classExtra; req->win_extra = winExtra; req->client_ptr = classPtr; @@ -625,7 +625,7 @@ BOOL WINAPI UnregisterClassW( LPCWSTR className, HINSTANCE hInstance ) SERVER_START_REQ( destroy_class ) { - req->instance = hInstance; + req->instance = wine_server_client_ptr( hInstance ); if (!(req->atom = get_int_atom_value(className)) && className) wine_server_add_data( req, className, strlenW(className) * sizeof(WCHAR) ); if (!wine_server_call_err( req )) classPtr = reply->client_ptr; @@ -718,7 +718,7 @@ static ULONG_PTR CLASS_GetClassLong( HWND hwnd, INT offset, UINT size, retvalue = reply->old_extra; break; case GCLP_HMODULE: - retvalue = (ULONG_PTR)reply->old_instance; + retvalue = (ULONG_PTR)wine_server_get_ptr( reply->old_instance ); break; case GCW_ATOM: retvalue = reply->old_atom; diff --git a/dlls/user32/win.c b/dlls/user32/win.c index 34491fe319a..de10de67ecb 100644 --- a/dlls/user32/win.c +++ b/dlls/user32/win.c @@ -112,7 +112,7 @@ static WND *create_window_handle( HWND parent, HWND owner, LPCWSTR name, { req->parent = wine_server_user_handle( parent ); req->owner = wine_server_user_handle( owner ); - req->instance = instance; + req->instance = wine_server_client_ptr( instance ); if (!(req->atom = get_int_atom_value( name )) && name) wine_server_add_data( req, name, strlenW(name)*sizeof(WCHAR) ); if (!wine_server_call_err( req )) @@ -1119,7 +1119,7 @@ static HWND WIN_CreateWindowEx( CREATESTRUCTA *cs, LPCWSTR className, UINT flags req->flags = SET_WIN_STYLE | SET_WIN_EXSTYLE | SET_WIN_INSTANCE | SET_WIN_UNICODE; req->style = wndPtr->dwStyle; req->ex_style = wndPtr->dwExStyle; - req->instance = (void *)wndPtr->hInstance; + req->instance = wine_server_client_ptr( wndPtr->hInstance ); req->is_unicode = (wndPtr->flags & WIN_ISUNICODE) != 0; req->extra_offset = -1; wine_server_call( req ); @@ -1885,7 +1885,7 @@ static LONG_PTR WIN_GetWindowLong( HWND hwnd, INT offset, UINT size, BOOL unicod case GWL_STYLE: retvalue = reply->old_style; break; case GWL_EXSTYLE: retvalue = reply->old_ex_style; break; case GWLP_ID: retvalue = reply->old_id; break; - case GWLP_HINSTANCE: retvalue = (ULONG_PTR)reply->old_instance; break; + case GWLP_HINSTANCE: retvalue = (ULONG_PTR)wine_server_get_ptr( reply->old_instance ); break; case GWLP_USERDATA: retvalue = reply->old_user_data; break; default: if (offset >= 0) retvalue = get_win_data( &reply->old_extra_value, size ); @@ -2091,7 +2091,7 @@ LONG_PTR WIN_SetWindowLong( HWND hwnd, INT offset, UINT size, LONG_PTR newval, B break; case GWLP_HINSTANCE: req->flags = SET_WIN_INSTANCE; - req->instance = (void *)newval; + req->instance = wine_server_client_ptr( (void *)newval ); break; case GWLP_WNDPROC: req->flags = SET_WIN_UNICODE; @@ -2125,7 +2125,7 @@ LONG_PTR WIN_SetWindowLong( HWND hwnd, INT offset, UINT size, LONG_PTR newval, B break; case GWLP_HINSTANCE: wndPtr->hInstance = (HINSTANCE)newval; - retval = (ULONG_PTR)reply->old_instance; + retval = (ULONG_PTR)wine_server_get_ptr( reply->old_instance ); break; case GWLP_WNDPROC: break; diff --git a/include/wine/server.h b/include/wine/server.h index 3dab6001ece..d573d1f7ad4 100644 --- a/include/wine/server.h +++ b/include/wine/server.h @@ -108,6 +108,18 @@ static inline HANDLE wine_server_ptr_handle( obj_handle_t handle ) return (HANDLE)(INT_PTR)(int)handle; } +/* convert a client pointer to a server client_ptr_t */ +static inline client_ptr_t wine_server_client_ptr( const void *ptr ) +{ + return (client_ptr_t)(ULONG_PTR)ptr; +} + +/* convert a server client_ptr_t to a real pointer */ +static inline void *wine_server_get_ptr( client_ptr_t ptr ) +{ + return (void *)(ULONG_PTR)ptr; +} + /* macros for server requests */ diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h index 98f9d99483e..766cccec311 100644 --- a/include/wine/server_protocol.h +++ b/include/wine/server_protocol.h @@ -26,7 +26,7 @@ typedef unsigned __int64 lparam_t; typedef unsigned __int64 apc_param_t; typedef unsigned __int64 mem_size_t; typedef unsigned __int64 file_pos_t; -typedef void *client_ptr_t; +typedef unsigned __int64 client_ptr_t; typedef client_ptr_t mod_handle_t; struct request_header @@ -532,9 +532,9 @@ struct get_startup_info_reply struct init_process_done_request { struct request_header __header; + int gui; mod_handle_t module; void* entry; - int gui; }; struct init_process_done_reply { @@ -2848,7 +2848,7 @@ struct get_window_info_reply process_id_t pid; thread_id_t tid; atom_t atom; - int is_unicode; + short int is_unicode; }; @@ -2856,12 +2856,12 @@ struct get_window_info_reply struct set_window_info_request { struct request_header __header; - unsigned int flags; + unsigned short flags; + short int is_unicode; user_handle_t handle; unsigned int style; unsigned int ex_style; unsigned int id; - int is_unicode; mod_handle_t instance; lparam_t user_data; int extra_offset; @@ -2873,10 +2873,10 @@ struct set_window_info_reply struct reply_header __header; unsigned int old_style; unsigned int old_ex_style; - unsigned int old_id; mod_handle_t old_instance; lparam_t old_user_data; lparam_t old_extra_value; + unsigned int old_id; }; #define SET_WIN_STYLE 0x01 #define SET_WIN_EXSTYLE 0x02 @@ -5052,6 +5052,6 @@ union generic_reply struct set_window_layered_info_reply set_window_layered_info_reply; }; -#define SERVER_PROTOCOL_VERSION 355 +#define SERVER_PROTOCOL_VERSION 356 #endif /* __WINE_WINE_SERVER_PROTOCOL_H */ diff --git a/server/protocol.def b/server/protocol.def index 501eca8c170..c2478f14a61 100644 --- a/server/protocol.def +++ b/server/protocol.def @@ -42,7 +42,7 @@ typedef unsigned __int64 lparam_t; typedef unsigned __int64 apc_param_t; typedef unsigned __int64 mem_size_t; typedef unsigned __int64 file_pos_t; -typedef void *client_ptr_t; +typedef unsigned __int64 client_ptr_t; typedef client_ptr_t mod_handle_t; struct request_header @@ -526,9 +526,9 @@ typedef union /* Signal the end of the process initialization */ @REQ(init_process_done) + int gui; /* is it a GUI process? */ mod_handle_t module; /* main module base address */ void* entry; /* process entry point */ - int gui; /* is it a GUI process? */ @END @@ -2097,18 +2097,18 @@ enum message_type process_id_t pid; /* process owning the window */ thread_id_t tid; /* thread owning the window */ atom_t atom; /* class atom */ - int is_unicode; /* ANSI or unicode */ + short int is_unicode; /* ANSI or unicode */ @END /* Set some information in a window */ @REQ(set_window_info) - unsigned int flags; /* flags for fields to set (see below) */ + unsigned short flags; /* flags for fields to set (see below) */ + short int is_unicode; /* ANSI or unicode */ user_handle_t handle; /* handle to the window */ unsigned int style; /* window style */ unsigned int ex_style; /* window extended style */ unsigned int id; /* window id */ - int is_unicode; /* ANSI or unicode */ mod_handle_t instance; /* creator instance */ lparam_t user_data; /* user-specific data */ int extra_offset; /* offset to set in extra bytes */ @@ -2117,10 +2117,10 @@ enum message_type @REPLY unsigned int old_style; /* old window style */ unsigned int old_ex_style; /* old window extended style */ - unsigned int old_id; /* old window id */ mod_handle_t old_instance; /* old creator instance */ lparam_t old_user_data; /* old user-specific data */ lparam_t old_extra_value; /* old value in extra bytes */ + unsigned int old_id; /* old window id */ @END #define SET_WIN_STYLE 0x01 #define SET_WIN_EXSTYLE 0x02 diff --git a/server/trace.c b/server/trace.c index 5d392930ff3..8ca23f0779a 100644 --- a/server/trace.c +++ b/server/trace.c @@ -455,10 +455,11 @@ static void dump_varargs_debug_event( data_size_t size ) event->info.create_thread.start ); break; case CREATE_PROCESS_DEBUG_EVENT: - fprintf( stderr, "{create_process,file=%04x,process=%04x,thread=%04x,base=%p,offset=%d," - "size=%d,teb=%p,start=%p,name=%p,unicode=%d}", + fprintf( stderr, "{create_process,file=%04x,process=%04x,thread=%04x,base=", event->info.create_process.file, event->info.create_process.process, - event->info.create_process.thread, event->info.create_process.base, + event->info.create_process.thread ); + dump_uint64( &event->info.create_process.base ); + fprintf( stderr, ",offset=%d,size=%d,teb=%p,start=%p,name=%p,unicode=%d}", event->info.create_process.dbg_offset, event->info.create_process.dbg_size, event->info.create_process.teb, event->info.create_process.start, event->info.create_process.name, event->info.create_process.unicode ); @@ -470,13 +471,16 @@ 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=%04x,base=%p,offset=%d,size=%d,name=%p,unicode=%d}", - event->info.load_dll.handle, event->info.load_dll.base, + fprintf( stderr, "{load_dll,file=%04x,base", event->info.load_dll.handle ); + dump_uint64( &event->info.load_dll.base ); + fprintf( stderr, ",offset=%d,size=%d,name=%p,unicode=%d}", event->info.load_dll.dbg_offset, event->info.load_dll.dbg_size, event->info.load_dll.name, event->info.load_dll.unicode ); break; case UNLOAD_DLL_DEBUG_EVENT: - fprintf( stderr, "{unload_dll,base=%p}", event->info.unload_dll.base ); + fputs( "{unload_dll,base=", stderr ); + dump_uint64( &event->info.unload_dll.base ); + fputc( '}', stderr ); break; case OUTPUT_DEBUG_STRING_EVENT: fprintf( stderr, "{output_string,data=%p,unicode=%d,len=%d}", @@ -911,9 +915,11 @@ static void dump_get_startup_info_reply( const struct get_startup_info_reply *re static void dump_init_process_done_request( const struct init_process_done_request *req ) { - fprintf( stderr, " module=%p,", req->module ); - fprintf( stderr, " entry=%p,", req->entry ); - fprintf( stderr, " gui=%d", req->gui ); + fprintf( stderr, " gui=%d,", req->gui ); + fprintf( stderr, " module=" ); + dump_uint64( &req->module ); + fprintf( stderr, "," ); + fprintf( stderr, " entry=%p", req->entry ); } static void dump_init_thread_request( const struct init_thread_request *req ) @@ -1026,7 +1032,8 @@ static void dump_set_thread_info_request( const struct set_thread_info_request * static void dump_get_dll_info_request( const struct get_dll_info_request *req ) { fprintf( stderr, " handle=%04x,", req->handle ); - fprintf( stderr, " base_address=%p", req->base_address ); + fprintf( stderr, " base_address=" ); + dump_uint64( &req->base_address ); } static void dump_get_dll_info_reply( const struct get_dll_info_reply *req ) @@ -1061,7 +1068,9 @@ 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=%04x,", req->handle ); - fprintf( stderr, " base=%p,", req->base ); + fprintf( stderr, " base=" ); + dump_uint64( &req->base ); + fprintf( stderr, "," ); fprintf( stderr, " name=%p,", req->name ); fprintf( stderr, " size=%u,", req->size ); fprintf( stderr, " dbg_offset=%d,", req->dbg_offset ); @@ -1072,7 +1081,8 @@ static void dump_load_dll_request( const struct load_dll_request *req ) static void dump_unload_dll_request( const struct unload_dll_request *req ) { - fprintf( stderr, " base=%p", req->base ); + fprintf( stderr, " base=" ); + dump_uint64( &req->base ); } static void dump_queue_apc_request( const struct queue_apc_request *req ) @@ -2591,7 +2601,9 @@ static void dump_create_window_request( const struct create_window_request *req 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=" ); + dump_uint64( &req->instance ); + fprintf( stderr, "," ); fprintf( stderr, " class=" ); dump_varargs_unicode_str( cur_size ); } @@ -2650,13 +2662,15 @@ 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, " flags=%04x,", req->flags ); + fprintf( stderr, " is_unicode=%d,", req->is_unicode ); 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 ); - fprintf( stderr, " is_unicode=%d,", req->is_unicode ); - fprintf( stderr, " instance=%p,", req->instance ); + fprintf( stderr, " instance=" ); + dump_uint64( &req->instance ); + fprintf( stderr, "," ); fprintf( stderr, " user_data=" ); dump_uint64( &req->user_data ); fprintf( stderr, "," ); @@ -2670,13 +2684,16 @@ static void dump_set_window_info_reply( const struct set_window_info_reply *req { fprintf( stderr, " old_style=%08x,", req->old_style ); fprintf( stderr, " old_ex_style=%08x,", req->old_ex_style ); - fprintf( stderr, " old_id=%08x,", req->old_id ); - fprintf( stderr, " old_instance=%p,", req->old_instance ); + fprintf( stderr, " old_instance=" ); + dump_uint64( &req->old_instance ); + fprintf( stderr, "," ); fprintf( stderr, " old_user_data=" ); dump_uint64( &req->old_user_data ); fprintf( stderr, "," ); fprintf( stderr, " old_extra_value=" ); dump_uint64( &req->old_extra_value ); + fprintf( stderr, "," ); + fprintf( stderr, " old_id=%08x", req->old_id ); } static void dump_set_parent_request( const struct set_parent_request *req ) @@ -3296,7 +3313,9 @@ static void dump_create_class_request( const struct create_class_request *req ) fprintf( stderr, " local=%d,", req->local ); fprintf( stderr, " atom=%04x,", req->atom ); fprintf( stderr, " style=%08x,", req->style ); - fprintf( stderr, " instance=%p,", req->instance ); + fprintf( stderr, " instance=" ); + dump_uint64( &req->instance ); + fprintf( stderr, "," ); fprintf( stderr, " extra=%d,", req->extra ); fprintf( stderr, " win_extra=%d,", req->win_extra ); fprintf( stderr, " client_ptr=%p,", req->client_ptr ); @@ -3312,7 +3331,9 @@ static void dump_create_class_reply( const struct create_class_reply *req ) 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=" ); + dump_uint64( &req->instance ); + fprintf( stderr, "," ); fprintf( stderr, " name=" ); dump_varargs_unicode_str( cur_size ); } @@ -3329,7 +3350,9 @@ static void dump_set_class_info_request( const struct set_class_info_request *re fprintf( stderr, " atom=%04x,", req->atom ); fprintf( stderr, " style=%08x,", req->style ); fprintf( stderr, " win_extra=%d,", req->win_extra ); - fprintf( stderr, " instance=%p,", req->instance ); + fprintf( stderr, " instance=" ); + dump_uint64( &req->instance ); + fprintf( stderr, "," ); fprintf( stderr, " extra_offset=%d,", req->extra_offset ); fprintf( stderr, " extra_size=%u,", req->extra_size ); fprintf( stderr, " extra_value=" ); @@ -3342,7 +3365,9 @@ static void dump_set_class_info_reply( const struct set_class_info_reply *req ) fprintf( stderr, " old_style=%08x,", req->old_style ); fprintf( stderr, " old_extra=%d,", req->old_extra ); fprintf( stderr, " old_win_extra=%d,", req->old_win_extra ); - fprintf( stderr, " old_instance=%p,", req->old_instance ); + fprintf( stderr, " old_instance=" ); + dump_uint64( &req->old_instance ); + fprintf( stderr, "," ); fprintf( stderr, " old_extra_value=" ); dump_uint64( &req->old_extra_value ); } diff --git a/server/window.c b/server/window.c index 1922baa1342..a24b2d64a97 100644 --- a/server/window.c +++ b/server/window.c @@ -480,7 +480,7 @@ static struct window *create_window( struct window *parent, struct window *owner win->style = 0; win->ex_style = 0; win->id = 0; - win->instance = NULL; + win->instance = 0; win->is_unicode = 1; win->is_linked = 0; win->is_layered = 0; diff --git a/tools/make_requests b/tools/make_requests index d3886952f67..82ffff02a76 100755 --- a/tools/make_requests +++ b/tools/make_requests @@ -36,7 +36,7 @@ my %formats = "user_handle_t" => [ 4, 4, "%08x" ], "process_id_t" => [ 4, 4, "%04x" ], "thread_id_t" => [ 4, 4, "%04x" ], - "mod_handle_t" => [ 4, 4, "%p" ], + "mod_handle_t" => [ 8, 8, "&dump_uint64" ], "lparam_t" => [ 8, 8, "&dump_uint64" ], "apc_param_t" => [ 8, 8, "&dump_uint64" ], "file_pos_t" => [ 8, 8, "&dump_uint64" ],