7 #ifndef __MY_MEM_TOOLS_H__ 8 #define __MY_MEM_TOOLS_H__ 10 #define MY_HEAP_FLAG_USED 0x00000001 11 #define MY_HEAP_FLAG_LEN_MASK 0xfffffffe 13 #define MyFreeMemoryAndPointer(ptr) \ 25 #ifdef MY_HEAP_TRACK_OWNERS 29 #ifdef MY_HEAP_TRACK_REF 45 #define MY_HEAP_FRAME_SIZE (256*1024) 46 #define MY_HEAP_MAX_FRAMES 512 47 #define MY_HEAP_MAX_BLOCKS 4*1024 // blocks per frame 49 #ifdef USE_THREAD_HEAPS 51 extern "C" VOID ExInitThreadPools();
52 extern "C" VOID ExDeInitThreadPools();
53 extern "C" VOID ExFreeThreadPool();
54 #endif //USE_THREAD_HEAPS 59 #ifdef MY_HEAP_TRACK_OWNERS 61 #ifdef MY_HEAP_TRACK_REF
68 #ifdef MY_HEAP_TRACK_REF
76 #ifdef MY_HEAP_CHECK_BOUNDS 77 #define MY_HEAP_ALIGN 63 79 #define MY_HEAP_ALIGN 63 81 #define PAGE_SIZE_ALIGN (PAGE_SIZE - 1) 83 #define AlignToPageSize(size) (((size)+PAGE_SIZE_ALIGN)&(~PAGE_SIZE_ALIGN)) 84 #define MyAlignSize__(size) (((size)+MY_HEAP_ALIGN)&(~MY_HEAP_ALIGN)) 85 #ifdef MY_HEAP_FORCE_NONPAGED 86 #define MyFixMemType(type) NonPagedPool 87 #else //MY_HEAP_FORCE_NONPAGED 88 #define MyFixMemType(type) (type) 89 #endif //MY_HEAP_FORCE_NONPAGED 91 #ifdef MY_USE_INTERNAL_MEMMANAGER 93 #ifdef MY_HEAP_TRACK_OWNERS 94 #ifdef MY_HEAP_TRACK_REF 95 #define MyAllocatePool__(type,size) MyAllocatePool(MyFixMemType(type), MyAlignSize__(size), UDF_BUG_CHECK_ID, __LINE__, NULL) 96 #define MyAllocatePoolTag__(type,size,tag) MyAllocatePool(MyFixMemType(type), MyAlignSize__(size), UDF_BUG_CHECK_ID, __LINE__, (PCHAR)(tag)) 98 #define MyAllocatePool__(type,size) MyAllocatePool(MyFixMemType(type), MyAlignSize__(size), UDF_BUG_CHECK_ID, __LINE__) 99 #define MyAllocatePoolTag__(type,size,tag) MyAllocatePool(MyFixMemType(type), MyAlignSize__(size), UDF_BUG_CHECK_ID, __LINE__) 100 #endif //MY_HEAP_TRACK_REF 101 #else //MY_HEAP_TRACK_OWNERS 102 #ifdef MY_HEAP_TRACK_REF 103 #define MyAllocatePool__(type,size) MyAllocatePool(MyFixMemType(type), MyAlignSize__(size), NULL) 104 #define MyAllocatePoolTag__(type,size,tag) MyAllocatePool(MyFixMemType(type), MyAlignSize__(size), (PCHAR)(tag)) 106 #define MyAllocatePool__(type,size) MyAllocatePool(MyFixMemType(type), MyAlignSize__(size)) 107 #define MyAllocatePoolTag__(type,size,tag) MyAllocatePool(MyFixMemType(type), MyAlignSize__(size)) 108 #endif //MY_HEAP_TRACK_REF 109 #endif //MY_HEAP_TRACK_OWNERS 111 #define MyFreePool__(addr) MyFreePool((PCHAR)(addr)) 113 #ifdef MY_HEAP_TRACK_OWNERS 114 #define MyReallocPool__(addr, len, pnewaddr, newlen) MyReallocPool((PCHAR)(addr), MyAlignSize__(len), pnewaddr, MyAlignSize__(newlen), UDF_BUG_CHECK_ID, __LINE__) 116 #define MyReallocPool__(addr, len, pnewaddr, newlen) MyReallocPool((PCHAR)(addr), MyAlignSize__(len), pnewaddr, MyAlignSize__(newlen)) 125 #define MyCheckArray(base, index) \ 126 ASSERT(MyFindMemBaseByAddr((PCHAR)(base)) == MyFindMemBaseByAddr((PCHAR)(base+(index)))) 129 #define MyCheckArray(base, index) 133 #else //MY_USE_INTERNAL_MEMMANAGER 137 #define MyAlignSize__(size) (size) 141 #define MyAllocRelease() 143 #ifndef MY_MEM_BOUNDS_CHECK 145 #ifdef TRACK_SYS_ALLOC_CALLERS 146 #define MyAllocatePool__(type,size) DebugAllocatePool(NonPagedPool,MyAlignSize__(size), UDF_BUG_CHECK_ID, __LINE__) 147 #define MyAllocatePoolTag__(type,size,tag) DebugAllocatePool(NonPagedPool,MyAlignSize__(size), UDF_BUG_CHECK_ID, __LINE__) 148 #else //TRACK_SYS_ALLOC_CALLERS 149 #define MyAllocatePool__(type,size) DbgAllocatePoolWithTag(NonPagedPool,MyAlignSize__(size), 'fNWD') 150 #define MyAllocatePoolTag__(type,size,tag) DbgAllocatePoolWithTag(NonPagedPool,MyAlignSize__(size), tag) 151 #endif //TRACK_SYS_ALLOC_CALLERS 152 #define MyFreePool__(addr) DbgFreePool((PCHAR)(addr)) 154 #else //MY_MEM_BOUNDS_CHECK 156 #ifdef TRACK_SYS_ALLOC_CALLERS 157 #define MyAllocatePool_(type,size) DebugAllocatePool(NonPagedPool,MyAlignSize__(size), UDF_BUG_CHECK_ID, __LINE__) 158 #define MyAllocatePoolTag_(type,size,tag) DebugAllocatePool(NonPagedPool,MyAlignSize__(size), UDF_BUG_CHECK_ID, __LINE__) 159 #else //TRACK_SYS_ALLOC_CALLERS 160 #define MyAllocatePool_(type,size) DbgAllocatePoolWithTag(NonPagedPool,MyAlignSize__(size), 'mNWD') 161 #define MyAllocatePoolTag_(type,size,tag) DbgAllocatePoolWithTag(NonPagedPool,MyAlignSize__(size), tag) 162 #endif //TRACK_SYS_ALLOC_CALLERS 163 #define MyFreePool_(addr) DbgFreePool((PCHAR)(addr)) 165 #define MyAllocatePool__(type,size) MyAllocatePoolTag__(type,size,'mNWD') 190 #ifdef TRACK_SYS_ALLOC_CALLERS 192 #else //TRACK_SYS_ALLOC_CALLERS 194 #endif //TRACK_SYS_ALLOC_CALLERS 219 MyFreePool_(newaddr);
222 #endif //MY_MEM_BOUNDS_CHECK 232 #ifdef MY_MEM_BOUNDS_CHECK 241 #endif //MY_MEM_BOUNDS_CHECK 243 if ((_newlen != _len)
244 #ifdef MY_MEM_BOUNDS_CHECK
248 #ifdef TRACK_SYS_ALLOC_CALLERS 250 #else //TRACK_SYS_ALLOC_CALLERS 252 #endif //TRACK_SYS_ALLOC_CALLERS 258 #ifdef MY_MEM_BOUNDS_CHECK 260 newaddr[newlen+
i] = (
UCHAR)(
'A'+
i);
262 #endif //MY_MEM_BOUNDS_CHECK 264 if(_newlen <= _len) {
270 #ifdef MY_MEM_BOUNDS_CHECK 277 #endif //MY_MEM_BOUNDS_CHECK 298 #define MyAlignSize__(size) (((size)+MY_HEAP_ALIGN)&(~MY_HEAP_ALIGN)) 301 #define MyCheckArray(base, index) 303 #endif // MY_USE_INTERNAL_MEMMANAGER 305 #endif // __MY_MEM_TOOLS_H__
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
GLuint GLuint GLsizei GLenum type
void __cdecl __debugbreak(void)
static USHORT USHORT * NewLength
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
GLenum const GLvoid * addr
#define RtlZeroMemory(Destination, Length)