<div dir="ltr"><div>Side note, while this change does not follow the MSDN, it appears that the MSDN incorrectly documents the function.</div><div><br></div><div>This blog post from 2006 explains more: <a href="https://blogs.msdn.microsoft.com/doronh/2006/03/09/beware-the-shiny-light-that-is-mmisaddressvalid/">https://blogs.msdn.microsoft.com/doronh/2006/03/09/beware-the-shiny-light-that-is-mmisaddressvalid/</a><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 5, 2018 at 11:14 AM, Derek Lesho <span dir="ltr"><<a href="mailto:dereklesho52@gmail.com" target="_blank">dereklesho52@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Fixes an error inside EasyAntiCheat.sys, which uses MmIsAddressValid on<br>
ntoskrnl.exe, to find its base address.  Wine will always return FALSE,<br>
because it checks for write access to ntoskrnl, when all the driver<br>
needs is read access<br>
<br>
Tested on Arch Linux<br>
<br>
Signed-off-by: Derek Lesho <dereklesho52@Gmail.com><br>
---<br>
 dlls/ntoskrnl.exe/ntoskrnl.c | 2 +-<br>
 1 file changed, 1 insertion(+), 1 deletion(-)<br>
<br>
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c<br>
index 55027c5..e4c1c35 100644<br>
--- a/dlls/ntoskrnl.exe/ntoskrnl.c<br>
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c<br>
@@ -2164,7 +2164,7 @@ void WINAPI MmFreeNonCachedMemory( void *addr, SIZE_T size )<br>
 BOOLEAN WINAPI MmIsAddressValid(PVOID VirtualAddress)<br>
 {<br>
     TRACE("(%p)\n", VirtualAddress);<br>
-    return !IsBadWritePtr(VirtualAddress, 1);<br>
+    return !IsBadReadPtr(VirtualAddress, 1);<br>
 }<br>
<br>
 /*****************************<wbr>******************************<wbr>************<br>
<span class="HOEnZb"><font color="#888888">-- <br>
2.7.4<br>
<br>
</font></span></blockquote></div><br></div>