From a727dc3bf50d292d28d002231777b1fa96364054 Mon Sep 17 00:00:00 2001 From: Aaron Robinson Date: Fri, 31 Oct 2003 04:16:15 +0000 Subject: [PATCH] MmSetAddressProtect? --- Cxbx.opt | Bin 61952 -> 68096 bytes CxbxKrnl.dsp | 4 ++-- Source/Win32/CxbxKrnl/EmuKrnl.cpp | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Cxbx.opt b/Cxbx.opt index 423a493242e6f3d5f35b3ab6c51a434b29dec9cf..4976b764e2aa8f0d169ede65f7e646a02ad93b7a 100644 GIT binary patch literal 68096 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 LG8uu776ShdZ^B@o literal 61952 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 tXO?O3{@*H_Tw(^80cL<1U -# Microsoft Developer Studio Generated Build File, Format Version 60000 +# Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 @@ -53,7 +53,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 ws2_32.lib dsound.lib winmm.lib ddraw.lib d3d8.lib dinput8.lib dxguid.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /map /machine:I386 /out:"Bin/Cxbx.dll" /libpath:"Lib" +# ADD LINK32 ws2_32.lib dsound.lib winmm.lib ddraw.lib d3dx8.lib d3d8.lib dinput8.lib dxguid.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /map /machine:I386 /out:"Bin/Cxbx.dll" /libpath:"Lib" # SUBTRACT LINK32 /profile /pdb:none /debug !ELSEIF "$(CFG)" == "CxbxKrnl - Win32 Debug" diff --git a/Source/Win32/CxbxKrnl/EmuKrnl.cpp b/Source/Win32/CxbxKrnl/EmuKrnl.cpp index 331153948..2f6001b51 100644 --- a/Source/Win32/CxbxKrnl/EmuKrnl.cpp +++ b/Source/Win32/CxbxKrnl/EmuKrnl.cpp @@ -965,14 +965,16 @@ XBSYSAPI EXPORTNUM(182) VOID NTAPI xboxkrnl::MmSetAddressProtect "(\n" " BaseAddress : 0x%.08X\n" " NumberOfBytes : 0x%.08X\n" - " Persist : 0x%.08X\n" + " NewProtect : 0x%.08X\n" ");\n", GetCurrentThreadId(), BaseAddress, NumberOfBytes, NewProtect); } #endif - // TODO: Actually set protection - EmuWarning("MmSetAddressProtect is being ignored"); + DWORD dwOldProtect; + + if(!VirtualProtect(BaseAddress, NumberOfBytes, NewProtect & (~PAGE_WRITECOMBINE), &dwOldProtect)) + EmuWarning("VirtualProtect Failed!"); EmuSwapFS(); // Xbox FS