CommonMemoryPch.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. #pragma once
  6. #include "CommonMinMemory.h"
  7. typedef _Return_type_success_(return >= 0) LONG NTSTATUS;
  8. #define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)
  9. // === C Runtime Header Files ===
  10. #include <time.h>
  11. #if defined(_UCRT)
  12. #include <cmath>
  13. #else
  14. #include <math.h>
  15. #endif
  16. // Exceptions
  17. #include "Exceptions/ExceptionBase.h"
  18. #include "Exceptions/OutOfMemoryException.h"
  19. #include "../Parser/rterror.h"
  20. // Other Memory headers
  21. #include "Memory/LeakReport.h"
  22. #include "Memory/AutoPtr.h"
  23. // Other core headers
  24. #include "Core/FinalizableObject.h"
  25. #include "Core/EtwTraceCore.h"
  26. #include "Core/ProfileInstrument.h"
  27. #include "Core/ProfileMemory.h"
  28. #include "Core/StackBackTrace.h"
  29. #ifdef _MSC_VER
  30. #pragma warning(push)
  31. #if defined(PROFILE_RECYCLER_ALLOC) || defined(HEAP_TRACK_ALLOC) || defined(ENABLE_DEBUG_CONFIG_OPTIONS)
  32. #include <typeinfo.h>
  33. #endif
  34. #pragma warning(pop)
  35. #endif
  36. // Inl files
  37. #include "Memory/Recycler.inl"
  38. #include "Memory/MarkContext.inl"
  39. #include "Memory/HeapBucket.inl"
  40. #include "Memory/LargeHeapBucket.inl"
  41. #include "Memory/HeapBlock.inl"
  42. #include "Memory/HeapBlockMap.inl"
  43. // Memory Protections
  44. #ifdef _CONTROL_FLOW_GUARD
  45. #define PAGE_EXECUTE_RW_TARGETS_INVALID (PAGE_EXECUTE_READWRITE | PAGE_TARGETS_INVALID)
  46. #define PAGE_EXECUTE_RW_TARGETS_NO_UPDATE (PAGE_EXECUTE_READWRITE | PAGE_TARGETS_NO_UPDATE)
  47. #define PAGE_EXECUTE_RO_TARGETS_NO_UPDATE (PAGE_EXECUTE | PAGE_TARGETS_NO_UPDATE)
  48. #else
  49. #define PAGE_EXECUTE_RW_TARGETS_INVALID (PAGE_EXECUTE_READWRITE)
  50. #define PAGE_EXECUTE_RW_TARGETS_NO_UPDATE (PAGE_EXECUTE_READWRITE)
  51. #define PAGE_EXECUTE_RO_TARGETS_NO_UPDATE (PAGE_EXECUTE)
  52. #endif