mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-07 06:00:16 +02:00
Merge pull request #4206 from bylaws/smcim
Windows: Track RWX regions in mapped images
This commit is contained in:
5 files changed
+33
-2
No files matched your search
@@ -549,6 +549,10 @@ NTSTATUS ProcessInit() {
|
||||
CTX->SetSyscallHandler(SyscallHandler.get());
|
||||
CTX->InitCore();
|
||||
InvalidationTracker.emplace(*CTX, Threads);
|
||||
|
||||
auto MainModule = reinterpret_cast<__TEB*>(NtCurrentTeb())->Peb->ImageBaseAddress;
|
||||
InvalidationTracker->HandleImageMap(reinterpret_cast<uint64_t>(MainModule));
|
||||
|
||||
CPUFeatures.emplace(*CTX);
|
||||
|
||||
X64ReturnInstr = ::VirtualAlloc(nullptr, FEXCore::Utils::FEX_PAGE_SIZE, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
|
||||
@@ -696,6 +700,12 @@ void NotifyMemoryProtect(void* Address, SIZE_T Size, ULONG NewProt, BOOL After,
|
||||
}
|
||||
|
||||
NTSTATUS NotifyMapViewOfSection(void* Unk1, void* Address, void* Unk2, SIZE_T Size, ULONG AllocType, ULONG Prot) {
|
||||
if (!InvalidationTracker || !GetCPUArea().ThreadState()) {
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
std::scoped_lock Lock(ThreadCreationMutex);
|
||||
InvalidationTracker->HandleImageMap(reinterpret_cast<uint64_t>(Address));
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user