;
; IMAGEHLP API definitions for NASM.
;
; (C) G-RoM in 2000/2002

Extern _BindImage@12
Extern _BindImageEx@20
Extern _CheckSumMappedFile@16
Extern _EnumerateLoadedModules@12
Extern _FindDebugInfoFile@12
Extern _FindExecutableImage@12
Extern _GetImageConfigInformation@8
Extern _GetImageUnusedHeaderBytes@8
Extern _GetTimestampForLoadedLibrary@4
Extern _ImageAddCertificate@12
Extern _ImageDirectoryEntryToData@16
Extern _ImageEnumerateCertificates@20
Extern _ImageGetCertificateData@16
Extern _ImageGetCertificateHeader@12
Extern _ImageGetDigestStream@16
Extern _ImageLoad@8
Extern _ImageNtHeader@4
Extern _ImageRemoveCertificate@8
Extern _ImageRvaToSection@12
Extern _ImageRvaToVa@16
Extern _ImageUnload@4
Extern _ImagehlpApiVersion@0
Extern _ImagehlpApiVersionEx@4
Extern _MakeSureDirectoryPathExists@4
Extern _MapAndLoad@20
Extern _MapDebugInformation@16
Extern _MapFileAndCheckSumA@12
Extern _MapFileAndCheckSumW@12
Extern _MarkImageAsRunFromSwap@8
Extern _ReBaseImage@44
Extern _RemovePrivateCvSymbolic@12
Extern _RemoveRelocations@4
Extern _SearchTreeForFile@12
Extern _SetImageConfigInformation@8
Extern _SplitSymbols@16
Extern _StackWalk@36
Extern _SymCleanup@4
Extern _SymEnumerateModules@12
Extern _SymEnumerateSymbols@16
Extern _SymFunctionTableAccess@8
Extern _SymGetModuleBase@8
Extern _SymGetModuleInfo@12
Extern _SymGetOptions@0
Extern _SymGetSearchPath@12
Extern _SymGetSymFromAddr@16
Extern _SymGetSymFromName@12
Extern _SymGetSymNext@8
Extern _SymGetSymPrev@8
Extern _SymInitialize@12
Extern _SymLoadModule@24
Extern _SymRegisterCallback@12
Extern _SymSetOptions@4
Extern _SymSetSearchPath@8
Extern _SymUnDName@12
Extern _SymUnloadModule@8
Extern _TouchFileTimes@8
Extern _UnDecorateSymbolName@16
Extern _UnMapAndLoad@4
Extern _UnmapDebugInformation@4
Extern _UpdateDebugInfoFile@16
Extern _UpdateDebugInfoFileEx@20

%define EnumerateLoadedModules		_EnumerateLoadedModules@12
%define MarkImageAsRunFromSwap		_MarkImageAsRunFromSwap@8
%define TouchFileTimes			_TouchFileTimes@8
%define BindImage                       _BindImage@12
%define BindImageEx                     _BindImageEx@20
%define CheckSumMappedFile              _CheckSumMappedFile@16
%define FindDebugInfoFile               _FindDebugInfoFile@12
%define FindExecutableImage             _FindExecutableImage@12
%define GetImageConfigInformation       _GetImageConfigInformation@8
%define GetImageUnusedHeaderBytes       _GetImageUnusedHeaderBytes@8
%define GetTimestampForLoadedLibrary    _GetTimestampForLoadedLibrary@4
%define ImageAddCertificate             _ImageAddCertificate@12
%define ImageDirectoryEntryToData       _ImageDirectoryEntryToData@16
%define ImageEnumerateCertificates      _ImageEnumerateCertificates@20
%define ImageGetCertificateData         _ImageGetCertificateData@16
%define ImageGetCertificateHeader       _ImageGetCertificateHeader@12
%define ImageGetDigestStream            _ImageGetDigestStream@16
%define ImageLoad                       _ImageLoad@8
%define ImageNtHeader                   _ImageNtHeader@4
%define ImageRemoveCertificate          _ImageRemoveCertificate@8
%define ImageRvaToSection               _ImageRvaToSection@12
%define ImageRvaToVa                    _ImageRvaToVa@16
%define ImageUnload                     _ImageUnload@4
%define ImagehlpApiVersion              _ImagehlpApiVersion@0
%define ImagehlpApiVersionEx            _ImagehlpApiVersionEx@4
%define MakeSureDirectoryPathExists     _MakeSureDirectoryPathExists@4
%define MapAndLoad                      _MapAndLoad@20
%define MapDebugInformation             _MapDebugInformation@16
%define MapFileAndCheckSumA             _MapFileAndCheckSumA@12
%define MapFileAndCheckSumW             _MapFileAndCheckSumW@12
%define ReBaseImage                     _ReBaseImage@44
%define RemovePrivateCvSymbolic         _RemovePrivateCvSymbolic@12
%define RemoveRelocations               _RemoveRelocations@4
%define SearchTreeForFile               _SearchTreeForFile@12
%define SetImageConfigInformation       _SetImageConfigInformation@8
%define SplitSymbols                    _SplitSymbols@16
%define StackWalk                       _StackWalk@36
%define SymCleanup                      _SymCleanup@4
%define SymEnumerateModules             _SymEnumerateModules@12
%define SymEnumerateSymbols             _SymEnumerateSymbols@16
%define SymFunctionTableAccess          _SymFunctionTableAccess@8
%define SymGetModuleBase                _SymGetModuleBase@8
%define SymGetModuleInfo                _SymGetModuleInfo@12
%define SymGetOptions                   _SymGetOptions@0
%define SymGetSearchPath                _SymGetSearchPath@12
%define SymGetSymFromAddr               _SymGetSymFromAddr@16
%define SymGetSymFromName               _SymGetSymFromName@12
%define SymGetSymNext                   _SymGetSymNext@8
%define SymGetSymPrev                   _SymGetSymPrev@8
%define SymInitialize                   _SymInitialize@12
%define SymLoadModule                   _SymLoadModule@24
%define SymRegisterCallback             _SymRegisterCallback@12
%define SymSetOptions                   _SymSetOptions@4
%define SymSetSearchPath                _SymSetSearchPath@8
%define SymUnDName                      _SymUnDName@12
%define SymUnloadModule                 _SymUnloadModule@8
%define UnDecorateSymbolName            _UnDecorateSymbolName@16
%define UnMapAndLoad                    _UnMapAndLoad@4
%define UnmapDebugInformation           _UnmapDebugInformation@4
%define UpdateDebugInfoFile             _UpdateDebugInfoFile@16
%define UpdateDebugInfoFileEx           _UpdateDebugInfoFileEx@20
