You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
3.2 KiB
96 lines
3.2 KiB
/*++
|
|
|
|
|
|
Copyright 1996 - 1997 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
symcvt.h
|
|
|
|
Abstract:
|
|
|
|
This file contains all of the type definitions and prototypes
|
|
necessary to access the symcvt library.
|
|
|
|
Environment:
|
|
|
|
Win32, User Mode
|
|
|
|
--*/
|
|
|
|
|
|
typedef struct tagPTRINFO {
|
|
DWORD size;
|
|
DWORD count;
|
|
PUCHAR ptr;
|
|
} PTRINFO, *PPTRINFO;
|
|
|
|
typedef struct tagIMAGEPOINTERS {
|
|
char szName[MAX_PATH];
|
|
HANDLE hFile;
|
|
HANDLE hMap;
|
|
DWORD fsize;
|
|
PUCHAR fptr;
|
|
BOOLEAN fRomImage;
|
|
PIMAGE_DOS_HEADER dosHdr;
|
|
PIMAGE_NT_HEADERS ntHdr;
|
|
PIMAGE_ROM_HEADERS romHdr;
|
|
PIMAGE_FILE_HEADER fileHdr;
|
|
PIMAGE_OPTIONAL_HEADER optHdr;
|
|
PIMAGE_SEPARATE_DEBUG_HEADER sepHdr;
|
|
int cDebugDir;
|
|
PIMAGE_DEBUG_DIRECTORY * rgDebugDir;
|
|
PIMAGE_SECTION_HEADER sectionHdrs;
|
|
PIMAGE_SECTION_HEADER debugSection;
|
|
PIMAGE_SYMBOL AllSymbols;
|
|
PUCHAR stringTable;
|
|
int numberOfSymbols;
|
|
int numberOfSections;
|
|
PCHAR * rgpbDebugSave;
|
|
} IMAGEPOINTERS, *PIMAGEPOINTERS;
|
|
|
|
#define COFF_DIR(x) ((x)->rgDebugDir[IMAGE_DEBUG_TYPE_COFF])
|
|
#define CV_DIR(x) ((x)->rgDebugDir[IMAGE_DEBUG_TYPE_CODEVIEW])
|
|
|
|
typedef struct _MODULEINFO {
|
|
DWORD iMod;
|
|
DWORD cb;
|
|
DWORD SrcModule;
|
|
LPSTR name;
|
|
} MODULEINFO, *LPMODULEINFO;
|
|
|
|
typedef struct tagPOINTERS {
|
|
IMAGEPOINTERS iptrs; // input file pointers
|
|
IMAGEPOINTERS optrs; // output file pointers
|
|
PTRINFO pCvStart; // start of cv info
|
|
PUCHAR pCvCurr; // current cv pointer
|
|
size_t cbCvData; // size of CV data
|
|
PTRINFO pCvModules; // module information
|
|
PTRINFO pCvSrcModules; // source module information
|
|
PTRINFO pCvPublics; // publics information
|
|
PTRINFO pCvSegName; // segment names
|
|
PTRINFO pCvSegMap; // segment map
|
|
PTRINFO pCvSymHash; // symbol hash table
|
|
PTRINFO pCvAddrSort; // address sort table
|
|
LPMODULEINFO pMi;
|
|
DWORD modcnt;
|
|
} POINTERS, *PPOINTERS;
|
|
|
|
typedef char * (* CONVERTPROC) (HANDLE, char *);
|
|
|
|
#define align(_n) ((4 - (( (DWORD)_n ) % 4 )) & 3)
|
|
|
|
#ifdef _SYMCVT_SOURCE_
|
|
#define SYMCVTAPI
|
|
#else
|
|
#define SYMCVTAPI DECLSPEC_IMPORT
|
|
#endif
|
|
|
|
PUCHAR SYMCVTAPI ConvertSymbolsForImage( HANDLE, char * );
|
|
BOOL SYMCVTAPI ConvertCoffToCv( PPOINTERS p );
|
|
BOOL SYMCVTAPI ConvertSymToCv( PPOINTERS p );
|
|
BOOL SYMCVTAPI MapInputFile ( PPOINTERS p, HANDLE hFile, char *fname);
|
|
BOOL SYMCVTAPI UnMapInputFile ( PPOINTERS p );
|
|
BOOL SYMCVTAPI CalculateNtImagePointers( PIMAGEPOINTERS p );
|
|
|
|
|