home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / winbase / winnt / mpheap / mpheap.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-08-24  |  1.6 KB  |  100 lines

  1. /*++
  2.  
  3. Copyright (c) 1992  Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     mpheap.h
  8.  
  9. Abstract:
  10.  
  11.     Public header file for MP heap package
  12.  
  13. Author:
  14.  
  15.     John Vert (jvert) 10-Jul-1995
  16.  
  17. Revision History:
  18.  
  19. --*/
  20.  
  21. //
  22. // Valid heap creation options
  23. //
  24. #define MPHEAP_GROWABLE HEAP_GROWABLE
  25. #define MPHEAP_REALLOC_IN_PLACE_ONLY HEAP_REALLOC_IN_PLACE_ONLY
  26. #define MPHEAP_TAIL_CHECKING_ENABLED HEAP_TAIL_CHECKING_ENABLED
  27. #define MPHEAP_FREE_CHECKING_ENABLED HEAP_FREE_CHECKING_ENABLED
  28. #define MPHEAP_DISABLE_COALESCE_ON_FREE HEAP_DISABLE_COALESCE_ON_FREE
  29. #define MPHEAP_ZERO_MEMORY HEAP_ZERO_MEMORY
  30. #define MPHEAP_COLLECT_STATS 0x10000000
  31.  
  32. HANDLE
  33. WINAPI
  34. MpHeapCreate(
  35.     DWORD flOptions,
  36.     DWORD dwInitialSize,
  37.     DWORD dwParallelism
  38.     );
  39.  
  40. BOOL
  41. WINAPI
  42. MpHeapDestroy(
  43.     HANDLE hMpHeap
  44.     );
  45.  
  46. BOOL
  47. WINAPI
  48. MpHeapValidate(
  49.     HANDLE hMpHeap,
  50.     LPVOID lpMem
  51.     );
  52.  
  53. UINT
  54. WINAPI
  55. MpHeapCompact(
  56.     HANDLE hMpHeap
  57.     );
  58.  
  59. LPVOID
  60. WINAPI
  61. MpHeapAlloc(
  62.     HANDLE hMpHeap,
  63.     DWORD flOptions,
  64.     DWORD dwBytes
  65.     );
  66.  
  67. LPVOID
  68. WINAPI
  69. MpHeapReAlloc(
  70.     HANDLE hMpHeap,
  71.     LPVOID lpMem,
  72.     DWORD dwBytes
  73.     );
  74.  
  75. BOOL
  76. WINAPI
  77. MpHeapFree(
  78.     HANDLE hMpHeap,
  79.     LPVOID lpMem
  80.     );
  81.  
  82. //
  83. // Statistics structure
  84. //
  85. typedef struct _MPHEAP_STATISTICS {
  86.     DWORD Contention;
  87.     DWORD TotalAllocates;
  88.     DWORD TotalFrees;
  89.     DWORD LookasideAllocates;
  90.     DWORD LookasideFrees;
  91.     DWORD DelayedFrees;
  92. } MPHEAP_STATISTICS, *LPMPHEAP_STATISTICS;
  93.  
  94. DWORD
  95. MpHeapGetStatistics(
  96.     HANDLE hMpHeap,
  97.     LPDWORD lpdwSize,
  98.     MPHEAP_STATISTICS Statistics[]
  99.     );
  100.