I manually tested on Win10 that GetProcAddress() for both ntdll and dbghelp functions end up in imagehlp.dll module.
From: Paul Gofman pgofman@codeweavers.com
--- dlls/imagehlp/imagehlp.spec | 148 ++++++++++++++++++------------------ 1 file changed, 74 insertions(+), 74 deletions(-)
diff --git a/dlls/imagehlp/imagehlp.spec b/dlls/imagehlp/imagehlp.spec index 744b339caf8..7d934dcc96e 100644 --- a/dlls/imagehlp/imagehlp.spec +++ b/dlls/imagehlp/imagehlp.spec @@ -1,35 +1,35 @@ @ stdcall BindImage(str str str) @ stdcall BindImageEx(long str str str ptr) @ stdcall CheckSumMappedFile(ptr long ptr ptr) -@ stdcall EnumerateLoadedModules64(long ptr ptr) dbghelp.EnumerateLoadedModules64 -@ stdcall EnumerateLoadedModules(long ptr ptr) dbghelp.EnumerateLoadedModules -@ stdcall FindDebugInfoFile(str str ptr) dbghelp.FindDebugInfoFile -@ stdcall FindDebugInfoFileEx(str str ptr ptr ptr) dbghelp.FindDebugInfoFileEx -@ stdcall FindExecutableImage(str str str) dbghelp.FindExecutableImage -@ stdcall FindExecutableImageEx(str str ptr ptr ptr) dbghelp.FindExecutableImageEx +@ stdcall -import EnumerateLoadedModules64(long ptr ptr) +@ stdcall -import EnumerateLoadedModules(long ptr ptr) +@ stdcall -import FindDebugInfoFile(str str ptr) +@ stdcall -import FindDebugInfoFileEx(str str ptr ptr ptr) +@ stdcall -import FindExecutableImage(str str str) +@ stdcall -import FindExecutableImageEx(str str ptr ptr ptr) @ stub FindFileInPath @ stub FindFileInSearchPath @ stdcall GetImageConfigInformation(ptr ptr) @ stdcall GetImageUnusedHeaderBytes(ptr ptr) -@ stdcall GetTimestampForLoadedLibrary(long) dbghelp.GetTimestampForLoadedLibrary +@ stdcall -import GetTimestampForLoadedLibrary(long) @ stdcall ImageAddCertificate(long ptr ptr) -@ stdcall ImageDirectoryEntryToData(ptr long long ptr) dbghelp.ImageDirectoryEntryToData -@ stdcall ImageDirectoryEntryToDataEx(ptr long long ptr ptr) dbghelp.ImageDirectoryEntryToDataEx +@ stdcall -import ImageDirectoryEntryToData(ptr long long ptr) +@ stdcall -import ImageDirectoryEntryToDataEx(ptr long long ptr ptr) @ stdcall ImageEnumerateCertificates(long long ptr ptr long) @ stdcall ImageGetCertificateData(long long ptr ptr) @ stdcall ImageGetCertificateHeader(long long ptr) @ stdcall ImageGetDigestStream(long long ptr long) @ stdcall ImageLoad(str str) -@ stdcall ImageNtHeader(ptr) ntdll.RtlImageNtHeader +@ stdcall -import ImageNtHeader(ptr) RtlImageNtHeader @ stdcall ImageRemoveCertificate(long long) -@ stdcall ImageRvaToSection(ptr ptr long) ntdll.RtlImageRvaToSection -@ stdcall ImageRvaToVa(ptr ptr long ptr) ntdll.RtlImageRvaToVa +@ stdcall -import ImageRvaToSection(ptr ptr long) RtlImageRvaToSection +@ stdcall -import ImageRvaToVa(ptr ptr long ptr) RtlImageRvaToVa @ stdcall ImageUnload(ptr) -@ stdcall ImagehlpApiVersion() dbghelp.ImagehlpApiVersion -@ stdcall ImagehlpApiVersionEx(ptr) dbghelp.ImagehlpApiVersionEx -@ stdcall MakeSureDirectoryPathExists(str) dbghelp.MakeSureDirectoryPathExists +@ stdcall -import ImagehlpApiVersion() +@ stdcall -import ImagehlpApiVersionEx(ptr) +@ stdcall -import MakeSureDirectoryPathExists(str) @ stdcall MapAndLoad(str str ptr long long) -@ stdcall MapDebugInformation(long str str long) dbghelp.MapDebugInformation +@ stdcall -import -arch=win32 MapDebugInformation(long str str long) @ stdcall MapFileAndCheckSumA(str ptr ptr) @ stdcall MapFileAndCheckSumW(wstr ptr ptr) @ stub MarkImageAsRunFromSwap @@ -38,72 +38,72 @@ @ stdcall RemovePrivateCvSymbolic(ptr ptr ptr) @ stub RemovePrivateCvSymbolicEx @ stdcall RemoveRelocations(ptr) -@ stdcall SearchTreeForFile(str str ptr) dbghelp.SearchTreeForFile +@ stdcall -import SearchTreeForFile(str str ptr) @ stdcall SetImageConfigInformation(ptr ptr) @ stdcall SplitSymbols(str str str long) -@ stdcall StackWalk64(long long long ptr ptr ptr ptr ptr ptr) dbghelp.StackWalk64 -@ stdcall StackWalk(long long long ptr ptr ptr ptr ptr ptr) dbghelp.StackWalk -@ stdcall SymCleanup(long) dbghelp.SymCleanup -@ stdcall SymEnumSourceFiles(ptr int64 str ptr ptr) dbghelp.SymEnumSourceFiles +@ stdcall -import StackWalk64(long long long ptr ptr ptr ptr ptr ptr) +@ stdcall -import StackWalk(long long long ptr ptr ptr ptr ptr ptr) +@ stdcall -import SymCleanup(long) +@ stdcall SymEnumSourceFiles(ptr int64 str ptr ptr) SymEnumSourceFiles @ stub SymEnumSym -@ stdcall SymEnumSymbols(ptr int64 str ptr ptr) dbghelp.SymEnumSymbols -@ stdcall SymEnumTypes(ptr int64 ptr ptr) dbghelp.SymEnumTypes -@ stdcall SymEnumerateModules64(long ptr ptr) dbghelp.SymEnumerateModules64 -@ stdcall SymEnumerateModules(long ptr ptr) dbghelp.SymEnumerateModules -@ stdcall SymEnumerateSymbols64(long int64 ptr ptr) dbghelp.SymEnumerateSymbols64 -@ stdcall SymEnumerateSymbols(long long ptr ptr) dbghelp.SymEnumerateSymbols +@ stdcall -import SymEnumSymbols(ptr int64 str ptr ptr) +@ stdcall -import SymEnumTypes(ptr int64 ptr ptr) +@ stdcall -import SymEnumerateModules64(long ptr ptr) +@ stdcall -import SymEnumerateModules(long ptr ptr) +@ stdcall -import SymEnumerateSymbols64(long int64 ptr ptr) +@ stdcall -import SymEnumerateSymbols(long long ptr ptr) @ stub SymEnumerateSymbolsW64 @ stub SymEnumerateSymbolsW -@ stdcall SymFindFileInPath(long str str ptr long long long ptr ptr ptr) dbghelp.SymFindFileInPath -@ stdcall SymFromAddr(ptr int64 ptr ptr) dbghelp.SymFromAddr -@ stdcall SymFromName(long str ptr) dbghelp.SymFromName -@ stdcall SymFunctionTableAccess64(long int64) dbghelp.SymFunctionTableAccess64 -@ stdcall SymFunctionTableAccess(long long) dbghelp.SymFunctionTableAccess -@ stdcall SymGetLineFromAddr64(long int64 ptr ptr) dbghelp.SymGetLineFromAddr64 -@ stdcall SymGetLineFromAddr(long long ptr ptr) dbghelp.SymGetLineFromAddr +@ stdcall -import SymFindFileInPath(long str str ptr long long long ptr ptr ptr) +@ stdcall -import SymFromAddr(ptr int64 ptr ptr) +@ stdcall -import SymFromName(long str ptr) +@ stdcall -import SymFunctionTableAccess64(long int64) +@ stdcall -import SymFunctionTableAccess(long long) +@ stdcall -import SymGetLineFromAddr64(long int64 ptr ptr) +@ stdcall -import SymGetLineFromAddr(long long ptr ptr) @ stub SymGetLineFromName64 @ stub SymGetLineFromName -@ stdcall SymGetLineNext64(long ptr) dbghelp.SymGetLineNext64 -@ stdcall SymGetLineNext(long ptr) dbghelp.SymGetLineNext -@ stdcall SymGetLinePrev64(long ptr) dbghelp.SymGetLinePrev64 -@ stdcall SymGetLinePrev(long ptr) dbghelp.SymGetLinePrev -@ stdcall SymGetModuleBase64(long int64) dbghelp.SymGetModuleBase64 -@ stdcall SymGetModuleBase(long long) dbghelp.SymGetModuleBase -@ stdcall SymGetModuleInfo64(long int64 ptr) dbghelp.SymGetModuleInfo64 -@ stdcall SymGetModuleInfo(long long ptr) dbghelp.SymGetModuleInfo -@ stdcall SymGetModuleInfoW64(long int64 ptr) dbghelp.SymGetModuleInfoW64 -@ stdcall SymGetModuleInfoW(long long ptr) dbghelp.SymGetModuleInfoW -@ stdcall SymGetOptions() dbghelp.SymGetOptions -@ stdcall SymGetSearchPath(long ptr long) dbghelp.SymGetSearchPath -@ stdcall SymGetSymFromAddr64(long int64 ptr ptr) dbghelp.SymGetSymFromAddr64 -@ stdcall SymGetSymFromAddr(long long ptr ptr) dbghelp.SymGetSymFromAddr -@ stdcall SymGetSymFromName64(long str ptr) dbghelp.SymGetSymFromName64 -@ stdcall SymGetSymFromName(long str ptr) dbghelp.SymGetSymFromName -@ stdcall SymGetSymNext64(long ptr) dbghelp.SymGetSymNext64 -@ stdcall SymGetSymNext(long ptr) dbghelp.SymGetSymNext -@ stdcall SymGetSymPrev64(long ptr) dbghelp.SymGetSymPrev64 -@ stdcall SymGetSymPrev(long ptr) dbghelp.SymGetSymPrev -@ stdcall SymGetTypeFromName(ptr int64 str ptr) dbghelp.SymGetTypeFromName -@ stdcall SymGetTypeInfo(ptr int64 long long ptr) dbghelp.SymGetTypeInfo -@ stdcall SymInitialize(long str long) dbghelp.SymInitialize -@ stdcall SymLoadModule64(long long str str int64 long) dbghelp.SymLoadModule64 -@ stdcall SymLoadModule(long long str str long long) dbghelp.SymLoadModule -@ stdcall SymMatchFileName(str str ptr ptr) dbghelp.SymMatchFileName -@ stdcall SymMatchString(str str long) dbghelp.SymMatchString -@ stdcall SymRegisterCallback64(long ptr int64) dbghelp.SymRegisterCallback64 -@ stdcall SymRegisterCallback(long ptr ptr) dbghelp.SymRegisterCallback -@ stdcall SymRegisterFunctionEntryCallback64(ptr ptr int64) dbghelp.SymRegisterFunctionEntryCallback64 -@ stdcall SymRegisterFunctionEntryCallback(ptr ptr ptr) dbghelp.SymRegisterFunctionEntryCallback -@ stdcall SymSetContext(long ptr ptr) dbghelp.SymSetContext -@ stdcall SymSetOptions(long) dbghelp.SymSetOptions -@ stdcall SymSetSearchPath(long str) dbghelp.SymSetSearchPath -@ stdcall SymUnDName64(ptr str long) dbghelp.SymUnDName64 -@ stdcall SymUnDName(ptr str long) dbghelp.SymUnDName -@ stdcall SymUnloadModule64(long int64) dbghelp.SymUnloadModule64 -@ stdcall SymUnloadModule(long long) dbghelp.SymUnloadModule +@ stdcall -import SymGetLineNext64(long ptr) +@ stdcall -import SymGetLineNext(long ptr) +@ stdcall -import SymGetLinePrev64(long ptr) +@ stdcall -import SymGetLinePrev(long ptr) +@ stdcall -import SymGetModuleBase64(long int64) +@ stdcall -import SymGetModuleBase(long long) +@ stdcall -import SymGetModuleInfo64(long int64 ptr) +@ stdcall -import SymGetModuleInfo(long long ptr) +@ stdcall -import SymGetModuleInfoW64(long int64 ptr) +@ stdcall -import SymGetModuleInfoW(long long ptr) +@ stdcall -import SymGetOptions() +@ stdcall -import SymGetSearchPath(long ptr long) +@ stdcall -import SymGetSymFromAddr64(long int64 ptr ptr) +@ stdcall -import SymGetSymFromAddr(long long ptr ptr) +@ stdcall -import SymGetSymFromName64(long str ptr) +@ stdcall -import SymGetSymFromName(long str ptr) +@ stdcall -import SymGetSymNext64(long ptr) +@ stdcall -import SymGetSymNext(long ptr) +@ stdcall -import SymGetSymPrev64(long ptr) +@ stdcall -import SymGetSymPrev(long ptr) +@ stdcall -import SymGetTypeFromName(ptr int64 str ptr) +@ stdcall -import SymGetTypeInfo(ptr int64 long long ptr) +@ stdcall -import SymInitialize(long str long) +@ stdcall -import SymLoadModule64(long long str str int64 long) +@ stdcall -import SymLoadModule(long long str str long long) +@ stdcall -import SymMatchFileName(str str ptr ptr) +@ stdcall -import SymMatchString(str str long) +@ stdcall -import SymRegisterCallback64(long ptr int64) +@ stdcall -import SymRegisterCallback(long ptr ptr) +@ stdcall -import SymRegisterFunctionEntryCallback64(ptr ptr int64) +@ stdcall -import SymRegisterFunctionEntryCallback(ptr ptr ptr) +@ stdcall -import SymSetContext(long ptr ptr) +@ stdcall -import SymSetOptions(long) +@ stdcall -import SymSetSearchPath(long str) +@ stdcall -import SymUnDName64(ptr str long) +@ stdcall -import SymUnDName(ptr str long) +@ stdcall -import SymUnloadModule64(long int64) +@ stdcall -import SymUnloadModule(long long) @ stdcall TouchFileTimes(long ptr) -@ stdcall UnDecorateSymbolName(str str long long) dbghelp.UnDecorateSymbolName +@ stdcall -import UnDecorateSymbolName(str str long long) @ stdcall UnMapAndLoad(ptr) -@ stdcall UnmapDebugInformation(ptr) dbghelp.UnmapDebugInformation +@ stdcall -import -arch=win32 UnmapDebugInformation(ptr) @ stdcall UpdateDebugInfoFile(str str str ptr) @ stdcall UpdateDebugInfoFileEx(str str str ptr long)