Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
4.4 KiB

  1. #ifndef WINDOWS_HEAP_HPP
  2. #define WINDOWS_HEAP_HPP 1
  3. // Ruler
  4. // 1 2 3 4 5 6 7 8
  5. //345678901234567890123456789012345678901234567890123456789012345678901234567890
  6. /********************************************************************/
  7. /* */
  8. /* The standard layout. */
  9. /* */
  10. /* The standard layout for 'cpp' files in this code is as */
  11. /* follows: */
  12. /* */
  13. /* 1. Include files. */
  14. /* 2. Constants local to the class. */
  15. /* 3. Data structures local to the class. */
  16. /* 4. Data initializations. */
  17. /* 5. Static functions. */
  18. /* 6. Class functions. */
  19. /* */
  20. /* Any portion that is not required is simply omitted. */
  21. /* */
  22. /********************************************************************/
  23. #include "Windows.h"
  24. /********************************************************************/
  25. /* */
  26. /* Linkage to the DLL. */
  27. /* */
  28. /* We need to compile the class specification slightly */
  29. /* differently if we are creating the heap DLL. */
  30. /* */
  31. /********************************************************************/
  32. #ifdef COMPILING_ROCKALL_DLL
  33. #define ROCKALL_DLL_LINKAGE __declspec(dllexport)
  34. #else
  35. #ifdef COMPILING_ROCKALL_LIBRARY
  36. #define ROCKALL_DLL_LINKAGE
  37. #else
  38. #define ROCKALL_DLL_LINKAGE __declspec(dllimport)
  39. #endif
  40. #endif
  41. #ifdef __cplusplus
  42. #define EXTERN_C extern "C"
  43. #else
  44. #define EXTERN_C
  45. #endif
  46. /********************************************************************/
  47. /* */
  48. /* The shadow interface. */
  49. /* */
  50. /* The shadow interface closely resembles the NT heap interface */
  51. /* and so enables the easy porting of applications. */
  52. /* */
  53. /********************************************************************/
  54. EXTERN_C ROCKALL_DLL_LINKAGE HANDLE WindowsHeapCreate
  55. (
  56. DWORD Flags,
  57. DWORD InitialSize,
  58. DWORD MaximumSize
  59. );
  60. EXTERN_C ROCKALL_DLL_LINKAGE LPVOID WindowsHeapAlloc
  61. (
  62. HANDLE Heap,
  63. DWORD Flags,
  64. DWORD Size
  65. );
  66. EXTERN_C ROCKALL_DLL_LINKAGE UINT WindowsHeapCompact
  67. (
  68. HANDLE Heap,
  69. DWORD Flags
  70. );
  71. EXTERN_C ROCKALL_DLL_LINKAGE BOOL WindowsHeapFree
  72. (
  73. HANDLE Heap,
  74. DWORD Flags,
  75. LPVOID Memory
  76. );
  77. EXTERN_C ROCKALL_DLL_LINKAGE BOOL WindowsHeapLock
  78. (
  79. HANDLE Heap
  80. );
  81. EXTERN_C ROCKALL_DLL_LINKAGE LPVOID WindowsHeapReAlloc
  82. (
  83. HANDLE Heap,
  84. DWORD Flags,
  85. LPVOID Memory,
  86. DWORD Size
  87. );
  88. EXTERN_C ROCKALL_DLL_LINKAGE VOID WindowsHeapReset
  89. (
  90. HANDLE Heap
  91. );
  92. EXTERN_C ROCKALL_DLL_LINKAGE DWORD WindowsHeapSize
  93. (
  94. HANDLE Heap,
  95. DWORD Flags,
  96. LPVOID Memory
  97. );
  98. EXTERN_C ROCKALL_DLL_LINKAGE BOOL WindowsHeapUnlock
  99. (
  100. HANDLE Heap
  101. );
  102. EXTERN_C ROCKALL_DLL_LINKAGE BOOL WindowsHeapValidate
  103. (
  104. HANDLE Heap,
  105. DWORD Flags,
  106. LPVOID Memory
  107. );
  108. EXTERN_C ROCKALL_DLL_LINKAGE BOOL WindowsHeapWalk
  109. (
  110. HANDLE Heap,
  111. LPPROCESS_HEAP_ENTRY Walk
  112. );
  113. EXTERN_C ROCKALL_DLL_LINKAGE BOOL WindowsHeapDestroy
  114. (
  115. HANDLE Heap
  116. );
  117. #endif