mirror of https://github.com/lianthony/NT4.0
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.
163 lines
3.0 KiB
163 lines
3.0 KiB
/*++
|
|
|
|
Copyright (c) 1995 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
imagehlp.h
|
|
|
|
Abstract:
|
|
|
|
This is a private header file for imagehlp.
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef _IMAGEHLP_PRV_
|
|
#define _IMAGEHLP_PRV_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define _IMAGEHLP_SOURCE_
|
|
|
|
#include <windows.h>
|
|
#include <imagehlp.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <ctype.h>
|
|
#include <memory.h>
|
|
#include <malloc.h>
|
|
#include <cvexefmt.h>
|
|
#include <assert.h>
|
|
#include <string.h>
|
|
#include <time.h>
|
|
#include <ntverp.h>
|
|
#include "pdb.h"
|
|
|
|
|
|
// Define some list prototypes
|
|
|
|
#define InitializeListHead(ListHead) (\
|
|
(ListHead)->Flink = (ListHead)->Blink = (ListHead))
|
|
|
|
#define IsListEmpty(ListHead) \
|
|
((ListHead)->Flink == (ListHead))
|
|
|
|
#define InsertTailList(ListHead,Entry) {\
|
|
PLIST_ENTRY _EX_Blink;\
|
|
PLIST_ENTRY _EX_ListHead;\
|
|
_EX_ListHead = (ListHead);\
|
|
_EX_Blink = _EX_ListHead->Blink;\
|
|
(Entry)->Flink = _EX_ListHead;\
|
|
(Entry)->Blink = _EX_Blink;\
|
|
_EX_Blink->Flink = (Entry);\
|
|
_EX_ListHead->Blink = (Entry);\
|
|
}
|
|
|
|
#define RemoveEntryList(Entry) {\
|
|
PLIST_ENTRY _EX_Blink;\
|
|
PLIST_ENTRY _EX_Flink;\
|
|
_EX_Flink = (Entry)->Flink;\
|
|
_EX_Blink = (Entry)->Blink;\
|
|
_EX_Blink->Flink = _EX_Flink;\
|
|
_EX_Flink->Blink = _EX_Blink;\
|
|
}
|
|
|
|
#define DebugDirectoryIsUseful(Pointer, Size) ( \
|
|
(Pointer != NULL) && \
|
|
(Size >= sizeof(IMAGE_DEBUG_DIRECTORY)) && \
|
|
((Size % sizeof(IMAGE_DEBUG_DIRECTORY)) == 0) \
|
|
)
|
|
|
|
BOOL
|
|
CalculateImagePtrs(
|
|
PLOADED_IMAGE LoadedImage
|
|
);
|
|
|
|
typedef void * ( __cdecl * Alloc_t )( unsigned int );
|
|
typedef void ( __cdecl * Free_t )( void * );
|
|
|
|
typedef VOID (__stdcall *PINTERNAL_GET_MODULE)(HANDLE,LPSTR,DWORD,DWORD,PVOID);
|
|
typedef PCHAR (__cdecl *PUNDNAME)( char *, const char *, int, Alloc_t, Free_t, unsigned short);
|
|
|
|
extern PUNDNAME pfUnDname;
|
|
|
|
extern API_VERSION AppVersion;
|
|
|
|
#ifdef IMAGEHLP_HEAP_DEBUG
|
|
|
|
#define HEAP_SIG 0x69696969
|
|
typedef struct _HEAP_BLOCK {
|
|
LIST_ENTRY ListEntry;
|
|
ULONG Signature;
|
|
ULONG Size;
|
|
ULONG Line;
|
|
CHAR File[16];
|
|
} HEAP_BLOCK, *PHEAP_BLOCK;
|
|
|
|
#define MemAlloc(s) pMemAlloc(s,__LINE__,__FILE__)
|
|
#define MemFree(p) pMemFree(p,__LINE__,__FILE__)
|
|
#define CheckHeap(p) pCheckHeap(p,__LINE__,__FILE__)
|
|
#else
|
|
#define MemAlloc(s) pMemAlloc(s)
|
|
#define MemFree(p) pMemFree(p)
|
|
#define CheckHeap(p)
|
|
#endif
|
|
|
|
#ifdef IMAGEHLP_HEAP_DEBUG
|
|
VOID
|
|
pCheckHeap(
|
|
PVOID MemPtr,
|
|
ULONG Line,
|
|
LPSTR File
|
|
);
|
|
#endif
|
|
|
|
PVOID
|
|
pMemAlloc(
|
|
ULONG AllocSize
|
|
#ifdef IMAGEHLP_HEAP_DEBUG
|
|
,ULONG Line
|
|
,LPSTR File
|
|
#endif
|
|
);
|
|
|
|
VOID
|
|
pMemFree(
|
|
PVOID MemPtr
|
|
#ifdef IMAGEHLP_HEAP_DEBUG
|
|
,ULONG Line
|
|
,LPSTR File
|
|
#endif
|
|
);
|
|
|
|
#define MAP_READONLY TRUE
|
|
#define MAP_READWRITE FALSE
|
|
|
|
|
|
BOOL
|
|
MapIt(
|
|
HANDLE FileHandle,
|
|
PLOADED_IMAGE LoadedImage,
|
|
BOOL ReadOnly
|
|
);
|
|
|
|
VOID
|
|
UnMapIt(
|
|
PLOADED_IMAGE LoadedImage
|
|
);
|
|
|
|
BOOL
|
|
GrowMap(
|
|
PLOADED_IMAGE LoadedImage,
|
|
LONG lSizeOfDelta
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|