2025-05-13 19:45:22 +03:00

170 lines
4.1 KiB
C

#ifndef _PH_SYMPRVP_H
#define _PH_SYMPRVP_H
typedef BOOL (WINAPI *_SymInitialize)(
_In_ HANDLE hProcess,
_In_opt_ PCSTR UserSearchPath,
_In_ BOOL fInvadeProcess
);
typedef BOOL (WINAPI *_SymCleanup)(
_In_ HANDLE hProcess
);
typedef BOOL (WINAPI *_SymEnumSymbols)(
_In_ HANDLE hProcess,
_In_ ULONG64 BaseOfDll,
_In_opt_ PCSTR Mask,
_In_ PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
_In_opt_ const PVOID UserContext
);
typedef BOOL (WINAPI *_SymEnumSymbolsW)(
_In_ HANDLE hProcess,
_In_ ULONG64 BaseOfDll,
_In_opt_ PCWSTR Mask,
_In_ PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback,
_In_opt_ const PVOID UserContext
);
typedef BOOL (WINAPI *_SymFromAddr)(
_In_ HANDLE hProcess,
_In_ DWORD64 Address,
_Out_opt_ PDWORD64 Displacement,
_Inout_ PSYMBOL_INFO Symbol
);
typedef BOOL (WINAPI *_SymFromAddrW)(
_In_ HANDLE hProcess,
_In_ DWORD64 Address,
_Out_opt_ PDWORD64 Displacement,
_Inout_ PSYMBOL_INFOW Symbol
);
typedef BOOL (WINAPI *_SymFromName)(
_In_ HANDLE hProcess,
_In_ PCSTR Name,
_Inout_ PSYMBOL_INFO Symbol
);
typedef BOOL (WINAPI *_SymFromNameW)(
_In_ HANDLE hProcess,
_In_ PCWSTR Name,
_Inout_ PSYMBOL_INFOW Symbol
);
typedef BOOL (WINAPI *_SymGetLineFromAddr64)(
_In_ HANDLE hProcess,
_In_ DWORD64 dwAddr,
_Out_ PDWORD pdwDisplacement,
_Out_ PIMAGEHLP_LINE64 Line
);
typedef BOOL (WINAPI *_SymGetLineFromAddrW64)(
_In_ HANDLE hProcess,
_In_ DWORD64 dwAddr,
_Out_ PDWORD pdwDisplacement,
_Out_ PIMAGEHLP_LINEW64 Line
);
typedef DWORD64 (WINAPI *_SymLoadModule64)(
_In_ HANDLE hProcess,
_In_opt_ HANDLE hFile,
_In_opt_ PCSTR ImageName,
_In_opt_ PCSTR ModuleName,
_In_ DWORD64 BaseOfDll,
_In_ DWORD SizeOfDll
);
typedef DWORD64 (WINAPI *_SymLoadModuleExW)(
_In_ HANDLE hProcess,
_In_ HANDLE hFile,
_In_ PCWSTR ImageName,
_In_ PCWSTR ModuleName,
_In_ DWORD64 BaseOfDll,
_In_ DWORD DllSize,
_In_ PMODLOAD_DATA Data,
_In_ DWORD Flags
);
typedef DWORD (WINAPI *_SymGetOptions)();
typedef DWORD (WINAPI *_SymSetOptions)(
_In_ DWORD SymOptions
);
typedef BOOL (WINAPI *_SymGetSearchPath)(
_In_ HANDLE hProcess,
_Out_ PSTR SearchPath,
_In_ DWORD SearchPathLength
);
typedef BOOL (WINAPI *_SymGetSearchPathW)(
_In_ HANDLE hProcess,
_Out_ PWSTR SearchPath,
_In_ DWORD SearchPathLength
);
typedef BOOL (WINAPI *_SymSetSearchPath)(
_In_ HANDLE hProcess,
_In_opt_ PCSTR SearchPath
);
typedef BOOL (WINAPI *_SymSetSearchPathW)(
_In_ HANDLE hProcess,
_In_opt_ PCWSTR SearchPath
);
typedef BOOL (WINAPI *_SymUnloadModule64)(
_In_ HANDLE hProcess,
_In_ DWORD64 BaseOfDll
);
typedef PVOID (WINAPI *_SymFunctionTableAccess64)(
_In_ HANDLE hProcess,
_In_ DWORD64 AddrBase
);
typedef DWORD64 (WINAPI *_SymGetModuleBase64)(
_In_ HANDLE hProcess,
_In_ DWORD64 dwAddr
);
typedef BOOL (WINAPI *_SymRegisterCallbackW64)(
_In_ HANDLE hProcess,
_In_ PSYMBOL_REGISTERED_CALLBACK64 CallbackFunction,
_In_ ULONG64 UserContext
);
typedef BOOL (WINAPI *_StackWalk64)(
_In_ DWORD MachineType,
_In_ HANDLE hProcess,
_In_ HANDLE hThread,
_Inout_ LPSTACKFRAME64 StackFrame,
_Inout_ PVOID ContextRecord,
_In_opt_ PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine,
_In_opt_ PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine,
_In_opt_ PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine,
_In_opt_ PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress
);
typedef BOOL (WINAPI *_MiniDumpWriteDump)(
_In_ HANDLE hProcess,
_In_ DWORD ProcessId,
_In_ HANDLE hFile,
_In_ MINIDUMP_TYPE DumpType,
_In_ PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
_In_ PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
_In_ PMINIDUMP_CALLBACK_INFORMATION CallbackParam
);
typedef UINT_PTR (CALLBACK *_SymbolServerGetOptions)(
VOID
);
typedef BOOL (CALLBACK *_SymbolServerSetOptions)(
_In_ UINT_PTR options,
_In_ ULONG64 data
);
#endif