Annotation of mstools/samples/sdktools/image/include/imagehlp.h, revision 1.1

1.1     ! root        1: /*++ BUILD Version: 0001     Increment this if a change has global effects
        !             2: 
        !             3: Copyright (c) 1993  Microsoft Corporation
        !             4: 
        !             5: Module Name:
        !             6: 
        !             7:     imagehlp.h
        !             8: 
        !             9: Abstract:
        !            10: 
        !            11:     This module defines the prptotypes and constants required for the image
        !            12:     help routines.
        !            13: 
        !            14: Revision History:
        !            15: 
        !            16: --*/
        !            17: 
        !            18: #ifndef _IMAGEHLP_
        !            19: #define _IMAGEHLP_
        !            20: 
        !            21: #ifdef __cplusplus
        !            22: extern "C" {
        !            23: #endif
        !            24: 
        !            25: //
        !            26: // Define checksum return codes.
        !            27: //
        !            28: 
        !            29: #define CHECKSUM_SUCCESS            0
        !            30: #define CHECKSUM_OPEN_FAILURE       1
        !            31: #define CHECKSUM_MAP_FAILURE        2
        !            32: #define CHECKSUM_MAPVIEW_FAILURE    3
        !            33: #define CHECKSUM_UNICODE_FAILURE    4
        !            34: 
        !            35: 
        !            36: 
        !            37: //
        !            38: // Define checksum function prototypes.
        !            39: //
        !            40: 
        !            41: PIMAGE_NT_HEADERS
        !            42: CheckSumMappedFile (
        !            43:     LPVOID BaseAddress,
        !            44:     DWORD FileLength,
        !            45:     LPDWORD HeaderSum,
        !            46:     LPDWORD CheckSum
        !            47:     );
        !            48: 
        !            49: DWORD
        !            50: MapFileAndCheckSumA (
        !            51:     LPSTR Filename,
        !            52:     LPDWORD HeaderSum,
        !            53:     LPDWORD CheckSum
        !            54:     );
        !            55: 
        !            56: DWORD
        !            57: MapFileAndCheckSumW (
        !            58:     PWSTR Filename,
        !            59:     LPDWORD HeaderSum,
        !            60:     LPDWORD CheckSum
        !            61:     );
        !            62: 
        !            63: #ifdef UNICODE
        !            64: #define MapFileAndCheckSum  MapFileAndCheckSumW
        !            65: #else
        !            66: #define MapFileAndCheckSum  MapFileAndCheckSumA
        !            67: #endif // !UNICODE
        !            68: 
        !            69: 
        !            70: BOOL
        !            71: TouchFileTimes (
        !            72:     HANDLE FileHandle,
        !            73:     LPSYSTEMTIME lpSystemTime
        !            74:     );
        !            75: 
        !            76: BOOL
        !            77: SplitSymbols (
        !            78:     LPSTR ImageName,
        !            79:     LPSTR SymbolsPath,
        !            80:     LPSTR SymbolFilePath
        !            81:     );
        !            82: 
        !            83: HANDLE
        !            84: FindDebugInfoFile (
        !            85:     LPSTR FileName,
        !            86:     LPSTR SymbolPath,
        !            87:     LPSTR DebugFilePath
        !            88:     );
        !            89: 
        !            90: BOOL
        !            91: UpdateDebugInfoFile(
        !            92:     LPSTR ImageFileName,
        !            93:     LPSTR SymbolPath,
        !            94:     LPSTR DebugFilePath,
        !            95:     PIMAGE_NT_HEADERS NtHeaders
        !            96:     );
        !            97: 
        !            98: //
        !            99: // Function table extracted from MIPS/ALPHA images.  Does not contain
        !           100: // information needed only for runtime support.  Just those fields for
        !           101: // each entry needed by a debugger.
        !           102: //
        !           103: 
        !           104: typedef struct _IMAGE_FUNCTION_ENTRY {
        !           105:     DWORD   StartingAddress;
        !           106:     DWORD   EndingAddress;
        !           107:     DWORD   EndOfPrologue;
        !           108: } IMAGE_FUNCTION_ENTRY, *PIMAGE_FUNCTION_ENTRY;
        !           109: 
        !           110: typedef struct _IMAGE_DEBUG_INFORMATION {
        !           111:     LIST_ENTRY List;
        !           112:     DWORD Size;
        !           113:     PVOID MappedBase;
        !           114:     USHORT Machine;
        !           115:     USHORT Characteristics;
        !           116:     DWORD CheckSum;
        !           117:     DWORD ImageBase;
        !           118:     DWORD SizeOfImage;
        !           119: 
        !           120:     DWORD NumberOfSections;
        !           121:     PIMAGE_SECTION_HEADER Sections;
        !           122: 
        !           123:     DWORD ExportedNamesSize;
        !           124:     LPSTR ExportedNames;
        !           125: 
        !           126:     DWORD NumberOfFunctionTableEntries;
        !           127:     PIMAGE_FUNCTION_ENTRY FunctionTableEntries;
        !           128:     DWORD LowestFunctionStartingAddress;
        !           129:     DWORD HighestFunctionEndingAddress;
        !           130: 
        !           131:     DWORD NumberOfFpoTableEntries;
        !           132:     PFPO_DATA FpoTableEntries;
        !           133: 
        !           134:     DWORD SizeOfCoffSymbols;
        !           135:     PIMAGE_COFF_SYMBOLS_HEADER CoffSymbols;
        !           136: 
        !           137:     DWORD SizeOfCodeViewSymbols;
        !           138:     PVOID CodeViewSymbols;
        !           139: 
        !           140:     LPSTR ImageFilePath;
        !           141:     LPSTR ImageFileName;
        !           142:     LPSTR DebugFilePath;
        !           143: 
        !           144:     DWORD TimeDateStamp;
        !           145: } IMAGE_DEBUG_INFORMATION, *PIMAGE_DEBUG_INFORMATION;
        !           146: 
        !           147: 
        !           148: PIMAGE_DEBUG_INFORMATION
        !           149: MapDebugInformation (
        !           150:     HANDLE FileHandle,
        !           151:     LPSTR FileName,
        !           152:     LPSTR SymbolPath,
        !           153:     DWORD ImageBase
        !           154:     );
        !           155: 
        !           156: BOOL
        !           157: UnmapDebugInformation(
        !           158:     PIMAGE_DEBUG_INFORMATION DebugInfo
        !           159:     );
        !           160: 
        !           161: BOOL
        !           162: SearchTreeForFile(
        !           163:     LPSTR RootPath,
        !           164:     LPSTR InputPathName,
        !           165:     LPSTR OutputPathBuffer
        !           166:     );
        !           167: 
        !           168: BOOL
        !           169: MakeSureDirectoryPathExists(
        !           170:     LPSTR DirPath
        !           171:     );
        !           172: 
        !           173: //
        !           174: // UnDecorateSymbolName Flags
        !           175: //
        !           176: 
        !           177: #define UNDNAME_COMPLETE                 (0x0000)  // Enable full undecoration
        !           178: #define UNDNAME_NO_LEADING_UNDERSCORES   (0x0001)  // Remove leading underscores from MS extended keywords
        !           179: #define UNDNAME_NO_MS_KEYWORDS           (0x0002)  // Disable expansion of MS extended keywords
        !           180: #define UNDNAME_NO_FUNCTION_RETURNS      (0x0004)  // Disable expansion of return type for primary declaration
        !           181: #define UNDNAME_NO_ALLOCATION_MODEL      (0x0008)  // Disable expansion of the declaration model
        !           182: #define UNDNAME_NO_ALLOCATION_LANGUAGE   (0x0010)  // Disable expansion of the declaration language specifier
        !           183: #define UNDNAME_NO_MS_THISTYPE           (0x0020)  // NYI Disable expansion of MS keywords on the 'this' type for primary declaration
        !           184: #define UNDNAME_NO_CV_THISTYPE           (0x0040)  // NYI Disable expansion of CV modifiers on the 'this' type for primary declaration
        !           185: #define UNDNAME_NO_THISTYPE              (0x0060)  // Disable all modifiers on the 'this' type
        !           186: #define UNDNAME_NO_ACCESS_SPECIFIERS     (0x0080)  // Disable expansion of access specifiers for members
        !           187: #define UNDNAME_NO_THROW_SIGNATURES      (0x0100)  // Disable expansion of 'throw-signatures' for functions and pointers to functions
        !           188: #define UNDNAME_NO_MEMBER_TYPE           (0x0200)  // Disable expansion of 'static' or 'virtual'ness of members
        !           189: #define UNDNAME_NO_RETURN_UDT_MODEL      (0x0400)  // Disable expansion of MS model for UDT returns
        !           190: #define UNDNAME_32_BIT_DECODE            (0x0800)  // Undecorate 32-bit decorated names
        !           191: 
        !           192: DWORD
        !           193: WINAPI
        !           194: UnDecorateSymbolName(
        !           195:     LPSTR    DecoratedName,
        !           196:     LPSTR    UnDecoratedName,
        !           197:     DWORD    UndecoratedLength,
        !           198:     DWORD    Flags
        !           199:     );
        !           200: 
        !           201: #ifdef __cplusplus
        !           202: }
        !           203: #endif
        !           204: 
        !           205: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.