201 lines
2.2 KiB
C
201 lines
2.2 KiB
C
|
/*
|
||
|
- E X C H M E M . H
|
||
|
-
|
||
|
* Purpose:
|
||
|
*
|
||
|
*
|
||
|
* Parameters:
|
||
|
*
|
||
|
*
|
||
|
* Returns:
|
||
|
*
|
||
|
*
|
||
|
* Copyright (C) 1995-96, Microsoft Corporation.
|
||
|
*/
|
||
|
|
||
|
#ifndef _EXCHMEM_
|
||
|
#define _EXCHMEM_
|
||
|
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C"
|
||
|
{
|
||
|
#endif
|
||
|
|
||
|
// Additional Heap Flags
|
||
|
|
||
|
#define HEAP_NO_FREE 0x00001000
|
||
|
|
||
|
|
||
|
// API Function Prototypes
|
||
|
|
||
|
HANDLE
|
||
|
WINAPI
|
||
|
ExchHeapCreate(
|
||
|
DWORD dwFlags,
|
||
|
DWORD dwInitialSize,
|
||
|
DWORD dwMaxSize);
|
||
|
|
||
|
|
||
|
BOOL
|
||
|
WINAPI
|
||
|
ExchHeapDestroy(
|
||
|
HANDLE hHeap);
|
||
|
|
||
|
|
||
|
LPVOID
|
||
|
WINAPI
|
||
|
ExchHeapAlloc(
|
||
|
HANDLE hHeap,
|
||
|
DWORD dwFlags,
|
||
|
DWORD dwSize);
|
||
|
|
||
|
|
||
|
LPVOID
|
||
|
WINAPI
|
||
|
ExchHeapReAlloc(
|
||
|
HANDLE hHeap,
|
||
|
DWORD dwFlags,
|
||
|
LPVOID pvOld,
|
||
|
DWORD dwSize);
|
||
|
|
||
|
|
||
|
BOOL
|
||
|
WINAPI
|
||
|
ExchHeapFree(
|
||
|
HANDLE hHeap,
|
||
|
DWORD dwFlags,
|
||
|
LPVOID pvFree);
|
||
|
|
||
|
|
||
|
BOOL
|
||
|
WINAPI
|
||
|
ExchHeapLock(
|
||
|
HANDLE hHeap);
|
||
|
|
||
|
|
||
|
BOOL
|
||
|
WINAPI
|
||
|
ExchHeapUnlock(
|
||
|
HANDLE hHeap);
|
||
|
|
||
|
|
||
|
BOOL
|
||
|
WINAPI
|
||
|
ExchHeapWalk(
|
||
|
HANDLE hHeap,
|
||
|
LPPROCESS_HEAP_ENTRY lpEntry);
|
||
|
|
||
|
|
||
|
BOOL
|
||
|
WINAPI
|
||
|
ExchHeapValidate(
|
||
|
HANDLE hHeap,
|
||
|
DWORD dwFlags,
|
||
|
LPCVOID lpMem);
|
||
|
|
||
|
|
||
|
SIZE_T
|
||
|
WINAPI
|
||
|
ExchHeapSize(
|
||
|
HANDLE hHeap,
|
||
|
DWORD dwFlags,
|
||
|
LPCVOID lpMem);
|
||
|
|
||
|
|
||
|
SIZE_T
|
||
|
WINAPI
|
||
|
ExchHeapCompact(
|
||
|
HANDLE hHeap,
|
||
|
DWORD dwFlags);
|
||
|
|
||
|
|
||
|
HANDLE
|
||
|
WINAPI
|
||
|
ExchMHeapCreate(
|
||
|
ULONG cHeaps,
|
||
|
DWORD dwFlags,
|
||
|
DWORD dwInitialSize,
|
||
|
DWORD dwMaxSize);
|
||
|
|
||
|
|
||
|
BOOL
|
||
|
WINAPI
|
||
|
ExchMHeapDestroy(void);
|
||
|
|
||
|
|
||
|
LPVOID
|
||
|
WINAPI
|
||
|
ExchMHeapAlloc(
|
||
|
DWORD dwSize);
|
||
|
|
||
|
LPVOID
|
||
|
WINAPI
|
||
|
ExchMHeapAllocDebug(DWORD dwSize, char *szFileName, DWORD dwLineNumber);
|
||
|
|
||
|
LPVOID
|
||
|
WINAPI
|
||
|
ExchMHeapReAlloc(LPVOID pvOld, DWORD dwSize);
|
||
|
|
||
|
LPVOID
|
||
|
WINAPI
|
||
|
ExchMHeapReAllocDebug(LPVOID pvOld, DWORD dwSize, char *szFileName, DWORD dwLineNumber);
|
||
|
|
||
|
BOOL
|
||
|
WINAPI
|
||
|
ExchMHeapFree(
|
||
|
LPVOID pvFree);
|
||
|
|
||
|
|
||
|
SIZE_T
|
||
|
WINAPI
|
||
|
ExchMHeapSize(
|
||
|
LPVOID pvSize);
|
||
|
|
||
|
LPVOID
|
||
|
WINAPI
|
||
|
ExchAlloc(
|
||
|
DWORD dwSize);
|
||
|
|
||
|
|
||
|
LPVOID
|
||
|
WINAPI
|
||
|
ExchReAlloc(
|
||
|
LPVOID pvOld,
|
||
|
DWORD dwSize);
|
||
|
|
||
|
|
||
|
BOOL
|
||
|
WINAPI
|
||
|
ExchFree(
|
||
|
LPVOID pvFree);
|
||
|
|
||
|
|
||
|
SIZE_T
|
||
|
WINAPI
|
||
|
ExchSize(
|
||
|
LPVOID pv);
|
||
|
|
||
|
|
||
|
//
|
||
|
// Misc. Debug functions. Available in retail and debug exchmem, but retail version is simply a stub..
|
||
|
//
|
||
|
|
||
|
VOID
|
||
|
WINAPI
|
||
|
ExchmemGetCallStack(DWORD_PTR *rgdwCaller, DWORD cFind);
|
||
|
|
||
|
VOID
|
||
|
WINAPI
|
||
|
ExchmemFormatSymbol(HANDLE hProcess, DWORD_PTR dwCaller, char rgchSymbol[], DWORD cbSymbol);
|
||
|
|
||
|
DWORD
|
||
|
WINAPI
|
||
|
ExchmemReloadSymbols(void);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif // _EXCHMEM_
|