Side note, while this change does not follow the MSDN, it appears that the MSDN incorrectly documents the function.

This blog post from 2006 explains more: https://blogs.msdn.microsoft.com/doronh/2006/03/09/beware-the-shiny-light-that-is-mmisaddressvalid/

On Tue, Jun 5, 2018 at 11:14 AM, Derek Lesho <dereklesho52@gmail.com> wrote:
Fixes an error inside EasyAntiCheat.sys, which uses MmIsAddressValid on
ntoskrnl.exe, to find its base address.�� Wine will always return FALSE,
because it checks for write access to ntoskrnl, when all the driver
needs is read access

Tested on Arch Linux

Signed-off-by: Derek Lesho <dereklesho52@Gmail.com>
---
��dlls/ntoskrnl.exe/ntoskrnl.c | 2 +-
��1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 55027c5..e4c1c35 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -2164,7 +2164,7 @@ void WINAPI MmFreeNonCachedMemory( void *addr, SIZE_T size )
��BOOLEAN WINAPI MmIsAddressValid(PVOID VirtualAddress)
��{
�� �� ��TRACE("(%p)\n", VirtualAddress);
-�� �� return !IsBadWritePtr(VirtualAddress, 1);
+�� �� return !IsBadReadPtr(VirtualAddress, 1);
��}

��/***********************************************************************
--
2.7.4