Completed initial work on DbgHelp library that also includes ImageHlp.dll functions

pull/161/head
dahall 2020-08-19 20:55:22 -06:00
parent c5814672d5
commit 8d875a0010
7 changed files with 4567 additions and 463 deletions

View File

@ -0,0 +1,277 @@
## Correlation report for dbghelp.dll, imagehlp.dll
PInvoke API (methods, structures and constants) imported from Windows DbgHelp.dll.
### Methods (100% complete, 217 of 217 functions)
Native Method | Native DLL | Header | Managed Method
--- | --- | --- | ---
[BindImageEx](https://www.google.com/search?num=5&q=BindImageEx+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.BindImageEx](https://github.com/dahall/Vanara/search?l=C%23&q=BindImageEx)
[CheckSumMappedFile](https://www.google.com/search?num=5&q=CheckSumMappedFile+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.CheckSumMappedFile](https://github.com/dahall/Vanara/search?l=C%23&q=CheckSumMappedFile)
[EnumDirTree](https://www.google.com/search?num=5&q=EnumDirTree+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.EnumDirTree](https://github.com/dahall/Vanara/search?l=C%23&q=EnumDirTree)
[EnumDirTreeA](https://www.google.com/search?num=5&q=EnumDirTreeA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.EnumDirTree](https://github.com/dahall/Vanara/search?l=C%23&q=EnumDirTree)
[EnumerateLoadedModules](https://www.google.com/search?num=5&q=EnumerateLoadedModules+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.EnumerateLoadedModules](https://github.com/dahall/Vanara/search?l=C%23&q=EnumerateLoadedModules)
[EnumerateLoadedModulesEx](https://www.google.com/search?num=5&q=EnumerateLoadedModulesEx+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.EnumerateLoadedModulesEx](https://github.com/dahall/Vanara/search?l=C%23&q=EnumerateLoadedModulesEx)
[EnumerateLoadedModulesW64](https://www.google.com/search?num=5&q=EnumerateLoadedModulesW64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.EnumerateLoadedModules64](https://github.com/dahall/Vanara/search?l=C%23&q=EnumerateLoadedModules64)
[FindDebugInfoFile](https://www.google.com/search?num=5&q=FindDebugInfoFile+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.FindDebugInfoFile](https://github.com/dahall/Vanara/search?l=C%23&q=FindDebugInfoFile)
[FindDebugInfoFileEx](https://www.google.com/search?num=5&q=FindDebugInfoFileEx+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.FindDebugInfoFileEx](https://github.com/dahall/Vanara/search?l=C%23&q=FindDebugInfoFileEx)
[FindDebugInfoFileExA](https://www.google.com/search?num=5&q=FindDebugInfoFileExA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.FindDebugInfoFileEx](https://github.com/dahall/Vanara/search?l=C%23&q=FindDebugInfoFileEx)
[FindExecutableImage](https://www.google.com/search?num=5&q=FindExecutableImage+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.FindExecutableImage](https://github.com/dahall/Vanara/search?l=C%23&q=FindExecutableImage)
[FindExecutableImageEx](https://www.google.com/search?num=5&q=FindExecutableImageEx+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.FindExecutableImageEx](https://github.com/dahall/Vanara/search?l=C%23&q=FindExecutableImageEx)
[FindExecutableImageExA](https://www.google.com/search?num=5&q=FindExecutableImageExA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.FindExecutableImageEx](https://github.com/dahall/Vanara/search?l=C%23&q=FindExecutableImageEx)
[GetImageConfigInformation](https://www.google.com/search?num=5&q=GetImageConfigInformation+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.GetImageConfigInformation](https://github.com/dahall/Vanara/search?l=C%23&q=GetImageConfigInformation)
[GetImageUnusedHeaderBytes](https://www.google.com/search?num=5&q=GetImageUnusedHeaderBytes+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.GetImageUnusedHeaderBytes](https://github.com/dahall/Vanara/search?l=C%23&q=GetImageUnusedHeaderBytes)
[GetSymLoadError](https://www.google.com/search?num=5&q=GetSymLoadError+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.GetSymLoadError](https://github.com/dahall/Vanara/search?l=C%23&q=GetSymLoadError)
[GetTimestampForLoadedLibrary](https://www.google.com/search?num=5&q=GetTimestampForLoadedLibrary+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.GetTimestampForLoadedLibrary](https://github.com/dahall/Vanara/search?l=C%23&q=GetTimestampForLoadedLibrary)
[ImageAddCertificate](https://www.google.com/search?num=5&q=ImageAddCertificate+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.ImageAddCertificate](https://github.com/dahall/Vanara/search?l=C%23&q=ImageAddCertificate)
[ImageDirectoryEntryToData](https://www.google.com/search?num=5&q=ImageDirectoryEntryToData+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.ImageDirectoryEntryToData](https://github.com/dahall/Vanara/search?l=C%23&q=ImageDirectoryEntryToData)
[ImageDirectoryEntryToDataEx](https://www.google.com/search?num=5&q=ImageDirectoryEntryToDataEx+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.ImageDirectoryEntryToDataEx](https://github.com/dahall/Vanara/search?l=C%23&q=ImageDirectoryEntryToDataEx)
[ImageEnumerateCertificates](https://www.google.com/search?num=5&q=ImageEnumerateCertificates+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.ImageEnumerateCertificates](https://github.com/dahall/Vanara/search?l=C%23&q=ImageEnumerateCertificates)
[ImageGetCertificateData](https://www.google.com/search?num=5&q=ImageGetCertificateData+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.ImageGetCertificateData](https://github.com/dahall/Vanara/search?l=C%23&q=ImageGetCertificateData)
[ImageGetCertificateHeader](https://www.google.com/search?num=5&q=ImageGetCertificateHeader+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.ImageGetCertificateHeader](https://github.com/dahall/Vanara/search?l=C%23&q=ImageGetCertificateHeader)
[ImageGetDigestStream](https://www.google.com/search?num=5&q=ImageGetDigestStream+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.ImageGetDigestStream](https://github.com/dahall/Vanara/search?l=C%23&q=ImageGetDigestStream)
[ImagehlpApiVersion](https://www.google.com/search?num=5&q=ImagehlpApiVersion+site%3Adocs.microsoft.com) | dbghelp.dll | | [Vanara.PInvoke.DbgHelp.ImagehlpApiVersionInternal](https://github.com/dahall/Vanara/search?l=C%23&q=ImagehlpApiVersionInternal)
[ImagehlpApiVersionEx](https://www.google.com/search?num=5&q=ImagehlpApiVersionEx+site%3Adocs.microsoft.com) | dbghelp.dll | | [Vanara.PInvoke.DbgHelp.ImagehlpApiVersionExInternal](https://github.com/dahall/Vanara/search?l=C%23&q=ImagehlpApiVersionExInternal)
[ImageLoad](https://www.google.com/search?num=5&q=ImageLoad+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.ImageLoad](https://github.com/dahall/Vanara/search?l=C%23&q=ImageLoad)
[ImageNtHeader](https://www.google.com/search?num=5&q=ImageNtHeader+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.ImageNtHeader](https://github.com/dahall/Vanara/search?l=C%23&q=ImageNtHeader)
[ImageRemoveCertificate](https://www.google.com/search?num=5&q=ImageRemoveCertificate+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.ImageRemoveCertificate](https://github.com/dahall/Vanara/search?l=C%23&q=ImageRemoveCertificate)
[ImageRvaToSection](https://www.google.com/search?num=5&q=ImageRvaToSection+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.ImageRvaToSection](https://github.com/dahall/Vanara/search?l=C%23&q=ImageRvaToSection)
[ImageRvaToVa](https://www.google.com/search?num=5&q=ImageRvaToVa+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.ImageRvaToVa](https://github.com/dahall/Vanara/search?l=C%23&q=ImageRvaToVa)
[ImageUnload](https://www.google.com/search?num=5&q=ImageUnload+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.ImageUnload](https://github.com/dahall/Vanara/search?l=C%23&q=ImageUnload)
[MakeSureDirectoryPathExists](https://www.google.com/search?num=5&q=MakeSureDirectoryPathExists+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.MakeSureDirectoryPathExists](https://github.com/dahall/Vanara/search?l=C%23&q=MakeSureDirectoryPathExists)
[MapAndLoad](https://www.google.com/search?num=5&q=MapAndLoad+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.MapAndLoad](https://github.com/dahall/Vanara/search?l=C%23&q=MapAndLoad)
[MapDebugInformation](https://www.google.com/search?num=5&q=MapDebugInformation+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.MapDebugInformation](https://github.com/dahall/Vanara/search?l=C%23&q=MapDebugInformation)
[MapFileAndCheckSum](https://www.google.com/search?num=5&q=MapFileAndCheckSumA+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.MapFileAndCheckSum](https://github.com/dahall/Vanara/search?l=C%23&q=MapFileAndCheckSum)
[ReBaseImage](https://www.google.com/search?num=5&q=ReBaseImage+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.ReBaseImage](https://github.com/dahall/Vanara/search?l=C%23&q=ReBaseImage)
[ReBaseImage64](https://www.google.com/search?num=5&q=ReBaseImage64+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.ReBaseImage64](https://github.com/dahall/Vanara/search?l=C%23&q=ReBaseImage64)
[SearchTreeForFile](https://www.google.com/search?num=5&q=SearchTreeForFile+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SearchTreeForFile](https://github.com/dahall/Vanara/search?l=C%23&q=SearchTreeForFile)
[SearchTreeForFileA](https://www.google.com/search?num=5&q=SearchTreeForFileA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SearchTreeForFile](https://github.com/dahall/Vanara/search?l=C%23&q=SearchTreeForFile)
[SetImageConfigInformation](https://www.google.com/search?num=5&q=SetImageConfigInformation+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.SetImageConfigInformation](https://github.com/dahall/Vanara/search?l=C%23&q=SetImageConfigInformation)
[SetSymLoadError](https://www.google.com/search?num=5&q=SetSymLoadError+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SetSymLoadError](https://github.com/dahall/Vanara/search?l=C%23&q=SetSymLoadError)
[SplitSymbols](https://www.google.com/search?num=5&q=SplitSymbols+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.SplitSymbols](https://github.com/dahall/Vanara/search?l=C%23&q=SplitSymbols)
[StackWalk](https://www.google.com/search?num=5&q=StackWalk+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.StackWalk](https://github.com/dahall/Vanara/search?l=C%23&q=StackWalk)
[StackWalk64](https://www.google.com/search?num=5&q=StackWalk64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.StackWalk64](https://github.com/dahall/Vanara/search?l=C%23&q=StackWalk64)
[StackWalkEx](https://www.google.com/search?num=5&q=StackWalkEx+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.StackWalkEx](https://github.com/dahall/Vanara/search?l=C%23&q=StackWalkEx)
[SymAddrIncludeInlineTrace](https://www.google.com/search?num=5&q=SymAddrIncludeInlineTrace+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymAddrIncludeInlineTrace](https://github.com/dahall/Vanara/search?l=C%23&q=SymAddrIncludeInlineTrace)
[SymAddSourceStream](https://www.google.com/search?num=5&q=SymAddSourceStream+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymAddSourceStream](https://github.com/dahall/Vanara/search?l=C%23&q=SymAddSourceStream)
[SymAddSymbol](https://www.google.com/search?num=5&q=SymAddSymbol+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymAddSymbol](https://github.com/dahall/Vanara/search?l=C%23&q=SymAddSymbol)
[SymAddSymbolA](https://www.google.com/search?num=5&q=SymAddSymbolA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymAddSymbol](https://github.com/dahall/Vanara/search?l=C%23&q=SymAddSymbol)
[SymbolServerSetOptionsA](https://www.google.com/search?num=5&q=SymbolServerSetOptionsA+site%3Adocs.microsoft.com) | Symsrv.dll | DbgHelp.h | [Vanara.PInvoke.DbgHelp.SymbolServerSetOptions](https://github.com/dahall/Vanara/search?l=C%23&q=SymbolServerSetOptions)
[SymbolServerSetOptionsW](https://www.google.com/search?num=5&q=SymbolServerSetOptionsW+site%3Adocs.microsoft.com) | Symsrv.dll | DbgHelp.h | [Vanara.PInvoke.DbgHelp.SymbolServerSetOptions](https://github.com/dahall/Vanara/search?l=C%23&q=SymbolServerSetOptions)
[SymCleanup](https://www.google.com/search?num=5&q=SymCleanup+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymCleanup](https://github.com/dahall/Vanara/search?l=C%23&q=SymCleanup)
[SymCompareInlineTrace](https://www.google.com/search?num=5&q=SymCompareInlineTrace+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymCompareInlineTrace](https://github.com/dahall/Vanara/search?l=C%23&q=SymCompareInlineTrace)
[SymDeleteSymbol](https://www.google.com/search?num=5&q=SymDeleteSymbol+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymDeleteSymbol](https://github.com/dahall/Vanara/search?l=C%23&q=SymDeleteSymbol)
[SymDeleteSymbolA](https://www.google.com/search?num=5&q=SymDeleteSymbolA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymDeleteSymbol](https://github.com/dahall/Vanara/search?l=C%23&q=SymDeleteSymbol)
[SymEnumerateModules](https://www.google.com/search?num=5&q=SymEnumerateModules+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumerateModules](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumerateModules)
[SymEnumerateModules64](https://www.google.com/search?num=5&q=SymEnumerateModules64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumerateModules64](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumerateModules64)
[SymEnumerateModulesW64](https://www.google.com/search?num=5&q=SymEnumerateModulesW64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumerateModulesW64](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumerateModulesW64)
[SymEnumLines](https://www.google.com/search?num=5&q=SymEnumLines+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumLines](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumLines)
[SymEnumLinesA](https://www.google.com/search?num=5&q=SymEnumLinesA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumLines](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumLines)
[SymEnumProcesses](https://www.google.com/search?num=5&q=SymEnumProcesses+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumProcesses](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumProcesses)
[SymEnumSourceFiles](https://www.google.com/search?num=5&q=SymEnumSourceFiles+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumSourceFiles](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumSourceFiles)
[SymEnumSourceFilesA](https://www.google.com/search?num=5&q=SymEnumSourceFilesA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumSourceFiles](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumSourceFiles)
[SymEnumSourceFileTokens](https://www.google.com/search?num=5&q=SymEnumSourceFileTokens+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumSourceFileTokens](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumSourceFileTokens)
[SymEnumSourceLines](https://www.google.com/search?num=5&q=SymEnumSourceLines+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumSourceLines](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumSourceLines)
[SymEnumSourceLinesA](https://www.google.com/search?num=5&q=SymEnumSourceLinesA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumSourceLines](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumSourceLines)
[SymEnumSymbols](https://www.google.com/search?num=5&q=SymEnumSymbols+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumSymbols](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumSymbols)
[SymEnumSymbolsA](https://www.google.com/search?num=5&q=SymEnumSymbolsA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumSymbols](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumSymbols)
[SymEnumSymbolsEx](https://www.google.com/search?num=5&q=SymEnumSymbolsEx+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumSymbolsEx](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumSymbolsEx)
[SymEnumSymbolsExA](https://www.google.com/search?num=5&q=SymEnumSymbolsExA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumSymbolsEx](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumSymbolsEx)
[SymEnumSymbolsForAddr](https://www.google.com/search?num=5&q=SymEnumSymbolsForAddr+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumSymbolsForAddr](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumSymbolsForAddr)
[SymEnumSymbolsForAddrA](https://www.google.com/search?num=5&q=SymEnumSymbolsForAddrA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumSymbolsForAddr](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumSymbolsForAddr)
[SymEnumTypes](https://www.google.com/search?num=5&q=SymEnumTypes+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumTypes](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumTypes)
[SymEnumTypesA](https://www.google.com/search?num=5&q=SymEnumTypesA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumTypes](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumTypes)
[SymEnumTypesByName](https://www.google.com/search?num=5&q=SymEnumTypesByName+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumTypesByName](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumTypesByName)
[SymEnumTypesByNameA](https://www.google.com/search?num=5&q=SymEnumTypesByNameA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymEnumTypesByName](https://github.com/dahall/Vanara/search?l=C%23&q=SymEnumTypesByName)
[SymFindDebugInfoFile](https://www.google.com/search?num=5&q=SymFindDebugInfoFile+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFindDebugInfoFile](https://github.com/dahall/Vanara/search?l=C%23&q=SymFindDebugInfoFile)
[SymFindDebugInfoFileA](https://www.google.com/search?num=5&q=SymFindDebugInfoFileA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFindDebugInfoFile](https://github.com/dahall/Vanara/search?l=C%23&q=SymFindDebugInfoFile)
[SymFindExecutableImage](https://www.google.com/search?num=5&q=SymFindExecutableImage+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFindExecutableImage](https://github.com/dahall/Vanara/search?l=C%23&q=SymFindExecutableImage)
[SymFindExecutableImageA](https://www.google.com/search?num=5&q=SymFindExecutableImageA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFindExecutableImage](https://github.com/dahall/Vanara/search?l=C%23&q=SymFindExecutableImage)
[SymFindFileInPath](https://www.google.com/search?num=5&q=SymFindFileInPath+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFindFileInPath](https://github.com/dahall/Vanara/search?l=C%23&q=SymFindFileInPath)
[SymFindFileInPathA](https://www.google.com/search?num=5&q=SymFindFileInPathA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFindFileInPath](https://github.com/dahall/Vanara/search?l=C%23&q=SymFindFileInPath)
[SymFromAddr](https://www.google.com/search?num=5&q=SymFromAddr+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFromAddr](https://github.com/dahall/Vanara/search?l=C%23&q=SymFromAddr)
[SymFromAddrA](https://www.google.com/search?num=5&q=SymFromAddrA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFromAddr](https://github.com/dahall/Vanara/search?l=C%23&q=SymFromAddr)
[SymFromIndex](https://www.google.com/search?num=5&q=SymFromIndex+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFromIndex](https://github.com/dahall/Vanara/search?l=C%23&q=SymFromIndex)
[SymFromIndexA](https://www.google.com/search?num=5&q=SymFromIndexA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFromIndex](https://github.com/dahall/Vanara/search?l=C%23&q=SymFromIndex)
[SymFromInlineContext](https://www.google.com/search?num=5&q=SymFromInlineContext+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFromInlineContext](https://github.com/dahall/Vanara/search?l=C%23&q=SymFromInlineContext)
[SymFromInlineContextA](https://www.google.com/search?num=5&q=SymFromInlineContextA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFromInlineContext](https://github.com/dahall/Vanara/search?l=C%23&q=SymFromInlineContext)
[SymFromName](https://www.google.com/search?num=5&q=SymFromName+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFromName](https://github.com/dahall/Vanara/search?l=C%23&q=SymFromName)
[SymFromNameA](https://www.google.com/search?num=5&q=SymFromNameA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFromName](https://github.com/dahall/Vanara/search?l=C%23&q=SymFromName)
[SymFromToken](https://www.google.com/search?num=5&q=SymFromToken+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFromToken](https://github.com/dahall/Vanara/search?l=C%23&q=SymFromToken)
[SymFromTokenA](https://www.google.com/search?num=5&q=SymFromTokenA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFromToken](https://github.com/dahall/Vanara/search?l=C%23&q=SymFromToken)
[SymFunctionTableAccess](https://www.google.com/search?num=5&q=SymFunctionTableAccess+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFunctionTableAccess](https://github.com/dahall/Vanara/search?l=C%23&q=SymFunctionTableAccess)
[SymFunctionTableAccess64](https://www.google.com/search?num=5&q=SymFunctionTableAccess64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFunctionTableAccess64](https://github.com/dahall/Vanara/search?l=C%23&q=SymFunctionTableAccess64)
[SymFunctionTableAccess64AccessRoutines](https://www.google.com/search?num=5&q=SymFunctionTableAccess64AccessRoutines+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymFunctionTableAccess64AccessRoutines](https://github.com/dahall/Vanara/search?l=C%23&q=SymFunctionTableAccess64AccessRoutines)
[SymGetExtendedOption](https://www.google.com/search?num=5&q=SymGetExtendedOption+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetExtendedOption](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetExtendedOption)
[SymGetFileLineOffsets64](https://www.google.com/search?num=5&q=SymGetFileLineOffsets64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetFileLineOffsets64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetFileLineOffsets64)
[SymGetHomeDirectory](https://www.google.com/search?num=5&q=SymGetHomeDirectory+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetHomeDirectory](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetHomeDirectory)
[SymGetHomeDirectoryA](https://www.google.com/search?num=5&q=SymGetHomeDirectoryA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetHomeDirectory](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetHomeDirectory)
[SymGetLineFromAddr64](https://www.google.com/search?num=5&q=SymGetLineFromAddr64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetLineFromAddr64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetLineFromAddr64)
[SymGetLineFromAddrA](https://www.google.com/search?num=5&q=SymGetLineFromAddrA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetLineFromAddr](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetLineFromAddr)
[SymGetLineFromAddrW](https://www.google.com/search?num=5&q=SymGetLineFromAddrW+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetLineFromAddr](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetLineFromAddr)
[SymGetLineFromAddrW64](https://www.google.com/search?num=5&q=SymGetLineFromAddrW64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetLineFromAddrW64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetLineFromAddrW64)
[SymGetLineFromInlineContext](https://www.google.com/search?num=5&q=SymGetLineFromInlineContext+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetLineFromInlineContext](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetLineFromInlineContext)
[SymGetLineFromInlineContextA](https://www.google.com/search?num=5&q=SymGetLineFromInlineContextA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetLineFromInlineContext](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetLineFromInlineContext)
[SymGetLineFromName](https://www.google.com/search?num=5&q=SymGetLineFromName+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetLineFromName](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetLineFromName)
[SymGetLineFromName64](https://www.google.com/search?num=5&q=SymGetLineFromName64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetLineFromName64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetLineFromName64)
[SymGetLineFromNameW64](https://www.google.com/search?num=5&q=SymGetLineFromNameW64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetLineFromNameW64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetLineFromNameW64)
[SymGetLineNext64](https://www.google.com/search?num=5&q=SymGetLineNext64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetLineNext64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetLineNext64)
[SymGetLineNextA](https://www.google.com/search?num=5&q=SymGetLineNextA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetLineNext](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetLineNext)
[SymGetLineNextW](https://www.google.com/search?num=5&q=SymGetLineNextW+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetLineNext](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetLineNext)
[SymGetLineNextW64](https://www.google.com/search?num=5&q=SymGetLineNextW64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetLineNextW64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetLineNextW64)
[SymGetLinePrev64](https://www.google.com/search?num=5&q=SymGetLinePrev64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetLinePrev64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetLinePrev64)
[SymGetLinePrevA](https://www.google.com/search?num=5&q=SymGetLinePrevA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetLinePrev](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetLinePrev)
[SymGetLinePrevW](https://www.google.com/search?num=5&q=SymGetLinePrevW+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetLinePrev](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetLinePrev)
[SymGetLinePrevW64](https://www.google.com/search?num=5&q=SymGetLinePrevW64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetLinePrevW64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetLinePrevW64)
[SymGetModuleBase](https://www.google.com/search?num=5&q=SymGetModuleBase+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetModuleBase](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetModuleBase)
[SymGetModuleBase64](https://www.google.com/search?num=5&q=SymGetModuleBase64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetModuleBase64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetModuleBase64)
[SymGetModuleInfo](https://www.google.com/search?num=5&q=SymGetModuleInfo+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetModuleInfo](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetModuleInfo)
[SymGetModuleInfo64](https://www.google.com/search?num=5&q=SymGetModuleInfo64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetModuleInfo64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetModuleInfo64)
[SymGetModuleInfoA](https://www.google.com/search?num=5&q=SymGetModuleInfoA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetModuleInfo](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetModuleInfo)
[SymGetModuleInfoW64](https://www.google.com/search?num=5&q=SymGetModuleInfoW64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetModuleInfoW64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetModuleInfoW64)
[SymGetOmaps](https://www.google.com/search?num=5&q=SymGetOmaps+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetOmaps](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetOmaps)
[SymGetOptions](https://www.google.com/search?num=5&q=SymGetOptions+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetOptions](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetOptions)
[SymGetScope](https://www.google.com/search?num=5&q=SymGetScope+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetScope](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetScope)
[SymGetScopeA](https://www.google.com/search?num=5&q=SymGetScopeA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetScope](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetScope)
[SymGetSearchPath](https://www.google.com/search?num=5&q=SymGetSearchPath+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSearchPath](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSearchPath)
[SymGetSearchPathA](https://www.google.com/search?num=5&q=SymGetSearchPathA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSearchPath](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSearchPath)
[SymGetSourceFile](https://www.google.com/search?num=5&q=SymGetSourceFile+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSourceFile](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSourceFile)
[SymGetSourceFileA](https://www.google.com/search?num=5&q=SymGetSourceFileA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSourceFile](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSourceFile)
[SymGetSourceFileChecksum](https://www.google.com/search?num=5&q=SymGetSourceFileChecksum+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSourceFileChecksum](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSourceFileChecksum)
[SymGetSourceFileChecksumA](https://www.google.com/search?num=5&q=SymGetSourceFileChecksumA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSourceFileChecksum](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSourceFileChecksum)
[SymGetSourceFileFromToken](https://www.google.com/search?num=5&q=SymGetSourceFileFromToken+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSourceFileFromToken](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSourceFileFromToken)
[SymGetSourceFileFromTokenA](https://www.google.com/search?num=5&q=SymGetSourceFileFromTokenA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSourceFileFromToken](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSourceFileFromToken)
[SymGetSourceFileToken](https://www.google.com/search?num=5&q=SymGetSourceFileToken+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSourceFileToken](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSourceFileToken)
[SymGetSourceFileTokenA](https://www.google.com/search?num=5&q=SymGetSourceFileTokenA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSourceFileToken](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSourceFileToken)
[SymGetSourceVarFromToken](https://www.google.com/search?num=5&q=SymGetSourceVarFromToken+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSourceVarFromToken](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSourceVarFromToken)
[SymGetSourceVarFromTokenA](https://www.google.com/search?num=5&q=SymGetSourceVarFromTokenA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSourceVarFromToken](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSourceVarFromToken)
[SymGetSymbolFile](https://www.google.com/search?num=5&q=SymGetSymbolFile+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSymbolFile](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSymbolFile)
[SymGetSymbolFileA](https://www.google.com/search?num=5&q=SymGetSymbolFileA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSymbolFile](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSymbolFile)
[SymGetSymFromAddr](https://www.google.com/search?num=5&q=SymGetSymFromAddr+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSymFromAddr](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSymFromAddr)
[SymGetSymFromAddr64](https://www.google.com/search?num=5&q=SymGetSymFromAddr64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSymFromAddr64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSymFromAddr64)
[SymGetSymFromName](https://www.google.com/search?num=5&q=SymGetSymFromName+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSymFromName](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSymFromName)
[SymGetSymFromName64](https://www.google.com/search?num=5&q=SymGetSymFromName64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSymFromName64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSymFromName64)
[SymGetSymNext64](https://www.google.com/search?num=5&q=SymGetSymNext64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSymNext64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSymNext64)
[SymGetSymNextA](https://www.google.com/search?num=5&q=SymGetSymNextA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSymNext](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSymNext)
[SymGetSymNextW](https://www.google.com/search?num=5&q=SymGetSymNextW+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSymNext](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSymNext)
[SymGetSymNextW64](https://www.google.com/search?num=5&q=SymGetSymNextW64+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSymNextW64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSymNextW64)
[SymGetSymPrev64](https://www.google.com/search?num=5&q=SymGetSymPrev64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSymPrev64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSymPrev64)
[SymGetSymPrevW](https://www.google.com/search?num=5&q=SymGetSymPrevW+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSymPrev](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSymPrev)
[SymGetSymPrevW64](https://www.google.com/search?num=5&q=SymGetSymPrevW64+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetSymPrevW64](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetSymPrevW64)
[SymGetTypeFromName](https://www.google.com/search?num=5&q=SymGetTypeFromName+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetTypeFromName](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetTypeFromName)
[SymGetTypeFromNameA](https://www.google.com/search?num=5&q=SymGetTypeFromNameA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetTypeFromName](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetTypeFromName)
[SymGetTypeInfo](https://www.google.com/search?num=5&q=SymGetTypeInfo+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetTypeInfo](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetTypeInfo)
[SymGetTypeInfoEx](https://www.google.com/search?num=5&q=SymGetTypeInfoEx+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymGetTypeInfoEx](https://github.com/dahall/Vanara/search?l=C%23&q=SymGetTypeInfoEx)
[SymInitialize](https://www.google.com/search?num=5&q=SymInitialize+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymInitialize](https://github.com/dahall/Vanara/search?l=C%23&q=SymInitialize)
[SymInitializeA](https://www.google.com/search?num=5&q=SymInitializeA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymInitialize](https://github.com/dahall/Vanara/search?l=C%23&q=SymInitialize)
[SymLoadModule](https://www.google.com/search?num=5&q=SymLoadModule+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymLoadModule](https://github.com/dahall/Vanara/search?l=C%23&q=SymLoadModule)
[SymLoadModule64](https://www.google.com/search?num=5&q=SymLoadModule64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymLoadModule64](https://github.com/dahall/Vanara/search?l=C%23&q=SymLoadModule64)
[SymLoadModuleEx](https://www.google.com/search?num=5&q=SymLoadModuleEx+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymLoadModuleEx](https://github.com/dahall/Vanara/search?l=C%23&q=SymLoadModuleEx)
[SymLoadModuleExA](https://www.google.com/search?num=5&q=SymLoadModuleExA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymLoadModuleEx](https://github.com/dahall/Vanara/search?l=C%23&q=SymLoadModuleEx)
[SymMatchFileName](https://www.google.com/search?num=5&q=SymMatchFileName+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymMatchFileName](https://github.com/dahall/Vanara/search?l=C%23&q=SymMatchFileName)
[SymMatchFileNameA](https://www.google.com/search?num=5&q=SymMatchFileNameA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymMatchFileName](https://github.com/dahall/Vanara/search?l=C%23&q=SymMatchFileName)
[SymMatchString](https://www.google.com/search?num=5&q=SymMatchString+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymMatchString](https://github.com/dahall/Vanara/search?l=C%23&q=SymMatchString)
[SymNext](https://www.google.com/search?num=5&q=SymNext+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymNext](https://github.com/dahall/Vanara/search?l=C%23&q=SymNext)
[SymNextA](https://www.google.com/search?num=5&q=SymNextA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymNext](https://github.com/dahall/Vanara/search?l=C%23&q=SymNext)
[SymPrev](https://www.google.com/search?num=5&q=SymPrev+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymPrev](https://github.com/dahall/Vanara/search?l=C%23&q=SymPrev)
[SymPrevA](https://www.google.com/search?num=5&q=SymPrevA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymPrev](https://github.com/dahall/Vanara/search?l=C%23&q=SymPrev)
[SymQueryInlineTrace](https://www.google.com/search?num=5&q=SymQueryInlineTrace+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymQueryInlineTrace](https://github.com/dahall/Vanara/search?l=C%23&q=SymQueryInlineTrace)
[SymRefreshModuleList](https://www.google.com/search?num=5&q=SymRefreshModuleList+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymRefreshModuleList](https://github.com/dahall/Vanara/search?l=C%23&q=SymRefreshModuleList)
[SymRegisterCallback64](https://www.google.com/search?num=5&q=SymRegisterCallback64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymRegisterCallback64](https://github.com/dahall/Vanara/search?l=C%23&q=SymRegisterCallback64)
[SymRegisterCallbackA](https://www.google.com/search?num=5&q=SymRegisterCallbackA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymRegisterCallback](https://github.com/dahall/Vanara/search?l=C%23&q=SymRegisterCallback)
[SymRegisterCallbackW](https://www.google.com/search?num=5&q=SymRegisterCallbackW+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymRegisterCallback](https://github.com/dahall/Vanara/search?l=C%23&q=SymRegisterCallback)
[SymRegisterCallbackW64](https://www.google.com/search?num=5&q=SymRegisterCallbackW64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymRegisterCallbackW64](https://github.com/dahall/Vanara/search?l=C%23&q=SymRegisterCallbackW64)
[SymRegisterFunctionEntryCallback](https://www.google.com/search?num=5&q=SymRegisterFunctionEntryCallback+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymRegisterFunctionEntryCallback](https://github.com/dahall/Vanara/search?l=C%23&q=SymRegisterFunctionEntryCallback)
[SymRegisterFunctionEntryCallback64](https://www.google.com/search?num=5&q=SymRegisterFunctionEntryCallback64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymRegisterFunctionEntryCallback64](https://github.com/dahall/Vanara/search?l=C%23&q=SymRegisterFunctionEntryCallback64)
[SymSearch](https://www.google.com/search?num=5&q=SymSearch+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSearch](https://github.com/dahall/Vanara/search?l=C%23&q=SymSearch)
[SymSearchA](https://www.google.com/search?num=5&q=SymSearchA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSearch](https://github.com/dahall/Vanara/search?l=C%23&q=SymSearch)
[SymSetContext](https://www.google.com/search?num=5&q=SymSetContext+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSetContext](https://github.com/dahall/Vanara/search?l=C%23&q=SymSetContext)
[SymSetExtendedOption](https://www.google.com/search?num=5&q=SymSetExtendedOption+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSetExtendedOption](https://github.com/dahall/Vanara/search?l=C%23&q=SymSetExtendedOption)
[SymSetHomeDirectory](https://www.google.com/search?num=5&q=SymSetHomeDirectory+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSetHomeDirectory](https://github.com/dahall/Vanara/search?l=C%23&q=SymSetHomeDirectory)
[SymSetHomeDirectoryA](https://www.google.com/search?num=5&q=SymSetHomeDirectoryA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSetHomeDirectory](https://github.com/dahall/Vanara/search?l=C%23&q=SymSetHomeDirectory)
[SymSetOptions](https://www.google.com/search?num=5&q=SymSetOptions+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSetOptions](https://github.com/dahall/Vanara/search?l=C%23&q=SymSetOptions)
[SymSetParentWindow](https://www.google.com/search?num=5&q=SymSetParentWindow+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSetParentWindow](https://github.com/dahall/Vanara/search?l=C%23&q=SymSetParentWindow)
[SymSetScopeFromAddr](https://www.google.com/search?num=5&q=SymSetScopeFromAddr+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSetScopeFromAddr](https://github.com/dahall/Vanara/search?l=C%23&q=SymSetScopeFromAddr)
[SymSetScopeFromIndex](https://www.google.com/search?num=5&q=SymSetScopeFromIndex+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSetScopeFromIndex](https://github.com/dahall/Vanara/search?l=C%23&q=SymSetScopeFromIndex)
[SymSetScopeFromInlineContext](https://www.google.com/search?num=5&q=SymSetScopeFromInlineContext+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSetScopeFromInlineContext](https://github.com/dahall/Vanara/search?l=C%23&q=SymSetScopeFromInlineContext)
[SymSetSearchPath](https://www.google.com/search?num=5&q=SymSetSearchPath+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSetSearchPath](https://github.com/dahall/Vanara/search?l=C%23&q=SymSetSearchPath)
[SymSetSearchPathA](https://www.google.com/search?num=5&q=SymSetSearchPathA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSetSearchPath](https://github.com/dahall/Vanara/search?l=C%23&q=SymSetSearchPath)
[SymSrvDeltaName](https://www.google.com/search?num=5&q=SymSrvDeltaName+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSrvDeltaName](https://github.com/dahall/Vanara/search?l=C%23&q=SymSrvDeltaName)
[SymSrvDeltaNameA](https://www.google.com/search?num=5&q=SymSrvDeltaNameA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSrvDeltaName](https://github.com/dahall/Vanara/search?l=C%23&q=SymSrvDeltaName)
[SymSrvGetFileIndexes](https://www.google.com/search?num=5&q=SymSrvGetFileIndexes+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSrvGetFileIndexes](https://github.com/dahall/Vanara/search?l=C%23&q=SymSrvGetFileIndexes)
[SymSrvGetFileIndexesA](https://www.google.com/search?num=5&q=SymSrvGetFileIndexesA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSrvGetFileIndexes](https://github.com/dahall/Vanara/search?l=C%23&q=SymSrvGetFileIndexes)
[SymSrvGetFileIndexInfo](https://www.google.com/search?num=5&q=SymSrvGetFileIndexInfo+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSrvGetFileIndexInfo](https://github.com/dahall/Vanara/search?l=C%23&q=SymSrvGetFileIndexInfo)
[SymSrvGetFileIndexInfoA](https://www.google.com/search?num=5&q=SymSrvGetFileIndexInfoA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSrvGetFileIndexInfo](https://github.com/dahall/Vanara/search?l=C%23&q=SymSrvGetFileIndexInfo)
[SymSrvGetFileIndexString](https://www.google.com/search?num=5&q=SymSrvGetFileIndexString+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSrvGetFileIndexString](https://github.com/dahall/Vanara/search?l=C%23&q=SymSrvGetFileIndexString)
[SymSrvGetFileIndexStringA](https://www.google.com/search?num=5&q=SymSrvGetFileIndexStringA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSrvGetFileIndexString](https://github.com/dahall/Vanara/search?l=C%23&q=SymSrvGetFileIndexString)
[SymSrvGetSupplement](https://www.google.com/search?num=5&q=SymSrvGetSupplement+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSrvGetSupplement](https://github.com/dahall/Vanara/search?l=C%23&q=SymSrvGetSupplement)
[SymSrvGetSupplementA](https://www.google.com/search?num=5&q=SymSrvGetSupplementA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSrvGetSupplement](https://github.com/dahall/Vanara/search?l=C%23&q=SymSrvGetSupplement)
[SymSrvIsStore](https://www.google.com/search?num=5&q=SymSrvIsStore+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSrvIsStore](https://github.com/dahall/Vanara/search?l=C%23&q=SymSrvIsStore)
[SymSrvIsStoreA](https://www.google.com/search?num=5&q=SymSrvIsStoreA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSrvIsStore](https://github.com/dahall/Vanara/search?l=C%23&q=SymSrvIsStore)
[SymSrvStoreFile](https://www.google.com/search?num=5&q=SymSrvStoreFile+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSrvStoreFile](https://github.com/dahall/Vanara/search?l=C%23&q=SymSrvStoreFile)
[SymSrvStoreFileA](https://www.google.com/search?num=5&q=SymSrvStoreFileA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSrvStoreFile](https://github.com/dahall/Vanara/search?l=C%23&q=SymSrvStoreFile)
[SymSrvStoreSupplement](https://www.google.com/search?num=5&q=SymSrvStoreSupplement+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSrvStoreSupplement](https://github.com/dahall/Vanara/search?l=C%23&q=SymSrvStoreSupplement)
[SymSrvStoreSupplementA](https://www.google.com/search?num=5&q=SymSrvStoreSupplementA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymSrvStoreSupplement](https://github.com/dahall/Vanara/search?l=C%23&q=SymSrvStoreSupplement)
[SymUnDName](https://www.google.com/search?num=5&q=SymUnDName+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymUnDName](https://github.com/dahall/Vanara/search?l=C%23&q=SymUnDName)
[SymUnDName64](https://www.google.com/search?num=5&q=SymUnDName64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymUnDName64](https://github.com/dahall/Vanara/search?l=C%23&q=SymUnDName64)
[SymUnloadModule](https://www.google.com/search?num=5&q=SymUnloadModule+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymUnloadModule](https://github.com/dahall/Vanara/search?l=C%23&q=SymUnloadModule)
[SymUnloadModule64](https://www.google.com/search?num=5&q=SymUnloadModule64+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.SymUnloadModule64](https://github.com/dahall/Vanara/search?l=C%23&q=SymUnloadModule64)
[TouchFileTimes](https://www.google.com/search?num=5&q=TouchFileTimes+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.TouchFileTimes](https://github.com/dahall/Vanara/search?l=C%23&q=TouchFileTimes)
[UnDecorateSymbolName](https://www.google.com/search?num=5&q=UnDecorateSymbolName+site%3Adocs.microsoft.com) | dbghelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.UnDecorateSymbolName](https://github.com/dahall/Vanara/search?l=C%23&q=UnDecorateSymbolName)
[UnDecorateSymbolNameA](https://www.google.com/search?num=5&q=UnDecorateSymbolNameA+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.UnDecorateSymbolName](https://github.com/dahall/Vanara/search?l=C%23&q=UnDecorateSymbolName)
[UnMapAndLoad](https://www.google.com/search?num=5&q=UnMapAndLoad+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.UnMapAndLoad](https://github.com/dahall/Vanara/search?l=C%23&q=UnMapAndLoad)
[UnmapDebugInformation](https://www.google.com/search?num=5&q=UnmapDebugInformation+site%3Adocs.microsoft.com) | DbgHelp.dll | dbghelp.h | [Vanara.PInvoke.DbgHelp.UnmapDebugInformation](https://github.com/dahall/Vanara/search?l=C%23&q=UnmapDebugInformation)
[UpdateDebugInfoFile](https://www.google.com/search?num=5&q=UpdateDebugInfoFile+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.UpdateDebugInfoFile](https://github.com/dahall/Vanara/search?l=C%23&q=UpdateDebugInfoFile)
[UpdateDebugInfoFileEx](https://www.google.com/search?num=5&q=UpdateDebugInfoFileEx+site%3Adocs.microsoft.com) | imagehlp.dll | imagehlp.h | [Vanara.PInvoke.ImageHlp.UpdateDebugInfoFileEx](https://github.com/dahall/Vanara/search?l=C%23&q=UpdateDebugInfoFileEx)
### Structures
Native Structure | Header | Managed Structure
--- | --- | ---
[<_DataDirectory>e__FixedBuffer](https://www.google.com/search?num=5&q=<_DataDirectory>e__FixedBuffer+site%3Adocs.microsoft.com) | | [Vanara.PInvoke.DbgHelp.IMAGE_OPTIONAL_HEADER.<_DataDirectory>e__FixedBuffer](https://github.com/dahall/Vanara/search?l=C%23&q=<_DataDirectory>e__FixedBuffer)
[ADDRESS](https://www.google.com/search?num=5&q=ADDRESS+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.ADDRESS](https://github.com/dahall/Vanara/search?l=C%23&q=ADDRESS)
[ADDRESS64](https://www.google.com/search?num=5&q=ADDRESS64+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.ADDRESS64](https://github.com/dahall/Vanara/search?l=C%23&q=ADDRESS64)
[API_VERSION](https://www.google.com/search?num=5&q=API_VERSION+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.API_VERSION](https://github.com/dahall/Vanara/search?l=C%23&q=API_VERSION)
[FPO_DATA](https://www.google.com/search?num=5&q=FPO_DATA+site%3Adocs.microsoft.com) | winnt.h | [Vanara.PInvoke.DbgHelp.FPO_DATA](https://github.com/dahall/Vanara/search?l=C%23&q=FPO_DATA)
[IMAGE_COFF_SYMBOLS_HEADER](https://www.google.com/search?num=5&q=IMAGE_COFF_SYMBOLS_HEADER+site%3Adocs.microsoft.com) | winnt.h | [Vanara.PInvoke.DbgHelp.IMAGE_COFF_SYMBOLS_HEADER](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGE_COFF_SYMBOLS_HEADER)
[IMAGE_DATA_DIRECTORY](https://www.google.com/search?num=5&q=IMAGE_DATA_DIRECTORY+site%3Adocs.microsoft.com) | winnt.h | [Vanara.PInvoke.DbgHelp.IMAGE_DATA_DIRECTORY](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGE_DATA_DIRECTORY)
[IMAGE_DEBUG_DIRECTORY](https://www.google.com/search?num=5&q=IMAGE_DEBUG_DIRECTORY+site%3Adocs.microsoft.com) | winnt.h | [Vanara.PInvoke.DbgHelp.IMAGE_DEBUG_DIRECTORY](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGE_DEBUG_DIRECTORY)
[IMAGE_DEBUG_INFORMATION](https://www.google.com/search?num=5&q=IMAGE_DEBUG_INFORMATION+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.IMAGE_DEBUG_INFORMATION](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGE_DEBUG_INFORMATION)
[IMAGE_EXPORT_DIRECTORY](https://www.google.com/search?num=5&q=IMAGE_EXPORT_DIRECTORY+site%3Adocs.microsoft.com) | winnt.h | [Vanara.PInvoke.DbgHelp.IMAGE_EXPORT_DIRECTORY](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGE_EXPORT_DIRECTORY)
[IMAGE_FILE_HEADER](https://www.google.com/search?num=5&q=IMAGE_FILE_HEADER+site%3Adocs.microsoft.com) | winnt.h | [Vanara.PInvoke.DbgHelp.IMAGE_FILE_HEADER](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGE_FILE_HEADER)
[IMAGE_FUNCTION_ENTRY](https://www.google.com/search?num=5&q=IMAGE_FUNCTION_ENTRY+site%3Adocs.microsoft.com) | winnt.h | [Vanara.PInvoke.DbgHelp.IMAGE_FUNCTION_ENTRY](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGE_FUNCTION_ENTRY)
[IMAGE_LOAD_CONFIG_CODE_INTEGRITY](https://www.google.com/search?num=5&q=IMAGE_LOAD_CONFIG_CODE_INTEGRITY+site%3Adocs.microsoft.com) | winnt.h | [Vanara.PInvoke.DbgHelp.IMAGE_LOAD_CONFIG_CODE_INTEGRITY](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGE_LOAD_CONFIG_CODE_INTEGRITY)
[IMAGE_LOAD_CONFIG_DIRECTORY32](https://www.google.com/search?num=5&q=IMAGE_LOAD_CONFIG_DIRECTORY32+site%3Adocs.microsoft.com) | winnt.h | [Vanara.PInvoke.DbgHelp.IMAGE_LOAD_CONFIG_DIRECTORY32](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGE_LOAD_CONFIG_DIRECTORY32)
[IMAGE_LOAD_CONFIG_DIRECTORY64](https://www.google.com/search?num=5&q=IMAGE_LOAD_CONFIG_DIRECTORY64+site%3Adocs.microsoft.com) | winnt.h | [Vanara.PInvoke.DbgHelp.IMAGE_LOAD_CONFIG_DIRECTORY64](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGE_LOAD_CONFIG_DIRECTORY64)
[IMAGE_NT_HEADERS](https://www.google.com/search?num=5&q=IMAGE_NT_HEADERS+site%3Adocs.microsoft.com) | winnt.h | [Vanara.PInvoke.DbgHelp.IMAGE_NT_HEADERS](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGE_NT_HEADERS)
[IMAGE_OPTIONAL_HEADER](https://www.google.com/search?num=5&q=IMAGE_OPTIONAL_HEADER+site%3Adocs.microsoft.com) | winnt.h | [Vanara.PInvoke.DbgHelp.IMAGE_OPTIONAL_HEADER](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGE_OPTIONAL_HEADER)
[IMAGE_RUNTIME_FUNCTION_ENTRY](https://www.google.com/search?num=5&q=IMAGE_RUNTIME_FUNCTION_ENTRY+site%3Adocs.microsoft.com) | winnt.h | [Vanara.PInvoke.DbgHelp.IMAGE_RUNTIME_FUNCTION_ENTRY](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGE_RUNTIME_FUNCTION_ENTRY)
[IMAGE_SECTION_HEADER](https://www.google.com/search?num=5&q=IMAGE_SECTION_HEADER+site%3Adocs.microsoft.com) | winnt.h | [Vanara.PInvoke.DbgHelp.IMAGE_SECTION_HEADER](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGE_SECTION_HEADER)
[IMAGEHLP_CBA_EVENT](https://www.google.com/search?num=5&q=IMAGEHLP_CBA_EVENT+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.IMAGEHLP_CBA_EVENT](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGEHLP_CBA_EVENT)
[IMAGEHLP_CBA_READ_MEMORY](https://www.google.com/search?num=5&q=IMAGEHLP_CBA_READ_MEMORY+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.IMAGEHLP_CBA_READ_MEMORY](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGEHLP_CBA_READ_MEMORY)
[IMAGEHLP_DEFERRED_SYMBOL_LOAD](https://www.google.com/search?num=5&q=IMAGEHLP_DEFERRED_SYMBOL_LOAD+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.IMAGEHLP_DEFERRED_SYMBOL_LOAD](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGEHLP_DEFERRED_SYMBOL_LOAD)
[IMAGEHLP_DEFERRED_SYMBOL_LOAD64](https://www.google.com/search?num=5&q=IMAGEHLP_DEFERRED_SYMBOL_LOAD64+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.IMAGEHLP_DEFERRED_SYMBOL_LOAD64](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGEHLP_DEFERRED_SYMBOL_LOAD64)
[IMAGEHLP_DEFERRED_SYMBOL_LOADW64](https://www.google.com/search?num=5&q=IMAGEHLP_DEFERRED_SYMBOL_LOADW64+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.IMAGEHLP_DEFERRED_SYMBOL_LOADW64](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGEHLP_DEFERRED_SYMBOL_LOADW64)
[IMAGEHLP_DUPLICATE_SYMBOL64](https://www.google.com/search?num=5&q=IMAGEHLP_DUPLICATE_SYMBOL64+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.IMAGEHLP_DUPLICATE_SYMBOL64](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGEHLP_DUPLICATE_SYMBOL64)
[IMAGEHLP_GET_TYPE_INFO_PARAMS](https://www.google.com/search?num=5&q=IMAGEHLP_GET_TYPE_INFO_PARAMS+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.IMAGEHLP_GET_TYPE_INFO_PARAMS](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGEHLP_GET_TYPE_INFO_PARAMS)
[IMAGEHLP_LINE](https://www.google.com/search?num=5&q=IMAGEHLP_LINE+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.IMAGEHLP_LINE](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGEHLP_LINE)
[IMAGEHLP_LINE64](https://www.google.com/search?num=5&q=IMAGEHLP_LINE64+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.IMAGEHLP_LINE64](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGEHLP_LINE64)
[IMAGEHLP_MODULE](https://www.google.com/search?num=5&q=IMAGEHLP_MODULE+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.IMAGEHLP_MODULE](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGEHLP_MODULE)
[IMAGEHLP_MODULE64](https://www.google.com/search?num=5&q=IMAGEHLP_MODULE64+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.IMAGEHLP_MODULE64](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGEHLP_MODULE64)
[IMAGEHLP_STACK_FRAME](https://www.google.com/search?num=5&q=IMAGEHLP_STACK_FRAME+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.IMAGEHLP_STACK_FRAME](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGEHLP_STACK_FRAME)
[IMAGEHLP_SYMBOL](https://www.google.com/search?num=5&q=IMAGEHLP_SYMBOL+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.IMAGEHLP_SYMBOL](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGEHLP_SYMBOL)
[IMAGEHLP_SYMBOL64](https://www.google.com/search?num=5&q=IMAGEHLP_SYMBOL64+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.IMAGEHLP_SYMBOL64](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGEHLP_SYMBOL64)
[IMAGEHLP_SYMBOLW](https://www.google.com/search?num=5&q=IMAGEHLP_SYMBOLW+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.IMAGEHLP_SYMBOLW](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGEHLP_SYMBOLW)
[IMAGEHLP_SYMBOLW64](https://www.google.com/search?num=5&q=IMAGEHLP_SYMBOLW64+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.IMAGEHLP_SYMBOLW64](https://github.com/dahall/Vanara/search?l=C%23&q=IMAGEHLP_SYMBOLW64)
[KDHELP](https://www.google.com/search?num=5&q=KDHELP+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.KDHELP](https://github.com/dahall/Vanara/search?l=C%23&q=KDHELP)
[KDHELP64](https://www.google.com/search?num=5&q=KDHELP64+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.KDHELP64](https://github.com/dahall/Vanara/search?l=C%23&q=KDHELP64)
[LIST_ENTRY](https://www.google.com/search?num=5&q=LIST_ENTRY+site%3Adocs.microsoft.com) | ntdef.h | [Vanara.PInvoke.DbgHelp.LIST_ENTRY](https://github.com/dahall/Vanara/search?l=C%23&q=LIST_ENTRY)
[LOADED_IMAGE](https://www.google.com/search?num=5&q=LOADED_IMAGE+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.LOADED_IMAGE](https://github.com/dahall/Vanara/search?l=C%23&q=LOADED_IMAGE)
[MISC](https://www.google.com/search?num=5&q=MISC+site%3Adocs.microsoft.com) | | [Vanara.PInvoke.DbgHelp.IMAGE_SECTION_HEADER.MISC](https://github.com/dahall/Vanara/search?l=C%23&q=MISC)
[MODLOAD_CVMISC](https://www.google.com/search?num=5&q=MODLOAD_CVMISC+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.MODLOAD_CVMISC](https://github.com/dahall/Vanara/search?l=C%23&q=MODLOAD_CVMISC)
[MODLOAD_DATA](https://www.google.com/search?num=5&q=MODLOAD_DATA+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.MODLOAD_DATA](https://github.com/dahall/Vanara/search?l=C%23&q=MODLOAD_DATA)
[OMAP](https://www.google.com/search?num=5&q=OMAP+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.OMAP](https://github.com/dahall/Vanara/search?l=C%23&q=OMAP)
[SOURCEFILE](https://www.google.com/search?num=5&q=SOURCEFILE+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.SOURCEFILE](https://github.com/dahall/Vanara/search?l=C%23&q=SOURCEFILE)
[SRCCODEINFO](https://www.google.com/search?num=5&q=SRCCODEINFO+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.SRCCODEINFO](https://github.com/dahall/Vanara/search?l=C%23&q=SRCCODEINFO)
[STACKFRAME](https://www.google.com/search?num=5&q=STACKFRAME+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.STACKFRAME](https://github.com/dahall/Vanara/search?l=C%23&q=STACKFRAME)
[STACKFRAME_EX](https://www.google.com/search?num=5&q=STACKFRAME_EX+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.STACKFRAME_EX](https://github.com/dahall/Vanara/search?l=C%23&q=STACKFRAME_EX)
[STACKFRAME64](https://www.google.com/search?num=5&q=STACKFRAME64+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.STACKFRAME64](https://github.com/dahall/Vanara/search?l=C%23&q=STACKFRAME64)
[SYMBOL_INFO](https://www.google.com/search?num=5&q=SYMBOL_INFO+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.SYMBOL_INFO](https://github.com/dahall/Vanara/search?l=C%23&q=SYMBOL_INFO)
[SYMSRV_INDEX_INFO](https://www.google.com/search?num=5&q=SYMSRV_INDEX_INFO+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.SYMSRV_INDEX_INFO](https://github.com/dahall/Vanara/search?l=C%23&q=SYMSRV_INDEX_INFO)
[TI_FINDCHILDREN_PARAMS](https://www.google.com/search?num=5&q=TI_FINDCHILDREN_PARAMS+site%3Adocs.microsoft.com) | dbghelp.h | [Vanara.PInvoke.DbgHelp.TI_FINDCHILDREN_PARAMS](https://github.com/dahall/Vanara/search?l=C%23&q=TI_FINDCHILDREN_PARAMS)

View File

@ -1,4 +1,5 @@
using System;
using System.Linq;
using System.Runtime.InteropServices;
using Vanara.Extensions;
using Vanara.InteropServices;
@ -902,7 +903,7 @@ namespace Vanara.PInvoke
// https://docs.microsoft.com/en-us/windows/win32/api/dbghelp/ns-dbghelp-imagehlp_line typedef struct _IMAGEHLP_LINE { DWORD
// SizeOfStruct; PVOID Key; DWORD LineNumber; PCHAR FileName; DWORD Address; } IMAGEHLP_LINE, *PIMAGEHLP_LINE;
[PInvokeData("dbghelp.h", MSDNShortId = "NS:dbghelp._IMAGEHLP_LINE")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct IMAGEHLP_LINE
{
/// <summary>
@ -919,7 +920,7 @@ namespace Vanara.PInvoke
public uint LineNumber;
/// <summary>The name of the file, including the full path.</summary>
[MarshalAs(UnmanagedType.LPStr)] public string FileName;
[MarshalAs(UnmanagedType.LPTStr)] public string FileName;
/// <summary>The address of the first instruction in the line.</summary>
public uint Address;
@ -938,7 +939,7 @@ namespace Vanara.PInvoke
// https://docs.microsoft.com/en-us/windows/win32/api/dbghelp/ns-dbghelp-imagehlp_line64 typedef struct _IMAGEHLP_LINE64 { DWORD
// SizeOfStruct; PVOID Key; DWORD LineNumber; PCHAR FileName; DWORD64 Address; } IMAGEHLP_LINE64, *PIMAGEHLP_LINE64;
[PInvokeData("dbghelp.h", MSDNShortId = "NS:dbghelp._IMAGEHLP_LINE64")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct IMAGEHLP_LINE64
{
/// <summary>
@ -955,79 +956,7 @@ namespace Vanara.PInvoke
public uint LineNumber;
/// <summary>The name of the file, including the full path.</summary>
[MarshalAs(UnmanagedType.LPStr)] public string FileName;
/// <summary>The address of the first instruction in the line.</summary>
public ulong Address;
}
/// <summary>Represents a source file line.</summary>
/// <remarks>
/// <para>
/// This structure supersedes the <c>IMAGEHLP_LINE</c> structure. For more information, see Updated Platform Support.
/// <c>IMAGEHLP_LINE</c> is defined as follows in DbgHelp.h.
/// </para>
/// <para>
/// <code>#if !defined(_IMAGEHLP_SOURCE_) &amp;&amp; defined(_IMAGEHLP64) #define IMAGEHLP_LINE IMAGEHLP_LINE64 #define PIMAGEHLP_LINE PIMAGEHLP_LINE64 #else typedef struct _IMAGEHLP_LINE { DWORD SizeOfStruct; PVOID Key; DWORD LineNumber; PCHAR FileName; DWORD Address; } IMAGEHLP_LINE, *PIMAGEHLP_LINE; typedef struct _IMAGEHLP_LINEW { DWORD SizeOfStruct; PVOID Key; DWORD LineNumber; PCHAR FileName; DWORD64 Address; } IMAGEHLP_LINEW, *PIMAGEHLP_LINEW; #endif</code>
/// </para>
/// </remarks>
// https://docs.microsoft.com/en-us/windows/win32/api/dbghelp/ns-dbghelp-imagehlp_line typedef struct _IMAGEHLP_LINE { DWORD
// SizeOfStruct; PVOID Key; DWORD LineNumber; PCHAR FileName; DWORD Address; } IMAGEHLP_LINE, *PIMAGEHLP_LINE;
[PInvokeData("dbghelp.h", MSDNShortId = "NS:dbghelp._IMAGEHLP_LINE")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct IMAGEHLP_LINEW
{
/// <summary>
/// The size of the structure, in bytes. The caller must set this member to
/// <code>sizeof(IMAGEHLP_LINE64)</code>
/// .
/// </summary>
public uint SizeOfStruct;
/// <summary>This member is reserved for use by the operating system.</summary>
public IntPtr Key;
/// <summary>The line number in the file.</summary>
public uint LineNumber;
/// <summary>The name of the file, including the full path.</summary>
[MarshalAs(UnmanagedType.LPStr)] public string FileName;
/// <summary>The address of the first instruction in the line.</summary>
public ulong Address;
}
/// <summary>Represents a source file line.</summary>
/// <remarks>
/// <para>
/// This structure supersedes the <c>IMAGEHLP_LINE</c> structure. For more information, see Updated Platform Support.
/// <c>IMAGEHLP_LINE</c> is defined as follows in DbgHelp.h.
/// </para>
/// <para>
/// <code>#if !defined(_IMAGEHLP_SOURCE_) &amp;&amp; defined(_IMAGEHLP64) #define IMAGEHLP_LINE IMAGEHLP_LINE64 #define PIMAGEHLP_LINE PIMAGEHLP_LINE64 #else typedef struct _IMAGEHLP_LINE { DWORD SizeOfStruct; PVOID Key; DWORD LineNumber; PCHAR FileName; DWORD Address; } IMAGEHLP_LINE, *PIMAGEHLP_LINE; typedef struct _IMAGEHLP_LINEW { DWORD SizeOfStruct; PVOID Key; DWORD LineNumber; PCHAR FileName; DWORD64 Address; } IMAGEHLP_LINEW, *PIMAGEHLP_LINEW; #endif</code>
/// </para>
/// </remarks>
// https://docs.microsoft.com/en-us/windows/win32/api/dbghelp/ns-dbghelp-imagehlp_linew64 typedef struct _IMAGEHLP_LINEW64 { DWORD
// SizeOfStruct; PVOID Key; DWORD LineNumber; PWSTR FileName; DWORD64 Address; } IMAGEHLP_LINEW64, *PIMAGEHLP_LINEW64;
[PInvokeData("dbghelp.h", MSDNShortId = "NS:dbghelp._IMAGEHLP_LINEW64")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct IMAGEHLP_LINEW64
{
/// <summary>
/// The size of the structure, in bytes. The caller must set this member to
/// <code>sizeof(IMAGEHLP_LINE64)</code>
/// .
/// </summary>
public uint SizeOfStruct;
/// <summary>This member is reserved for use by the operating system.</summary>
public IntPtr Key;
/// <summary>The line number in the file.</summary>
public uint LineNumber;
/// <summary>The name of the file, including the full path.</summary>
[MarshalAs(UnmanagedType.LPWStr)] public string FileName;
[MarshalAs(UnmanagedType.LPTStr)] public string FileName;
/// <summary>The address of the first instruction in the line.</summary>
public ulong Address;
@ -1047,7 +976,7 @@ namespace Vanara.PInvoke
// SizeOfStruct; DWORD BaseOfImage; DWORD ImageSize; DWORD TimeDateStamp; DWORD CheckSum; DWORD NumSyms; SYM_TYPE SymType; CHAR
// ModuleName[32]; CHAR ImageName[256]; CHAR LoadedImageName[256]; } IMAGEHLP_MODULE, *PIMAGEHLP_MODULE;
[PInvokeData("dbghelp.h", MSDNShortId = "NS:dbghelp._IMAGEHLP_MODULE")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct IMAGEHLP_MODULE
{
/// <summary>
@ -1155,7 +1084,7 @@ namespace Vanara.PInvoke
// DWORD PdbSig; GUID PdbSig70; DWORD PdbAge; BOOL PdbUnmatched; BOOL DbgUnmatched; BOOL LineNumbers; BOOL GlobalSymbols; BOOL
// TypeInfo; BOOL SourceIndexed; BOOL Publics; DWORD MachineType; DWORD Reserved; } IMAGEHLP_MODULE64, *PIMAGEHLP_MODULE64;
[PInvokeData("dbghelp.h", MSDNShortId = "NS:dbghelp._IMAGEHLP_MODULE64")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct IMAGEHLP_MODULE64
{
/// <summary>
@ -1300,273 +1229,6 @@ namespace Vanara.PInvoke
public uint Reserved;
}
/// <summary>Contains module information.</summary>
/// <remarks>
/// <para>
/// This structure supersedes the <c>IMAGEHLP_MODULE</c> structure. For more information, see Updated Platform Support.
/// <c>IMAGEHLP_MODULE</c> is defined as follows in DbgHelp.h.
/// </para>
/// <para>
/// <code>#if !defined(_IMAGEHLP_SOURCE_) &amp;&amp; defined(_IMAGEHLP64) #define IMAGEHLP_MODULE IMAGEHLP_MODULE64 #define PIMAGEHLP_MODULE PIMAGEHLP_MODULE64 #define IMAGEHLP_MODULEW IMAGEHLP_MODULEW64 #define PIMAGEHLP_MODULEW PIMAGEHLP_MODULEW64 #else typedef struct _IMAGEHLP_MODULE { DWORD SizeOfStruct; DWORD BaseOfImage; DWORD ImageSize; DWORD TimeDateStamp; DWORD CheckSum; DWORD NumSyms; SYM_TYPE SymType; CHAR ModuleName[32]; CHAR ImageName[256]; CHAR LoadedImageName[256]; } IMAGEHLP_MODULE, *PIMAGEHLP_MODULE; typedef struct _IMAGEHLP_MODULEW { DWORD SizeOfStruct; DWORD BaseOfImage; DWORD ImageSize; DWORD TimeDateStamp; DWORD CheckSum; DWORD NumSyms; SYM_TYPE SymType; WCHAR ModuleName[32]; WCHAR ImageName[256]; WCHAR LoadedImageName[256]; } IMAGEHLP_MODULEW, *PIMAGEHLP_MODULEW; #endif</code>
/// </para>
/// </remarks>
// https://docs.microsoft.com/en-us/windows/win32/api/dbghelp/ns-dbghelp-imagehlp_module typedef struct _IMAGEHLP_MODULE { DWORD
// SizeOfStruct; DWORD BaseOfImage; DWORD ImageSize; DWORD TimeDateStamp; DWORD CheckSum; DWORD NumSyms; SYM_TYPE SymType; CHAR
// ModuleName[32]; CHAR ImageName[256]; CHAR LoadedImageName[256]; } IMAGEHLP_MODULE, *PIMAGEHLP_MODULE;
[PInvokeData("dbghelp.h", MSDNShortId = "NS:dbghelp._IMAGEHLP_MODULE")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct IMAGEHLP_MODULEW
{
/// <summary>
/// The size of the structure, in bytes. The caller must set this member to
/// <code>sizeof(IMAGEHLP_MODULE64)</code>
/// .
/// </summary>
public uint SizeOfStruct;
/// <summary>The base virtual address where the image is loaded.</summary>
public uint BaseOfImage;
/// <summary>The size of the image, in bytes.</summary>
public uint ImageSize;
/// <summary>
/// The date and timestamp value. The value is represented in the number of seconds elapsed since midnight (00:00:00), January
/// 1, 1970, Universal Coordinated Time, according to the system clock. The timestamp can be printed using the C run-time (CRT)
/// function <c>ctime</c>.
/// </summary>
public uint TimeDateStamp;
/// <summary>The checksum of the image. This value can be zero.</summary>
public uint CheckSum;
/// <summary>
/// The number of symbols in the symbol table. The value of this parameter is not meaningful when <c>SymPdb</c> is specified as
/// the value of the SymType parameter.
/// </summary>
public uint NumSyms;
/// <summary>
/// <para>The type of symbols that are loaded. This member can be one of the following values.</para>
/// <list type="table">
/// <listheader>
/// <term>Value</term>
/// <term>Meaning</term>
/// </listheader>
/// <item>
/// <term>SymCoff</term>
/// <term>COFF symbols.</term>
/// </item>
/// <item>
/// <term>SymCv</term>
/// <term>CodeView symbols.</term>
/// </item>
/// <item>
/// <term>SymDeferred</term>
/// <term>Symbol loading deferred.</term>
/// </item>
/// <item>
/// <term>SymDia</term>
/// <term>DIA symbols.</term>
/// </item>
/// <item>
/// <term>SymExport</term>
/// <term>Symbols generated from a DLL export table.</term>
/// </item>
/// <item>
/// <term>SymNone</term>
/// <term>No symbols are loaded.</term>
/// </item>
/// <item>
/// <term>SymPdb</term>
/// <term>PDB symbols.</term>
/// </item>
/// <item>
/// <term>SymSym</term>
/// <term>.sym file.</term>
/// </item>
/// <item>
/// <term>SymVirtual</term>
/// <term>The virtual module created by SymLoadModuleEx with SLMFLAG_VIRTUAL.</term>
/// </item>
/// </list>
/// </summary>
public SYM_TYPE SymType;
/// <summary>The module name.</summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string ModuleName;
/// <summary>The image name. The name may or may not contain a full path.</summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string ImageName;
/// <summary>The full path and file name of the file from which symbols were loaded.</summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string LoadedImageName;
}
/// <summary>Contains module information.</summary>
/// <remarks>
/// <para>
/// This structure supersedes the <c>IMAGEHLP_MODULE</c> structure. For more information, see Updated Platform Support.
/// <c>IMAGEHLP_MODULE</c> is defined as follows in DbgHelp.h.
/// </para>
/// <para>
/// <code>#if !defined(_IMAGEHLP_SOURCE_) &amp;&amp; defined(_IMAGEHLP64) #define IMAGEHLP_MODULE IMAGEHLP_MODULE64 #define PIMAGEHLP_MODULE PIMAGEHLP_MODULE64 #define IMAGEHLP_MODULEW IMAGEHLP_MODULEW64 #define PIMAGEHLP_MODULEW PIMAGEHLP_MODULEW64 #else typedef struct _IMAGEHLP_MODULE { DWORD SizeOfStruct; DWORD BaseOfImage; DWORD ImageSize; DWORD TimeDateStamp; DWORD CheckSum; DWORD NumSyms; SYM_TYPE SymType; CHAR ModuleName[32]; CHAR ImageName[256]; CHAR LoadedImageName[256]; } IMAGEHLP_MODULE, *PIMAGEHLP_MODULE; typedef struct _IMAGEHLP_MODULEW { DWORD SizeOfStruct; DWORD BaseOfImage; DWORD ImageSize; DWORD TimeDateStamp; DWORD CheckSum; DWORD NumSyms; SYM_TYPE SymType; WCHAR ModuleName[32]; WCHAR ImageName[256]; WCHAR LoadedImageName[256]; } IMAGEHLP_MODULEW, *PIMAGEHLP_MODULEW; #endif</code>
/// </para>
/// </remarks>
// https://docs.microsoft.com/en-us/windows/win32/api/dbghelp/ns-dbghelp-imagehlp_modulew64 typedef struct _IMAGEHLP_MODULEW64 {
// DWORD SizeOfStruct; DWORD64 BaseOfImage; DWORD ImageSize; DWORD TimeDateStamp; DWORD CheckSum; DWORD NumSyms; SYM_TYPE SymType;
// WCHAR ModuleName[32]; WCHAR ImageName[256]; WCHAR LoadedImageName[256]; WCHAR LoadedPdbName[256]; DWORD CVSig; WCHAR
// *CVData[MAX_PATH 3]; DWORD PdbSig; GUID PdbSig70; DWORD PdbAge; BOOL PdbUnmatched; BOOL DbgUnmatched; BOOL LineNumbers; BOOL
// GlobalSymbols; BOOL TypeInfo; BOOL SourceIndexed; BOOL Publics; DWORD MachineType; DWORD Reserved; } IMAGEHLP_MODULEW64, *PIMAGEHLP_MODULEW64;
[PInvokeData("dbghelp.h", MSDNShortId = "NS:dbghelp._IMAGEHLP_MODULEW64")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct IMAGEHLP_MODULEW64
{
/// <summary>
/// The size of the structure, in bytes. The caller must set this member to
/// <code>sizeof(IMAGEHLP_MODULE64)</code>
/// .
/// </summary>
public uint SizeOfStruct;
/// <summary>The base virtual address where the image is loaded.</summary>
public ulong BaseOfImage;
/// <summary>The size of the image, in bytes.</summary>
public uint ImageSize;
/// <summary>
/// The date and timestamp value. The value is represented in the number of seconds elapsed since midnight (00:00:00), January
/// 1, 1970, Universal Coordinated Time, according to the system clock. The timestamp can be printed using the C run-time (CRT)
/// function <c>ctime</c>.
/// </summary>
public uint TimeDateStamp;
/// <summary>The checksum of the image. This value can be zero.</summary>
public uint CheckSum;
/// <summary>
/// The number of symbols in the symbol table. The value of this parameter is not meaningful when <c>SymPdb</c> is specified as
/// the value of the SymType parameter.
/// </summary>
public uint NumSyms;
/// <summary>
/// <para>The type of symbols that are loaded. This member can be one of the following values.</para>
/// <list type="table">
/// <listheader>
/// <term>Value</term>
/// <term>Meaning</term>
/// </listheader>
/// <item>
/// <term>SymCoff</term>
/// <term>COFF symbols.</term>
/// </item>
/// <item>
/// <term>SymCv</term>
/// <term>CodeView symbols.</term>
/// </item>
/// <item>
/// <term>SymDeferred</term>
/// <term>Symbol loading deferred.</term>
/// </item>
/// <item>
/// <term>SymDia</term>
/// <term>DIA symbols.</term>
/// </item>
/// <item>
/// <term>SymExport</term>
/// <term>Symbols generated from a DLL export table.</term>
/// </item>
/// <item>
/// <term>SymNone</term>
/// <term>No symbols are loaded.</term>
/// </item>
/// <item>
/// <term>SymPdb</term>
/// <term>PDB symbols.</term>
/// </item>
/// <item>
/// <term>SymSym</term>
/// <term>.sym file.</term>
/// </item>
/// <item>
/// <term>SymVirtual</term>
/// <term>The virtual module created by SymLoadModuleEx with SLMFLAG_VIRTUAL.</term>
/// </item>
/// </list>
/// </summary>
public SYM_TYPE SymType;
/// <summary>The module name.</summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string ModuleName;
/// <summary>The image name. The name may or may not contain a full path.</summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string ImageName;
/// <summary>The full path and file name of the file from which symbols were loaded.</summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string LoadedImageName;
/// <summary>The full path and file name of the .pdb file.</summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string LoadedPdbName;
/// <summary>The signature of the CV record in the debug directories.</summary>
public uint CVSig;
/// <summary>The contents of the CV record.</summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260 * 3)]
public string CVData;
/// <summary>The PDB signature.</summary>
public uint PdbSig;
/// <summary>The PDB signature (Visual C/C++ 7.0 and later)</summary>
public Guid PdbSig70;
/// <summary>The DBI age of PDB.</summary>
public uint PdbAge;
/// <summary>A value that indicates whether the loaded PDB is unmatched.</summary>
[MarshalAs(UnmanagedType.Bool)] public bool PdbUnmatched;
/// <summary>A value that indicates whether the loaded DBG is unmatched.</summary>
[MarshalAs(UnmanagedType.Bool)] public bool DbgUnmatched;
/// <summary>A value that indicates whether line number information is available.</summary>
[MarshalAs(UnmanagedType.Bool)] public bool LineNumbers;
/// <summary>A value that indicates whether symbol information is available.</summary>
[MarshalAs(UnmanagedType.Bool)] public bool GlobalSymbols;
/// <summary>A value that indicates whether type information is available.</summary>
[MarshalAs(UnmanagedType.Bool)] public bool TypeInfo;
/// <summary>
/// <para>A value that indicates whether the .pdb supports the source server.</para>
/// <para><c>DbgHelp 6.1 and earlier:</c> This member is not supported.</para>
/// </summary>
[MarshalAs(UnmanagedType.Bool)] public bool SourceIndexed;
/// <summary>
/// <para>A value that indicates whether the module contains public symbols.</para>
/// <para><c>DbgHelp 6.1 and earlier:</c> This member is not supported.</para>
/// </summary>
[MarshalAs(UnmanagedType.Bool)] public bool Publics;
/// <summary/>
public uint MachineType;
/// <summary/>
public uint Reserved;
}
/// <summary>Contains the stack frame information. This structure is used with the SymSetContext function.</summary>
// https://docs.microsoft.com/en-us/windows/win32/api/dbghelp/ns-dbghelp-imagehlp_stack_frame typedef struct _IMAGEHLP_STACK_FRAME {
// ULONG64 InstructionOffset; ULONG64 ReturnOffset; ULONG64 FrameOffset; ULONG64 StackOffset; ULONG64 BackingStoreOffset; ULONG64
@ -1639,14 +1301,11 @@ namespace Vanara.PInvoke
// https://docs.microsoft.com/en-us/windows/win32/api/dbghelp/ns-dbghelp-imagehlp_symbol typedef struct _IMAGEHLP_SYMBOL { DWORD
// SizeOfStruct; DWORD Address; DWORD Size; DWORD Flags; DWORD MaxNameLength; CHAR Name[1]; } IMAGEHLP_SYMBOL, *PIMAGEHLP_SYMBOL;
[PInvokeData("dbghelp.h", MSDNShortId = "NS:dbghelp._IMAGEHLP_SYMBOL")]
[VanaraMarshaler(typeof(SafeAnysizeStringMarshaler<IMAGEHLP_SYMBOL>), "Ansi")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct IMAGEHLP_SYMBOL
{
/// <summary>
/// The size of the structure, in bytes. The caller must set this member to
/// <code>sizeof(IMAGEHLP_SYMBOL64)</code>
/// .
/// </summary>
/// <summary>The size of the structure, in bytes. The caller must set this member to <c>sizeof(IMAGEHLP_SYMBOL)</c>.</summary>
public uint SizeOfStruct;
/// <summary>The virtual address for the symbol.</summary>
@ -1673,6 +1332,78 @@ namespace Vanara.PInvoke
public string Name;
}
/// <summary>
/// A marshaler implementation of <see cref="IVanaraMarshaler"/> that pulls a full string from a structure with a last field having
/// one character.
/// </summary>
/// <typeparam name="T">The structure type to be marshaled.</typeparam>
/// <seealso cref="Vanara.InteropServices.IVanaraMarshaler"/>
public class SafeAnysizeStringMarshaler<T> : IVanaraMarshaler
{
private static readonly Type structType;
private static readonly System.Reflection.FieldInfo fiStr;
private CharSet charSet;
static SafeAnysizeStringMarshaler()
{
structType = typeof(T);
if (!structType.IsLayoutSequential)
throw new InvalidOperationException("This class can only manange sequential layout structures.");
fiStr = structType.GetOrderedFields().Last();
if (fiStr.FieldType != typeof(string))
throw new ArgumentException("The last field must be a string.");
}
/// <summary>Initializes a new instance of the <see cref="SafeAnysizeStringMarshaler{T}"/> class.</summary>
/// <param name="cookie">
/// The name of the field in <typeparamref name="T"/> that specifies the string length of the last field of <typeparamref name="T"/>.
/// </param>
public SafeAnysizeStringMarshaler(string cookie)
{
charSet = (CharSet)Enum.Parse(typeof(CharSet), cookie);
}
/// <summary>Gets the size of the native data.</summary>
/// <returns>
/// The size, in bytes, of the base object in memory. This should return the equivalent of the sizeof(X) function in C/C++.
/// </returns>
public SizeT GetNativeSize() => Marshal.SizeOf(structType);
SafeAllocatedMemoryHandle IVanaraMarshaler.MarshalManagedToNative(object managedObject)
{
// Get structure information
if (managedObject is null) return SafeHGlobalHandle.Null;
if (!(managedObject is T value))
throw new ArgumentException($"{nameof(managedObject)} must be an instance of {structType.Name}.");
// Get the current value for the last field (or create one if needed)
var strVal = fiStr.GetValue(value) as string ?? string.Empty;
// Determine mem required for current struct and last field value
var chSz = StringHelper.GetCharSize(charSet);
var memSz = GetNativeSize() + chSz * strVal.Length;
// Set structure into allocated mem
var ret = new SafeHGlobalHandle(memSz);
ret.Write(value);
// Set string into mem
StringHelper.Write(strVal, ret, out _, true, charSet, chSz * (strVal.Length + 1));
return ret;
}
object IVanaraMarshaler.MarshalNativeToManaged(IntPtr pNativeData, SizeT allocatedBytes)
{
if (pNativeData == IntPtr.Zero) return null;
// Move structure and assign string
var value = (T)Marshal.PtrToStructure(pNativeData, typeof(T));
var strVal = StringHelper.GetString(pNativeData.Offset(Marshal.OffsetOf(typeof(T), fiStr.Name).ToInt32()), charSet);
fiStr.SetValueDirect(__makeref(value), strVal);
return value;
}
}
/// <summary>Contains symbol information.</summary>
/// <remarks>
/// <para>
@ -1686,14 +1417,11 @@ namespace Vanara.PInvoke
// https://docs.microsoft.com/en-us/windows/win32/api/dbghelp/ns-dbghelp-imagehlp_symbol64 typedef struct _IMAGEHLP_SYMBOL64 { DWORD
// SizeOfStruct; DWORD64 Address; DWORD Size; DWORD Flags; DWORD MaxNameLength; CHAR Name[1]; } IMAGEHLP_SYMBOL64, *PIMAGEHLP_SYMBOL64;
[PInvokeData("dbghelp.h", MSDNShortId = "NS:dbghelp._IMAGEHLP_SYMBOL64")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
[VanaraMarshaler(typeof(SafeAnysizeStringMarshaler<IMAGEHLP_SYMBOL64>), "Ansi")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct IMAGEHLP_SYMBOL64
{
/// <summary>
/// The size of the structure, in bytes. The caller must set this member to
/// <code>sizeof(IMAGEHLP_SYMBOL64)</code>
/// .
/// </summary>
/// <summary>The size of the structure, in bytes. The caller must set this member to <c>sizeof(IMAGEHLP_SYMBOL64)</c>.</summary>
public uint SizeOfStruct;
/// <summary>The virtual address for the symbol.</summary>
@ -1733,14 +1461,11 @@ namespace Vanara.PInvoke
// https://docs.microsoft.com/en-us/windows/win32/api/dbghelp/ns-dbghelp-imagehlp_symbol typedef struct _IMAGEHLP_SYMBOL { DWORD
// SizeOfStruct; DWORD Address; DWORD Size; DWORD Flags; DWORD MaxNameLength; CHAR Name[1]; } IMAGEHLP_SYMBOL, *PIMAGEHLP_SYMBOL;
[PInvokeData("dbghelp.h", MSDNShortId = "NS:dbghelp._IMAGEHLP_SYMBOL")]
[VanaraMarshaler(typeof(SafeAnysizeStringMarshaler<IMAGEHLP_SYMBOLW>), "Unicode")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct IMAGEHLP_SYMBOLW
{
/// <summary>
/// The size of the structure, in bytes. The caller must set this member to
/// <code>sizeof(IMAGEHLP_SYMBOL64)</code>
/// .
/// </summary>
/// <summary>The size of the structure, in bytes. The caller must set this member to <c>sizeof(IMAGEHLP_SYMBOLW)</c>.</summary>
public uint SizeOfStruct;
/// <summary>The virtual address for the symbol.</summary>
@ -1780,14 +1505,11 @@ namespace Vanara.PInvoke
// https://docs.microsoft.com/en-us/windows/win32/api/dbghelp/ns-dbghelp-imagehlp_symbolw64 typedef struct _IMAGEHLP_SYMBOLW64 {
// DWORD SizeOfStruct; DWORD64 Address; DWORD Size; DWORD Flags; DWORD MaxNameLength; WCHAR Name[1]; } IMAGEHLP_SYMBOLW64, *PIMAGEHLP_SYMBOLW64;
[PInvokeData("dbghelp.h", MSDNShortId = "NS:dbghelp._IMAGEHLP_SYMBOLW64")]
[VanaraMarshaler(typeof(SafeAnysizeStringMarshaler<IMAGEHLP_SYMBOLW64>), "Unicode")]
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct IMAGEHLP_SYMBOLW64
{
/// <summary>
/// The size of the structure, in bytes. The caller must set this member to
/// <code>sizeof(IMAGEHLP_SYMBOL64)</code>
/// .
/// </summary>
/// <summary>The size of the structure, in bytes. The caller must set this member to <c>sizeof(IMAGEHLP_SYMBOLW64)</c>.</summary>
public uint SizeOfStruct;
/// <summary>The virtual address for the symbol.</summary>
@ -2690,6 +2412,33 @@ namespace Vanara.PInvoke
public uint[] ChildId;
}
/// <summary>Contains symbol information.</summary>
/// <seealso cref="Vanara.InteropServices.SafeHGlobalStruct{T}"/>
public class SafeIMAGEHLP_SYMBOL : SafeHGlobalStruct<IMAGEHLP_SYMBOL>
{
/// <summary>Initializes a new instance of the <see cref="SafeIMAGEHLP_SYMBOL"/> class.</summary>
/// <param name="charSet">The character set.</param>
/// <param name="maxNameLen">Maximum length of the name.</param>
public SafeIMAGEHLP_SYMBOL(int maxNameLen = 261) : base(BaseStructSize + (maxNameLen - 1))
{
handle.Write((uint)BaseStructSize, 0, Size);
handle.Write((uint)maxNameLen, (int)FieldOffset(nameof(IMAGEHLP_SYMBOL.MaxNameLength)), Size);
}
}
/// <summary>Contains symbol information.</summary>
/// <seealso cref="Vanara.InteropServices.SafeHGlobalStruct{T}"/>
public class SafeIMAGEHLP_SYMBOL64 : SafeHGlobalStruct<IMAGEHLP_SYMBOL64>
{
/// <summary>Initializes a new instance of the <see cref="SafeIMAGEHLP_SYMBOL64"/> class.</summary>
/// <param name="maxNameLen">Maximum length of the name.</param>
public SafeIMAGEHLP_SYMBOL64(int maxNameLen = 261) : base(BaseStructSize + (maxNameLen - 1))
{
handle.Write((uint)BaseStructSize, 0, Size);
handle.Write((uint)maxNameLen, (int)FieldOffset(nameof(IMAGEHLP_SYMBOL64.MaxNameLength)), Size);
}
}
/// <summary>Pointer to a LOADED_IMAGE structure.</summary>
/// <seealso cref="System.Runtime.InteropServices.SafeHandle"/>
public class SafeLOADED_IMAGE : SafeHandle

File diff suppressed because it is too large Load Diff

View File

@ -460,6 +460,34 @@ namespace Vanara.PInvoke
[PInvokeData("dbghelp.h", MSDNShortId = "NC:dbghelp.PTRANSLATE_ADDRESS_ROUTINE64")]
public delegate ulong PTRANSLATE_ADDRESS_ROUTINE64(HPROCESS hProcess, HTHREAD hThread, in ADDRESS64 lpaddr);
/// <summary>
/// <para>
/// An application-defined callback function used with the StackWalk64 function. It provides address translation for 16-bit addresses.
/// </para>
/// <para>
/// The <c>PTRANSLATE_ADDRESS_ROUTINE64</c> type defines a pointer to this callback function. <c>TranslateAddressProc64</c> is a
/// placeholder for the application-defined function name.
/// </para>
/// </summary>
/// <param name="hProcess">A handle to the process for which the stack trace is generated.</param>
/// <param name="hThread">A handle to the thread for which the stack trace is generated.</param>
/// <param name="lpaddr">An address to be translated.</param>
/// <returns>The function returns the translated address.</returns>
/// <remarks>
/// <para>
/// This callback function supersedes the PTRANSLATE_ADDRESS_ROUTINE callback function. PTRANSLATE_ADDRESS_ROUTINE is defined as
/// follows in Dbghelp.h.
/// </para>
/// <para>
/// <code>#if !defined(_IMAGEHLP_SOURCE_) &amp;&amp; defined(_IMAGEHLP64) #define PTRANSLATE_ADDRESS_ROUTINE PTRANSLATE_ADDRESS_ROUTINE64 #else typedef DWORD (__stdcall *PTRANSLATE_ADDRESS_ROUTINE)( __in HANDLE hProcess, __in HANDLE hThread, __out LPADDRESS lpaddr ); #endif</code>
/// </para>
/// </remarks>
// https://docs.microsoft.com/en-us/windows/win32/api/dbghelp/nc-dbghelp-ptranslate_address_routine
// PTRANSLATE_ADDRESS_ROUTINE PtranslateAddressRoutine; DWORD PtranslateAddressRoutine( HANDLE hProcess, HANDLE hThread, LPADDRESS lpaddr ) {...}
[UnmanagedFunctionPointer(CallingConvention.Winapi)]
[PInvokeData("dbghelp.h", MSDNShortId = "NC:dbghelp.PTRANSLATE_ADDRESS_ROUTINE")]
public delegate uint PTRANSLATE_ADDRESS_ROUTINE(HPROCESS hProcess, HTHREAD hThread, in ADDRESS lpaddr);
/// <summary>The addressing mode.</summary>
[PInvokeData("dbghelp.h", MSDNShortId = "NS:dbghelp._tagADDRESS64")]
public enum ADDRESS_MODE
@ -2250,6 +2278,72 @@ namespace Vanara.PInvoke
[PInvokeData("dbghelp.h", MSDNShortId = "NF:dbghelp.SetSymLoadError")]
public static extern void SetSymLoadError(uint error);
/// <summary>Obtains a stack trace.</summary>
/// <param name="MachineType">
/// <para>The architecture type of the computer for which the stack trace is generated. This parameter can be one of the following values.</para>
/// <list type="table">
/// <listheader>
/// <term>Value</term>
/// <term>Meaning</term>
/// </listheader>
/// <item>
/// <term>IMAGE_FILE_MACHINE_I386 0x014c</term>
/// <term>Intel x86</term>
/// </item>
/// <item>
/// <term>IMAGE_FILE_MACHINE_IA64 0x0200</term>
/// <term>Intel Itanium</term>
/// </item>
/// <item>
/// <term>IMAGE_FILE_MACHINE_AMD64 0x8664</term>
/// <term>x64 (AMD64 or EM64T)</term>
/// </item>
/// </list>
/// </param>
/// <param name="hProcess">A handle to the process for which the stack trace is generated. If the caller supplies a valid callback pointer for the ReadMemoryRoutine parameter, then this value does not have to be a valid process handle. It can be a token that is unique and consistently the same for all calls to the <c>StackWalk64</c> function. If the symbol handler is used with <c>StackWalk64</c>, use the same process handles for the calls to each function.</param>
/// <param name="hThread">A handle to the thread for which the stack trace is generated. If the caller supplies a valid callback pointer for the ReadMemoryRoutine parameter, then this value does not have to be a valid thread handle. It can be a token that is unique and consistently the same for all calls to the <c>StackWalk64</c> function.</param>
/// <param name="StackFrame">A pointer to a STACKFRAME64 structure. This structure receives information for the next frame, if the function call succeeds.</param>
/// <param name="ContextRecord">
/// <para>A pointer to a CONTEXT structure. This parameter is required only when the MachineType parameter is not <c>IMAGE_FILE_MACHINE_I386</c>. However, it is recommended that this parameter contain a valid context record. This allows <c>StackWalk64</c> to handle a greater variety of situations.</para>
/// <para>This context may be modified, so do not pass a context record that should not be modified.</para>
/// </param>
/// <param name="ReadMemoryRoutine">
/// <para>A callback routine that provides memory read services. When the <c>StackWalk64</c> function needs to read memory from the process's address space, the ReadProcessMemoryProc64 callback is used.</para>
/// <para>If this parameter is <c>NULL</c>, then the function uses a default routine. In this case, the hProcess parameter must be a valid process handle.</para>
/// <para>If this parameter is not <c>NULL</c>, the application should implement and register a symbol handler callback function that handles <c>CBA_READ_MEMORY</c>.</para>
/// </param>
/// <param name="FunctionTableAccessRoutine">
/// <para>A callback routine that provides access to the run-time function table for the process. This parameter is required because the <c>StackWalk64</c> function does not have access to the process's run-time function table. For more information, see FunctionTableAccessProc64.</para>
/// <para>The symbol handler provides functions that load and access the run-time table. If these functions are used, then SymFunctionTableAccess64 can be passed as a valid parameter.</para>
/// </param>
/// <param name="GetModuleBaseRoutine">
/// <para>A callback routine that provides a module base for any given virtual address. This parameter is required. For more information, see GetModuleBaseProc64.</para>
/// <para>The symbol handler provides functions that load and maintain module information. If these functions are used, then SymGetModuleBase64 can be passed as a valid parameter.</para>
/// </param>
/// <param name="TranslateAddress">
/// <para>A callback routine that provides address translation for 16-bit addresses. For more information, see TranslateAddressProc64.</para>
/// <para>Most callers of <c>StackWalk64</c> can safely pass <c>NULL</c> for this parameter.</para>
/// </param>
/// <returns>
/// <para>If the function succeeds, the return value is <c>TRUE</c>.</para>
/// <para>If the function fails, the return value is <c>FALSE</c>. Note that <c>StackWalk64</c> generally does not set the last error code.</para>
/// </returns>
/// <remarks>
/// <para>The <c>StackWalk64</c> function provides a portable method for obtaining a stack trace. Using the <c>StackWalk64</c> function is recommended over writing your own function because of all the complexities associated with stack walking on platforms. In addition, there are compiler options that cause the stack to appear differently, depending on how the module is compiled. By using this function, your application has a portable stack trace that continues to work as the compiler and operating system change.</para>
/// <para>The first call to this function will fail if the <c>AddrPC</c>, <c>AddrFrame</c>, and <c>AddrStack</c> members of the STACKFRAME64 structure passed in the StackFrame parameter are not initialized.</para>
/// <para>All DbgHelp functions, such as this one, are single threaded. Therefore, calls from more than one thread to this function will likely result in unexpected behavior or memory corruption. To avoid this, you must synchronize all concurrent calls from more than one thread to this function.</para>
/// <para>This function supersedes the <c>StackWalk</c> function. For more information, see Updated Platform Support. <c>StackWalk</c> is defined as follows in DbgHelp.h.</para>
/// <para><code>#if !defined(_IMAGEHLP_SOURCE_) &amp;&amp; defined(_IMAGEHLP64) #define StackWalk StackWalk64 #else BOOL IMAGEAPI StackWalk( DWORD MachineType, __in HANDLE hProcess, __in HANDLE hThread, __inout LPSTACKFRAME StackFrame, __inout PVOID ContextRecord, __in_opt PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine, __in_opt PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine, __in_opt PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine, __in_opt PTRANSLATE_ADDRESS_ROUTINE TranslateAddress ); #endif </code></para>
/// </remarks>
// https://docs.microsoft.com/en-us/windows/win32/api/dbghelp/nf-dbghelp-stackwalk
// BOOL IMAGEAPI StackWalk( DWORD MachineType, HANDLE hProcess, HANDLE hThread, LPSTACKFRAME StackFrame, PVOID ContextRecord, PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine, PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine, PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine, PTRANSLATE_ADDRESS_ROUTINE TranslateAddress );
[DllImport(Lib_DbgHelp, SetLastError = false, ExactSpelling = true)]
[PInvokeData("dbghelp.h", MSDNShortId = "NF:dbghelp.StackWalk")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool StackWalk(IMAGE_FILE_MACHINE MachineType, HPROCESS hProcess, HTHREAD hThread, ref STACKFRAME StackFrame, [In, Out] IntPtr ContextRecord,
[Optional] PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine, [Optional] PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine,
[Optional] PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine, [Optional] PTRANSLATE_ADDRESS_ROUTINE TranslateAddress);
/// <summary>Obtains a stack trace.</summary>
/// <param name="MachineType">
/// <para>
@ -2368,7 +2462,7 @@ namespace Vanara.PInvoke
// HANDLE hProcess, HANDLE hThread, LPSTACKFRAME64 StackFrame, PVOID ContextRecord, PREAD_PROCESS_MEMORY_ROUTINE64
// ReadMemoryRoutine, PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine, PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine,
// PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress );
[DllImport(Lib_DbgHelp, SetLastError = false, CharSet = CharSet.Auto)]
[DllImport(Lib_DbgHelp, SetLastError = false, ExactSpelling = true)]
[PInvokeData("dbghelp.h", MSDNShortId = "NF:dbghelp.StackWalk64")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool StackWalk64(IMAGE_FILE_MACHINE MachineType, HPROCESS hProcess, HTHREAD hThread, ref STACKFRAME64 StackFrame, [In, Out] IntPtr ContextRecord,

View File

@ -1,21 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<ProjectExtensions>
<SupportedDlls>DbgHelp.dll;ImageHlp.dll</SupportedDlls>
<SupportedDlls>DbgHelp.dll;ImageHlp.dll</SupportedDlls>
</ProjectExtensions>
<PropertyGroup>
<Description>PInvoke API (methods, structures and constants) imported from Windows DbgHelp.dll.</Description>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<TargetFrameworks>net20;net35;net40;net45;netstandard2.0;netcoreapp2.0;netcoreapp2.1;netcoreapp3.0;netcoreapp3.1</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.DbgHelp</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<PackageTags>pinvoke;vanara;net-extensions;interop;DbgHelp</PackageTags>
<PackageReleaseNotes />
<Description>PInvoke API (methods, structures and constants) imported from Windows DbgHelp.dll.</Description>
<AssemblyTitle>$(AssemblyName)</AssemblyTitle>
<TargetFrameworks>net20;net35;net40;net45;netstandard2.0;netcoreapp2.0;netcoreapp2.1;netcoreapp3.0;netcoreapp3.1</TargetFrameworks>
<AssemblyName>Vanara.PInvoke.DbgHelp</AssemblyName>
<PackageId>$(AssemblyName)</PackageId>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<PackageTags>pinvoke;vanara;net-extensions;interop;DbgHelp</PackageTags>
<PackageReleaseNotes>Currently implements:
Functions
BindImageEx, CheckSumMappedFile, EnumDirTree, EnumDirTreeA, EnumerateLoadedModules, EnumerateLoadedModulesEx, EnumerateLoadedModulesW64, FindDebugInfoFile, FindDebugInfoFileEx, FindDebugInfoFileExA, FindExecutableImage, FindExecutableImageEx, FindExecutableImageExA, GetImageConfigInformation, GetImageUnusedHeaderBytes, GetSymLoadError, GetTimestampForLoadedLibrary, ImageAddCertificate, ImageDirectoryEntryToData, ImageDirectoryEntryToDataEx, ImageEnumerateCertificates, ImageGetCertificateData, ImageGetCertificateHeader, ImageGetDigestStream, ImagehlpApiVersion, ImagehlpApiVersionEx, ImageLoad, ImageNtHeader, ImageRemoveCertificate, ImageRvaToSection, ImageRvaToVa, ImageUnload, MakeSureDirectoryPathExists, MapAndLoad, MapDebugInformation, MapFileAndCheckSum, ReBaseImage, ReBaseImage64, SearchTreeForFile, SearchTreeForFileA, SetImageConfigInformation, SetSymLoadError, SplitSymbols, StackWalk, StackWalk64, StackWalkEx, SymAddrIncludeInlineTrace, SymAddSourceStream, SymAddSymbol, SymAddSymbolA, SymbolServerSetOptionsA, SymbolServerSetOptionsW, SymCleanup, SymCompareInlineTrace, SymDeleteSymbol, SymDeleteSymbolA, SymEnumerateModules, SymEnumerateModules64, SymEnumerateModulesW64, SymEnumLines, SymEnumLinesA, SymEnumProcesses, SymEnumSourceFiles, SymEnumSourceFilesA, SymEnumSourceFileTokens, SymEnumSourceLines, SymEnumSourceLinesA, SymEnumSymbols, SymEnumSymbolsA, SymEnumSymbolsEx, SymEnumSymbolsExA, SymEnumSymbolsForAddr, SymEnumSymbolsForAddrA, SymEnumTypes, SymEnumTypesA, SymEnumTypesByName, SymEnumTypesByNameA, SymFindDebugInfoFile, SymFindDebugInfoFileA, SymFindExecutableImage, SymFindExecutableImageA, SymFindFileInPath, SymFindFileInPathA, SymFromAddr, SymFromAddrA, SymFromIndex, SymFromIndexA, SymFromInlineContext, SymFromInlineContextA, SymFromName, SymFromNameA, SymFromToken, SymFromTokenA, SymFunctionTableAccess, SymFunctionTableAccess64, SymFunctionTableAccess64AccessRoutines, SymGetExtendedOption, SymGetFileLineOffsets64, SymGetHomeDirectory, SymGetHomeDirectoryA, SymGetLineFromAddr64, SymGetLineFromAddrA, SymGetLineFromAddrW, SymGetLineFromAddrW64, SymGetLineFromInlineContext, SymGetLineFromInlineContextA, SymGetLineFromName, SymGetLineFromName64, SymGetLineFromNameW64, SymGetLineNext64, SymGetLineNextA, SymGetLineNextW, SymGetLineNextW64, SymGetLinePrev64, SymGetLinePrevA, SymGetLinePrevW, SymGetLinePrevW64, SymGetModuleBase, SymGetModuleBase64, SymGetModuleInfo, SymGetModuleInfo64, SymGetModuleInfoA, SymGetModuleInfoW64, SymGetOmaps, SymGetOptions, SymGetScope, SymGetScopeA, SymGetSearchPath, SymGetSearchPathA, SymGetSourceFile, SymGetSourceFileA, SymGetSourceFileChecksum, SymGetSourceFileChecksumA, SymGetSourceFileFromToken, SymGetSourceFileFromTokenA, SymGetSourceFileToken, SymGetSourceFileTokenA, SymGetSourceVarFromToken, SymGetSourceVarFromTokenA, SymGetSymbolFile, SymGetSymbolFileA, SymGetSymFromAddr, SymGetSymFromAddr64, SymGetSymFromName, SymGetSymFromName64, SymGetSymNext64, SymGetSymNextA, SymGetSymNextW, SymGetSymNextW64, SymGetSymPrev64, SymGetSymPrevW, SymGetSymPrevW64, SymGetTypeFromName, SymGetTypeFromNameA, SymGetTypeInfo, SymGetTypeInfoEx, SymInitialize, SymInitializeA, SymLoadModule, SymLoadModule64, SymLoadModuleEx, SymLoadModuleExA, SymMatchFileName, SymMatchFileNameA, SymMatchString, SymNext, SymNextA, SymPrev, SymPrevA, SymQueryInlineTrace, SymRefreshModuleList, SymRegisterCallback64, SymRegisterCallbackA, SymRegisterCallbackW, SymRegisterCallbackW64, SymRegisterFunctionEntryCallback, SymRegisterFunctionEntryCallback64, SymSearch, SymSearchA, SymSetContext, SymSetExtendedOption, SymSetHomeDirectory, SymSetHomeDirectoryA, SymSetOptions, SymSetParentWindow, SymSetScopeFromAddr, SymSetScopeFromIndex, SymSetScopeFromInlineContext, SymSetSearchPath, SymSetSearchPathA, SymSrvDeltaName, SymSrvDeltaNameA, SymSrvGetFileIndexes, SymSrvGetFileIndexesA, SymSrvGetFileIndexInfo, SymSrvGetFileIndexInfoA, SymSrvGetFileIndexString, SymSrvGetFileIndexStringA, SymSrvGetSupplement, SymSrvGetSupplementA, SymSrvIsStore, SymSrvIsStoreA, SymSrvStoreFile, SymSrvStoreFileA, SymSrvStoreSupplement, SymSrvStoreSupplementA, SymUnDName, SymUnDName64, SymUnloadModule, SymUnloadModule64, TouchFileTimes, UnDecorateSymbolName, UnDecorateSymbolNameA, UnMapAndLoad, UnmapDebugInformation, UpdateDebugInfoFile, UpdateDebugInfoFileEx
Structures
ADDRESS, ADDRESS64, API_VERSION, IMAGE_DEBUG_INFORMATION, IMAGEHLP_CBA_EVENT, IMAGEHLP_CBA_READ_MEMORY, IMAGEHLP_DEFERRED_SYMBOL_LOAD, IMAGEHLP_DEFERRED_SYMBOL_LOAD64, IMAGEHLP_DEFERRED_SYMBOL_LOADW64, IMAGEHLP_DUPLICATE_SYMBOL64, IMAGEHLP_GET_TYPE_INFO_PARAMS, IMAGEHLP_LINE, IMAGEHLP_LINE64, IMAGEHLP_MODULE, IMAGEHLP_MODULE64, IMAGEHLP_STACK_FRAME, IMAGEHLP_SYMBOL, IMAGEHLP_SYMBOL64, IMAGEHLP_SYMBOLW, IMAGEHLP_SYMBOLW64, KDHELP, KDHELP64, LOADED_IMAGE, MODLOAD_CVMISC, MODLOAD_DATA, OMAP, SOURCEFILE, SRCCODEINFO, STACKFRAME, STACKFRAME_EX, STACKFRAME64, SYMBOL_INFO, SYMSRV_INDEX_INFO, TI_FINDCHILDREN_PARAMS, LIST_ENTRY, FPO_DATA, IMAGE_RUNTIME_FUNCTION_ENTRY, IMAGE_COFF_SYMBOLS_HEADER, IMAGE_DATA_DIRECTORY, IMAGE_DEBUG_DIRECTORY, IMAGE_EXPORT_DIRECTORY, IMAGE_FILE_HEADER, IMAGE_FUNCTION_ENTRY, IMAGE_LOAD_CONFIG_CODE_INTEGRITY, IMAGE_LOAD_CONFIG_DIRECTORY32, IMAGE_LOAD_CONFIG_DIRECTORY64, IMAGE_NT_HEADERS, IMAGE_OPTIONAL_HEADER, IMAGE_SECTION_HEADER, &lt;_DataDirectory&gt;e__FixedBuffer, MISC
</PackageReleaseNotes>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\Core\Vanara.Core.csproj" />
<ProjectReference Include="..\Kernel32\Vanara.PInvoke.Kernel32.csproj" />
<ProjectReference Include="..\Shared\Vanara.PInvoke.Shared.csproj" />
<ProjectReference Include="..\..\Core\Vanara.Core.csproj" />
<ProjectReference Include="..\Kernel32\Vanara.PInvoke.Kernel32.csproj" />
<ProjectReference Include="..\Shared\Vanara.PInvoke.Shared.csproj" />
</ItemGroup>
</Project>

View File

@ -54,6 +54,7 @@ comctl32.dll | [Vanara.PInvoke.ComCtl32](https://github.com/dahall/Vanara/blob/m
credui.dll | [Vanara.PInvoke.CredUI](https://github.com/dahall/Vanara/blob/master/PInvoke/CredUI/CorrelationReport.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.CredUI?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.CredUI?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.CredUI)
crypt32.dll, bcrypt.dll, ncrypt.dll, tokenbinding.dll, cryptui.dll, cryptnet.dll, cryptdlg.dll | [Vanara.PInvoke.Cryptography](https://github.com/dahall/Vanara/blob/master/PInvoke/Cryptography/CorrelationReport.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.Cryptography?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.Cryptography?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Cryptography)
d2d1.dll, dxgi.dll, dwrite.dll, windowscodecs.dll | [Vanara.PInvoke.Graphics](https://github.com/dahall/Vanara/blob/master/PInvoke/Graphics/CorrelationReport.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.Graphics?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.Graphics?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Graphics)
DbgHelp.dll, ImageHlp.dll | [Vanara.PInvoke.DbgHelp](https://github.com/dahall/Vanara/blob/master/PInvoke/DbgHelp/CorrelationReport.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.DbgHelp?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.DbgHelp?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.DbgHelp)
DnsApi.dll | [Vanara.PInvoke.DnsApi](https://github.com/dahall/Vanara/blob/master/PInvoke/DnsApi/CorrelationReport.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.DnsApi?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.DnsApi?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.DnsApi)
dwmapi.dll | [Vanara.PInvoke.DwmApi](https://github.com/dahall/Vanara/blob/master/PInvoke/DwmApi/CorrelationReport.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.DwmApi?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.DwmApi?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.DwmApi)
gdi32.dll | [Vanara.PInvoke.Gdi32](https://github.com/dahall/Vanara/blob/master/PInvoke/Gdi32/CorrelationReport.md) | ![Coverage](https://img.shields.io/badge/100%25-green.svg?style=flat-square) | [![Nuget](https://img.shields.io/nuget/v/Vanara.PInvoke.Gdi32?label=%20&logo=nuget&style=flat-square)![Nuget](https://img.shields.io/nuget/dt/Vanara.PInvoke.Gdi32?label=%20&style=flat-square)](https://www.nuget.org/packages/Vanara.PInvoke.Gdi32)

View File

@ -16,15 +16,23 @@ namespace Vanara.PInvoke.Tests
public class DbgHelpTests
{
const string imgName = "imagehlp.dll";
const string testAppName = "TestDbgApp";
const string testAppPath = TestCaseSources.TempDirWhack + testAppName + ".exe";
private Process testApp;
private ProcessSymbolHandler hProc;
[OneTimeSetUp]
public void _Setup()
{
testApp = Process.Start(new ProcessStartInfo(testAppPath) { WindowStyle = ProcessWindowStyle.Minimized });
hProc = new ProcessSymbolHandler(testApp.Handle);
}
[OneTimeTearDown]
public void _TearDown()
{
hProc.Dispose();
testApp.Kill();
}
[Test]
@ -93,8 +101,7 @@ namespace Vanara.PInvoke.Tests
[Test]
public void SymEnumerateModulesTest()
{
using var hProc = new ProcessSymbolHandler(Process.GetCurrentProcess().Handle, null, true);
var output = SymEnumerateModules(hProc);
var output = SymEnumerateModules(hProc, true);
TestContext.WriteLine($"Count: {output.Count}");
output.WriteValues();
}
@ -102,8 +109,7 @@ namespace Vanara.PInvoke.Tests
[Test]
public void SymEnumLinesTest()
{
using var hProc = new ProcessSymbolHandler(Process.GetCurrentProcess().Handle, null, true);
var (ModuleName, BaseOfDll) = SymEnumerateModules(hProc).Where(t => t.ModuleName == "KERNEL32").First();
var (_, BaseOfDll) = SymEnumerateModules(hProc, true).First();
var output = SymEnumLines(hProc, unchecked((ulong)BaseOfDll.ToInt64()));
TestContext.WriteLine($"Count: {output.Count}");
output.WriteValues();
@ -112,8 +118,74 @@ namespace Vanara.PInvoke.Tests
[Test]
public void SymEnumProcessesTest()
{
using var hProc = new ProcessSymbolHandler(Process.GetCurrentProcess().Handle);
Assert.That(SymEnumProcesses(), Is.Not.Empty);
}
[Test]
public unsafe void SymGetOmapsTest()
{
var (_, BaseOfDll) = SymEnumerateModules(hProc, true).First();
Assert.That(SymGetOmaps(hProc, unchecked((ulong)BaseOfDll.ToInt64()), out var to, out var cto, out var from, out var cfrom), ResultIs.Successful);
}
[Test]
public void SymGetSymFromNameTest()
{
using var sym = new SafeIMAGEHLP_SYMBOL();
Assert.That(SymGetSymFromName(hProc, "strcat", sym), ResultIs.Successful);
sym.Value.WriteValues();
}
[Test]
public void SymGetSymFromName64Test()
{
ulong addr = 0;
using (var sym = new SafeIMAGEHLP_SYMBOL64())
{
Assert.That(SymGetSymFromName64(hProc, "strcat", sym), ResultIs.Successful);
sym.Value.WriteValues();
Assert.That(sym.Value.Name, Is.EqualTo("strcat"));
addr = sym.Value.Address;
}
using (var sym = new SafeIMAGEHLP_SYMBOL64())
{
Assert.That(SymGetSymFromAddr64(hProc, addr, out var displ, sym), ResultIs.Successful);
sym.Value.WriteValues();
Assert.That(sym.Value.Name, Is.EqualTo("strcat"));
}
}
[Test]
public void MimicDllExp()
{
Assert.That(MapAndLoad(imgName, null, out var LoadedImage, true, true), ResultIs.Successful);
try
{
var data = ImageDirectoryEntryToData(LoadedImage.MappedAddress, false, IMAGE_DIRECTORY_ENTRY.IMAGE_DIRECTORY_ENTRY_EXPORT, out var cDirSize); // (_IMAGE_EXPORT_DIRECTORY*)
Assert.That(data, ResultIs.ValidHandle);
var ImageExportDirectory = data.ToStructure<IMAGE_EXPORT_DIRECTORY>(cDirSize);
ImageExportDirectory.WriteValues();
var addr = ImageRvaToVa(LoadedImage.FileHeader, LoadedImage.MappedAddress, ImageExportDirectory.AddressOfNames, out _); // (uint*)
Assert.That(addr, ResultIs.ValidHandle);
var rnameaddrs = addr.ToArray<uint>((int)ImageExportDirectory.NumberOfNames);
addr = ImageRvaToVa(LoadedImage.FileHeader, LoadedImage.MappedAddress, ImageExportDirectory.AddressOfNameOrdinals, out _); // (uint*)
Assert.That(addr, ResultIs.ValidHandle);
var rordaddrs = addr.ToArray<uint>((int)ImageExportDirectory.NumberOfNames);
for (int i = 0; i < rnameaddrs.Length; i++)
{
var sName = Marshal.PtrToStringAnsi(ImageRvaToVa(LoadedImage.FileHeader, LoadedImage.MappedAddress, rnameaddrs[i], out _));
var ord = ImageRvaToVa(LoadedImage.FileHeader, LoadedImage.MappedAddress, rordaddrs[i], out _).ToNullableStructure<uint>();
TestContext.WriteLine($"{sName ?? (null)}\t0x{ord ?? 0}");
}
}
finally
{
UnMapAndLoad(ref LoadedImage);
}
}
}
}