http://bugs.winehq.org/show_bug.cgi?id=29168
--- Comment #117 from Xolotl Loki xoloki@gmail.com 2012-03-05 21:47:04 CST --- Does wine implement KUSER_SHARED_DATA as shared memory? If so, then it should be updated by wineserver, not client wine threads.
The memory is allocated by the following call in thread.c:
addr = (void *)0x7ffe0000; size = 0x10000; NtAllocateVirtualMemory( NtCurrentProcess(), &addr, 0, &size, MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE );
I see no mention of shared memory in NtAllocateVirtualMemory, so I'm guessing no. Accoding to the docs I found, these fields are supposed to be updated every *100ns*. If we try to do that in every thread, it's just not going to work.