WindowsXP-SP1/ds/adsi/dbgexts/symhelp.h
2020-09-30 16:53:49 +02:00

97 lines
2.0 KiB
C

/*++
Copyright (c) 1992 Microsoft Corporation
Module Name:
symhelp.h
Abstract:
Defines the interfaces to the SYMHELP dynamic link library. Useful for programs
that want to maintain a debug informaiton data base.
Author:
Steve Wood (stevewo) 11-Mar-1994
Revision History:
Mike Seaman (mikese) 20-Jan-1995 Added TranslateAddress
--*/
#ifndef _SYMHELP_
#define _SYMHELP_
typedef enum _LOAD_SYMBOLS_FILTER_REASON {
LoadSymbolsPathNotFound,
LoadSymbolsDeferredLoad,
LoadSymbolsLoad,
LoadSymbolsUnload,
LoadSymbolsUnableToLoad
} LOAD_SYMBOLS_FILTER_REASON;
typedef BOOL (*PLOAD_SYMBOLS_FILTER_ROUTINE)(
HANDLE UniqueProcess,
LPSTR ImageFilePath,
DWORD ImageBase,
DWORD ImageSize,
LOAD_SYMBOLS_FILTER_REASON Reason
);
BOOL
InitializeImageDebugInformation(
IN PLOAD_SYMBOLS_FILTER_ROUTINE LoadSymbolsFilter,
IN HANDLE TargetProcess,
IN BOOL NewProcess,
IN BOOL GetKernelSymbols
);
BOOL
AddImageDebugInformation(
IN HANDLE UniqueProcess,
IN LPSTR ImageFilePath,
IN DWORD ImageBase,
IN DWORD ImageSize
);
BOOL
RemoveImageDebugInformation(
IN HANDLE UniqueProcess,
IN LPSTR ImageFilePath,
IN DWORD ImageBase
);
PIMAGE_DEBUG_INFORMATION
FindImageDebugInformation(
IN HANDLE UniqueProcess,
IN DWORD Address
);
ULONG
GetSymbolicNameForAddress(
IN HANDLE UniqueProcess,
IN ULONG Address,
OUT LPSTR Name,
IN ULONG MaxNameLength
);
//
// The following function is essentially identical in operation to
// GetSymbolicNameForAddress, except that it:
//
// 1. Operates only on the calling process.
// 2. Does not require any previous calls to AddImageDebugInformation et al.
// That is, debug information for all currently loaded modules will
// be added automatically.
ULONG
TranslateAddress (
IN ULONG Address,
OUT LPSTR Name,
IN ULONG MaxNameLength
);
#endif