[PATCH 2/4] [DbgHelp]: SymEnumerateModules64
Eric Pouech
eric.pouech at wanadoo.fr
Mon Jun 26 14:37:36 CDT 2006
- implemented SymEnumerateModules64
A+
---
dlls/dbghelp/dbghelp.spec | 2 +-
dlls/dbghelp/module.c | 24 ++++++++++++++++++++++++
2 files changed, 25 insertions(+), 1 deletions(-)
diff --git a/dlls/dbghelp/dbghelp.spec b/dlls/dbghelp/dbghelp.spec
index b15aae7..ca688ee 100644
--- a/dlls/dbghelp/dbghelp.spec
+++ b/dlls/dbghelp/dbghelp.spec
@@ -45,7 +45,7 @@
@ stdcall SymEnumTypes(ptr double ptr ptr)
@ stub SymEnumTypesW
@ stdcall SymEnumerateModules(long ptr ptr)
-@ stub SymEnumerateModules64
+@ stdcall SymEnumerateModules64(long ptr ptr)
@ stub SymEnumerateModulesW64
@ stdcall SymEnumerateSymbols(long long ptr ptr)
@ stub SymEnumerateSymbols64
diff --git a/dlls/dbghelp/module.c b/dlls/dbghelp/module.c
index c1c5ded..a08cf12 100644
--- a/dlls/dbghelp/module.c
+++ b/dlls/dbghelp/module.c
@@ -608,6 +608,30 @@ BOOL WINAPI SymEnumerateModules(HANDLE
}
/******************************************************************
+ * SymEnumerateModules64 (DBGHELP.@)
+ *
+ */
+BOOL WINAPI SymEnumerateModules64(HANDLE hProcess,
+ PSYM_ENUMMODULES_CALLBACK64 EnumModulesCallback,
+ PVOID UserContext)
+{
+ struct process* pcs = process_find_by_handle(hProcess);
+ struct module* module;
+
+ if (!pcs) return FALSE;
+
+ for (module = pcs->lmodules; module; module = module->next)
+ {
+ if (!(dbghelp_options & SYMOPT_WINE_WITH_ELF_MODULES) && module->type == DMT_ELF)
+ continue;
+ if (!EnumModulesCallback(module->module.ModuleName,
+ module->module.BaseOfImage, UserContext))
+ break;
+ }
+ return TRUE;
+}
+
+/******************************************************************
* EnumerateLoadedModules (DBGHELP.@)
*
*/
More information about the wine-patches
mailing list