server: Remove no longer needed fields in the init_process_done request.

This commit is contained in:
Alexandre Julliard 2006-02-21 20:08:19 +01:00
parent 6976e2016d
commit e27358ea5c
5 changed files with 7 additions and 30 deletions

View File

@ -2066,16 +2066,14 @@ void WINAPI LdrInitializeThunk( ULONG unknown1, ULONG unknown2, ULONG unknown3,
SERVER_START_REQ( init_process_done )
{
req->module = peb->ImageBaseAddress;
req->module_size = wm->ldr.SizeOfImage;
req->entry = (char *)peb->ImageBaseAddress + nt->OptionalHeader.AddressOfEntryPoint;
/* API requires a double indirection */
req->name = &wm->ldr.FullDllName.Buffer;
req->gui = (nt->OptionalHeader.Subsystem != IMAGE_SUBSYSTEM_WINDOWS_CUI);
wine_server_add_data( req, wm->ldr.FullDllName.Buffer, wm->ldr.FullDllName.Length );
wine_server_call( req );
status = wine_server_call( req );
}
SERVER_END_REQ;
if (status != STATUS_SUCCESS) goto error;
RtlEnterCriticalSection( &loader_section );
load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;

View File

@ -261,11 +261,8 @@ struct init_process_done_request
{
struct request_header __header;
void* module;
size_t module_size;
void* entry;
void* name;
int gui;
/* VARARG(filename,unicode_str); */
};
struct init_process_done_reply
{
@ -4364,6 +4361,6 @@ union generic_reply
struct query_symlink_reply query_symlink_reply;
};
#define SERVER_PROTOCOL_VERSION 227
#define SERVER_PROTOCOL_VERSION 228
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */

View File

@ -968,21 +968,10 @@ DECL_HANDLER(init_process_done)
fatal_protocol_error( current, "init_process_done: called twice\n" );
return;
}
if (!req->module)
{
fatal_protocol_error( current, "init_process_done: module base address cannot be 0\n" );
return;
}
/* check if main exe has been registered as a dll already */
if (!(dll = find_process_dll( process, req->module )))
{
if (!(dll = process_load_dll( process, NULL, req->module,
get_req_data(), get_req_data_size() ))) return;
dll->size = req->module_size;
dll->dbg_offset = 0;
dll->dbg_size = 0;
dll->name = req->name;
set_error( STATUS_DLL_NOT_FOUND );
return;
}
/* main exe is the first in the dll list */

View File

@ -255,11 +255,8 @@ struct security_descriptor
/* Signal the end of the process initialization */
@REQ(init_process_done)
void* module; /* main module base address */
size_t module_size; /* main module size */
void* entry; /* process entry point */
void* name; /* ptr to ptr to name (in process addr space) */
int gui; /* is it a GUI process? */
VARARG(filename,unicode_str); /* file name of main exe */
@END

View File

@ -638,12 +638,8 @@ 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, " module_size=%lu,", (unsigned long)req->module_size );
fprintf( stderr, " entry=%p,", req->entry );
fprintf( stderr, " name=%p,", req->name );
fprintf( stderr, " gui=%d,", req->gui );
fprintf( stderr, " filename=" );
dump_varargs_unicode_str( cur_size );
fprintf( stderr, " gui=%d", req->gui );
}
static void dump_init_thread_request( const struct init_thread_request *req )