- no longer depend on toolhelp definitions for generating snapshots
- added get_dll_info request

diff --git a/server/process.c b/server/process.c
index a590b4c..af00451 100644
--- a/server/process.c
+++ b/server/process.c
@@ -1058,6 +1058,35 @@
     process_unload_dll( current->process, req->base );
 }
 
+/* retrieve information about a module in a process */
+DECL_HANDLER(get_dll_info)
+{
+    struct process *process;
+
+    if ((process = get_process_from_handle( req->handle, PROCESS_QUERY_INFORMATION )))
+    {
+        struct process_dll *dll;
+
+        for (dll = &process->exe; dll; dll = dll->next)
+        {
+            if (dll->base == req->base_address)
+            {
+                reply->size = dll->size;
+                reply->entry_point = 0; /* FIXME */
+                if (dll->filename)
+                {
+                    size_t len = min( dll->namelen, get_reply_max_size() );
+                    set_reply_data( dll->filename, len );
+                }
+                break;
+            }
+        }
+        if (!dll)
+            set_error(STATUS_DLL_NOT_FOUND);
+        release_object( process );
+    }
+}
+
 /* wait for a process to start waiting on input */
 /* FIXME: only returns event for now, wait is done in the client */
 DECL_HANDLER(wait_input_idle)