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

Alexandre Julliard julliard at wine.codeweavers.com
Tue Feb 21 13:13:11 CST 2006


Module: wine
Branch: refs/heads/master
Commit: e27358ea5c86ec2ab0cae53af92fa561e4acb0d3
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=e27358ea5c86ec2ab0cae53af92fa561e4acb0d3

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Feb 21 20:08:19 2006 +0100

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

---

 dlls/ntdll/loader.c            |    8 +++-----
 include/wine/server_protocol.h |    5 +----
 server/process.c               |   15 ++-------------
 server/protocol.def            |    3 ---
 server/trace.c                 |    6 +-----
 5 files changed, 7 insertions(+), 30 deletions(-)

diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 547eb51..aa23017 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -2066,16 +2066,14 @@ void WINAPI LdrInitializeThunk( ULONG un
     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;
diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h
index 9ba7cce..1de4531 100644
--- a/include/wine/server_protocol.h
+++ b/include/wine/server_protocol.h
@@ -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 */
diff --git a/server/process.c b/server/process.c
index 8c71334..cc88c5f 100644
--- a/server/process.c
+++ b/server/process.c
@@ -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 */
diff --git a/server/protocol.def b/server/protocol.def
index 6d7f527..b489b26 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -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
 
 
diff --git a/server/trace.c b/server/trace.c
index d1c702e..87390f1 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -638,12 +638,8 @@ static void dump_get_startup_info_reply(
 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 )




More information about the wine-cvs mailing list