stoneage8.5/石器时代8.5客户端最新源代码/石器源码/other/memdll.h

126 lines
4.3 KiB
C
Raw Normal View History

2020-06-22 17:49:02 +08:00
/*-----------------------------------------------------------------------------
caryMemory_lib.h -- cary's Virtual memory <EFBFBD>޲z<EFBFBD>C
Waei(c) All rights reserved
author: <EFBFBD>\<EFBFBD>ʳ<EFBFBD>Cary Hsu, 2000.10.8
-----------------------------------------------------------------------------*/
#ifndef __MEMDLL
#define __MEMDLL
#define _MEM_LIB
#ifdef _MEM_LIB
#define MEMDLL_API
#else
#ifdef MEMDLL_EXPORTS
#define MEMDLL_API __declspec(dllexport)
#else
#define MEMDLL_API __declspec(dllimport)
#endif
#endif
//<2F>^<5E>Ǫ<EFBFBD><C7AA><EFBFBD><EFBFBD>~***************************************************************************************
#define ERROR_MEMORY_OK 0x00000000
#define ERROR_MEMORY_INITFAILED 0x00000001 //<2F>t<EFBFBD>mHandle<6C>}<7D>C<EFBFBD><43><EFBFBD>~
#define ERROR_HEAP_NOT_ENOUGH 0x00000010
#define ERROR_HEAP_LIST_NOT_ENOUGH 0x00000020
//*************************************************************************************************
/* <09><><EFBFBD>l<EFBFBD>ưO<C6B0><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>w
return: ERROR_MEMORY_OK: <EFBFBD><EFBFBD><EFBFBD>\
ERROR_MEMORY_INITFAILED:<EFBFBD><EFBFBD><EFBFBD>l<EFBFBD>ƥ<EFBFBD><EFBFBD><EFBFBD> */
DWORD MemoryInit();
/* <09><><EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>w<EFBFBD><77><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD> */
void MemoryRelease();
//*************************************************************************************************
/* <09>O<EFBFBD>d<EFBFBD>@<40>j<EFBFBD>d<EFBFBD><64><EFBFBD><EFBFBD>Virtual Memory<72>A<EFBFBD>öǦ^Handle<6C>A<EFBFBD><41>ij<EFBFBD>Hpage<67><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD>t<EFBFBD>m1<6D><31>commit page<67><65><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD>)
parameter: lpdwHandle: <EFBFBD>Ǧ^Handle
iSize: <EFBFBD>n<EFBFBD>t<EFBFBD>m<EFBFBD>h<EFBFBD>ְO<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>æ^<EFBFBD>ǫإߪ<EFBFBD><EFBFBD>j<EFBFBD>p
return: <EFBFBD>DNULL: <EFBFBD>^<EFBFBD>ǰt<EFBFBD>m<EFBFBD>O<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}
NULL: <EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
MEMDLL_API LPVOID VirtualReserve( LPDWORD lpdwHandle, int &iSize);
/* <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Handle<6C>t<EFBFBD>m<EFBFBD><6D><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD>
parameter: lpdwHandle: Handle<EFBFBD><EFBFBD> */
MEMDLL_API void VirtualRelease( LPDWORD lpdwHandle);
/* <09>o<EFBFBD><6F>Exception<6F><6E><EFBFBD>B<EFBFBD>z<EFBFBD>
parameter: dwHandle: Handle<EFBFBD><EFBFBD>
lpEP: EXCEPTION_POINTERS<EFBFBD><EFBFBD>structure
return: EXCEPTION_CONTINUE_EXECUTION: <EFBFBD>~<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
EXCEPTION_CONTINUE_SEARCH: <EFBFBD>~<EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><EFBFBD><EFBFBD>i<EFBFBD>B<EFBFBD>zexception handle */
MEMDLL_API int ExpFilter( DWORD dwHandle, LPEXCEPTION_POINTERS lpEP);
//*************************************************************************************************
//*************************************************************************************************
/* <09>t<EFBFBD>miSize<7A>ӰO<D3B0><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Heap
parameter: lpdwHandle: <EFBFBD>Ǧ^Handle
iSize: <EFBFBD>n<EFBFBD>t<EFBFBD>m<EFBFBD>h<EFBFBD>֪<EFBFBD><EFBFBD>O<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return: TRUE: <EFBFBD>t<EFBFBD>m<EFBFBD><EFBFBD><EFBFBD>\
FALSE: <EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
MEMDLL_API BOOL HeapCreate( LPDWORD lpdwHandle, int &iSize);
/* <09><><EFBFBD><EFBFBD>Heap<61><70><EFBFBD>Ҧ<EFBFBD><D2A6>O<EFBFBD><4F><EFBFBD><EFBFBD>
parameter: lpdwHandle: Handle<EFBFBD><EFBFBD> */
MEMDLL_API void HeapRelease( LPDWORD lpdwHandle);
/* <09>M<EFBFBD><4D>Heap<61><70>List<73>A<EFBFBD>A<EFBFBD>ϥ<EFBFBD>
parameter: dwHandle: Handle<EFBFBD><EFBFBD> */
MEMDLL_API void HeapReset( DWORD dwHandle);
/* <09>qlpheap<61><70><EFBFBD>A<EFBFBD>t<EFBFBD>mdwSize<7A>j<EFBFBD>p<EFBFBD><70><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD>
parameter: dwHandle: Handle<EFBFBD><EFBFBD>
dwSize: <EFBFBD>n<EFBFBD>t<EFBFBD>m<EFBFBD>h<EFBFBD>ְO<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return: <EFBFBD>DNULL: <EFBFBD>Ǧ^<EFBFBD>t<EFBFBD>m<EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NULL: <EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
MEMDLL_API LPVOID HeapAlloc( DWORD dwHandle, DWORD dwSize);
/* <09>qlpheap<61><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Heap<61><70>memlt
parameter: dwHandle: Handle<EFBFBD><EFBFBD>
lpAddress: <EFBFBD>n<EFBFBD><EFBFBD><EFBFBD>񪺰O<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>} */
MEMDLL_API void HeapFree( DWORD dwHandle, LPVOID *lpAddress);
//*************************************************************************************************
//*************************************************************************************************
typedef struct USEDMEMORY{
LPBYTE lpbyStart;
DWORD dwSize;
}*LPUSEDMEMORY;
/* <09><><EFBFBD>^lpheap<61><70><EFBFBD>Ĥ@<40><>Heap list
parameter: dwHandle: Handle<EFBFBD><EFBFBD>
return: <EFBFBD>Ǧ^<EFBFBD>ϥΤ<EFBFBD><EFBFBD><EFBFBD>address<EFBFBD>ANULL<EFBFBD><EFBFBD><EFBFBD>̫<EFBFBD><EFBFBD>@<EFBFBD><EFBFBD> */
MEMDLL_API LPUSEDMEMORY GetMemoryListHead( DWORD dwHandle);
/* <09><><EFBFBD>^lpheap<61><70><EFBFBD>U<EFBFBD>@<40><>Heap list
parameter: dwHandle: Handle<EFBFBD><EFBFBD>
return: <EFBFBD>Ǧ^<EFBFBD>ϥΤ<EFBFBD><EFBFBD><EFBFBD>address<EFBFBD>ANULL<EFBFBD><EFBFBD><EFBFBD>̫<EFBFBD><EFBFBD>@<EFBFBD><EFBFBD> */
MEMDLL_API LPUSEDMEMORY GetMemoryListNext( DWORD dwHandle);
/* <09><><EFBFBD>^<5E><><EFBFBD>~<7E><>
parameter: dwHandle: Handle<EFBFBD><EFBFBD>
return: <EFBFBD>^<EFBFBD>ǿ<EFBFBD><EFBFBD>~<EFBFBD><EFBFBD> */
MEMDLL_API DWORD GetCaryError( DWORD dwHandle);
//*************************************************************************************************
//*************************************************************************************************
/* <09>h<EFBFBD><68><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>ϥ<EFBFBD>MMX<4D><58><EFBFBD>w<EFBFBD><77>pentum II<49>̨Τƪ<CEA4><C6AA>B<EFBFBD>z
parameter: dest: <EFBFBD>ت<EFBFBD><EFBFBD><EFBFBD><EFBFBD>}
src: <EFBFBD>ӷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>}
cnt: <EFBFBD>h<EFBFBD><EFBFBD><EFBFBD><EFBFBD>byte<EFBFBD><EFBFBD>
return: TRUE: <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FALSE: <EFBFBD><EFBFBD><EFBFBD>}<EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>k */
MEMDLL_API BOOL mmx_CopyMemory( LPVOID dest, LPVOID src, int cnt);
/* <09>h<EFBFBD><68><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>ϥ<EFBFBD>MMX<4D><58><EFBFBD>w<EFBFBD><77>pentum II<49>̨Τƪ<CEA4><C6AA>B<EFBFBD>z
parameter: dest: <EFBFBD>ت<EFBFBD><EFBFBD><EFBFBD><EFBFBD>}
src: <EFBFBD>ӷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>}
cnt: <EFBFBD>h<EFBFBD><EFBFBD><EFBFBD><EFBFBD>byte<EFBFBD><EFBFBD>
return: TRUE: <EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FALSE: <EFBFBD><EFBFBD><EFBFBD>}<EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>k */
MEMDLL_API BOOL mmx_CopyMemory_test( LPVOID dest, LPVOID src, int cnt);
#endif