| 987 | } |
| 988 | |
| 989 | void BTCpuNotifyMemoryFree(void* Address, SIZE_T Size, ULONG FreeType, BOOL After, ULONG Status) { |
| 990 | if (!After) { |
| 991 | ThreadCreationMutex.lock(); |
| 992 | if (!Size) { |
| 993 | InvalidationTracker->InvalidateContainingSection(reinterpret_cast<uint64_t>(Address), true); |
| 994 | } else if (FreeType & MEM_DECOMMIT) { |
| 995 | InvalidationTracker->InvalidateAlignedInterval(reinterpret_cast<uint64_t>(Address), static_cast<uint64_t>(Size), true); |
| 996 | } |
| 997 | } else { |
| 998 | ThreadCreationMutex.unlock(); |
| 999 | } |
| 1000 | } |
| 1001 | |
| 1002 | NTSTATUS BTCpuNotifyMapViewOfSection(void* Unk1, void* Address, void* Unk2, SIZE_T Size, ULONG AllocType, ULONG Prot) { |
| 1003 | std::scoped_lock Lock(ThreadCreationMutex); |
nothing calls this directly
no test coverage detected