https://bugs.winehq.org/show_bug.cgi?id=45667
Bug ID: 45667 Summary: League of Legends 8.15+ fails due to missing implementation of NtQueryVirtualMemory(MemoryWorkingSetExInformation) Product: Wine Version: unspecified Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: awesie@gmail.com Distribution: ---
Created attachment 62094 --> https://bugs.winehq.org/attachment.cgi?id=62094 stub implementation
NtQueryVirtualMemory(MemoryWorkingSetExInformation) is used by League of Legends on Vista+. The current staging implementation is a stub that returns an error, which is insufficient.
Not an issue if Wine is running as Windows XP / 2003.
The attached patch adds a stub implementation for MemoryWorkingSetExInformation that marks every passed in address as invalid. This appears to be sufficient for the stub, but is obviously not correct.
I am not sure how to implement MemoryWorkingSetExInformation perfectly and efficiently, because it requires knowing whether a page has ever been accessed or not. I don't believe that Linux provides this information, so we would probably need to mark _all_ pages as NOACCESS, handle the fault when accessed, and mark the page as accessed.