Jacek Caban : kernel32: Moved K32EnumProcessModules to module.c.

Alexandre Julliard julliard at winehq.org
Thu May 12 13:57:50 CDT 2011


Module: wine
Branch: master
Commit: 8379893f967edfd35a890eabd73b9b7e1d736afe
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8379893f967edfd35a890eabd73b9b7e1d736afe

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu May 12 12:19:52 2011 +0000

kernel32: Moved K32EnumProcessModules to module.c.

---

 dlls/kernel32/module.c  |   82 +++++++++++++++++++++++++++++++++++++++++++++++
 dlls/kernel32/process.c |   82 -----------------------------------------------
 2 files changed, 82 insertions(+), 82 deletions(-)

diff --git a/dlls/kernel32/module.c b/dlls/kernel32/module.c
index d94850f..347d4aa 100644
--- a/dlls/kernel32/module.c
+++ b/dlls/kernel32/module.c
@@ -1073,6 +1073,88 @@ FARPROC WINAPI DelayLoadFailureHook( LPCSTR name, LPCSTR function )
     return NULL;
 }
 
+typedef struct {
+    HANDLE process;
+    PLIST_ENTRY head, current;
+    LDR_MODULE ldr_module;
+} MODULE_ITERATOR;
+
+static BOOL init_module_iterator(MODULE_ITERATOR *iter, HANDLE process)
+{
+    PROCESS_BASIC_INFORMATION pbi;
+    PPEB_LDR_DATA ldr_data;
+    NTSTATUS status;
+
+    /* Get address of PEB */
+    status = NtQueryInformationProcess(process, ProcessBasicInformation,
+                                       &pbi, sizeof(pbi), NULL);
+    if (status != STATUS_SUCCESS)
+    {
+        SetLastError(RtlNtStatusToDosError(status));
+        return FALSE;
+    }
+
+    /* Read address of LdrData from PEB */
+    if (!ReadProcessMemory(process, &pbi.PebBaseAddress->LdrData,
+                           &ldr_data, sizeof(ldr_data), NULL))
+        return FALSE;
+
+    /* Read address of first module from LdrData */
+    if (!ReadProcessMemory(process,
+                           &ldr_data->InLoadOrderModuleList.Flink,
+                           &iter->current, sizeof(iter->current), NULL))
+        return FALSE;
+
+    iter->head = &ldr_data->InLoadOrderModuleList;
+    iter->process = process;
+
+    return TRUE;
+}
+
+static int module_iterator_next(MODULE_ITERATOR *iter)
+{
+    if (iter->current == iter->head)
+        return 0;
+
+    if (!ReadProcessMemory(iter->process,
+                           CONTAINING_RECORD(iter->current, LDR_MODULE, InLoadOrderModuleList),
+                           &iter->ldr_module, sizeof(iter->ldr_module), NULL))
+         return -1;
+
+    iter->current = iter->ldr_module.InLoadOrderModuleList.Flink;
+    return 1;
+}
+
+/***********************************************************************
+ *           K32EnumProcessModules (KERNEL32.@)
+ *
+ * NOTES
+ *  Returned list is in load order.
+ */
+BOOL WINAPI K32EnumProcessModules(HANDLE process, HMODULE *lphModule,
+                                  DWORD cb, DWORD *needed)
+{
+    MODULE_ITERATOR iter;
+    INT ret;
+
+    if (!init_module_iterator(&iter, process))
+        return FALSE;
+
+    *needed = 0;
+
+    while ((ret = module_iterator_next(&iter)) > 0)
+    {
+        if (cb >= sizeof(HMODULE))
+        {
+            *lphModule++ = iter.ldr_module.BaseAddress;
+            cb -= sizeof(HMODULE);
+        }
+        *needed += sizeof(HMODULE);
+    }
+
+    return ret == 0;
+}
+
 
 #ifdef __i386__
 
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index 2ec5905..f043b87 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -3502,88 +3502,6 @@ BOOL WINAPI K32EnumProcesses(DWORD *lpdwProcessIDs, DWORD cb, DWORD *lpcbUsed)
     return TRUE;
 }
 
-typedef struct {
-    HANDLE process;
-    PLIST_ENTRY head, current;
-    LDR_MODULE ldr_module;
-} MODULE_ITERATOR;
-
-static BOOL init_module_iterator(MODULE_ITERATOR *iter, HANDLE process)
-{
-    PROCESS_BASIC_INFORMATION pbi;
-    PPEB_LDR_DATA ldr_data;
-    NTSTATUS status;
-
-    /* Get address of PEB */
-    status = NtQueryInformationProcess(process, ProcessBasicInformation,
-                                       &pbi, sizeof(pbi), NULL);
-    if (status != STATUS_SUCCESS)
-    {
-        SetLastError(RtlNtStatusToDosError(status));
-        return FALSE;
-    }
-
-    /* Read address of LdrData from PEB */
-    if (!ReadProcessMemory(process, &pbi.PebBaseAddress->LdrData,
-                           &ldr_data, sizeof(ldr_data), NULL))
-        return FALSE;
-
-    /* Read address of first module from LdrData */
-    if (!ReadProcessMemory(process,
-                           &ldr_data->InLoadOrderModuleList.Flink,
-                           &iter->current, sizeof(iter->current), NULL))
-        return FALSE;
-
-    iter->head = &ldr_data->InLoadOrderModuleList;
-    iter->process = process;
-
-    return TRUE;
-}
-
-static int module_iterator_next(MODULE_ITERATOR *iter)
-{
-    if (iter->current == iter->head)
-        return 0;
-
-    if (!ReadProcessMemory(iter->process,
-                           CONTAINING_RECORD(iter->current, LDR_MODULE, InLoadOrderModuleList),
-                           &iter->ldr_module, sizeof(iter->ldr_module), NULL))
-         return -1;
-
-    iter->current = iter->ldr_module.InLoadOrderModuleList.Flink;
-    return 1;
-}
-
-/***********************************************************************
- *           K32EnumProcessModules (KERNEL32.@)
- *
- * NOTES
- *  Returned list is in load order.
- */
-BOOL WINAPI K32EnumProcessModules(HANDLE process, HMODULE *lphModule,
-                                  DWORD cb, DWORD *needed)
-{
-    MODULE_ITERATOR iter;
-    INT ret;
-
-    if (!init_module_iterator(&iter, process))
-        return FALSE;
-
-    *needed = 0;
-
-    while ((ret = module_iterator_next(&iter)) > 0)
-    {
-        if (cb >= sizeof(HMODULE))
-        {
-            *lphModule++ = iter.ldr_module.BaseAddress;
-            cb -= sizeof(HMODULE);
-        }
-        *needed += sizeof(HMODULE);
-    }
-
-    return ret == 0;
-}
-
 /***********************************************************************
  *           K32QueryWorkingSet (KERNEL32.@)
  */




More information about the wine-cvs mailing list