Ignore this patch, it does not compile... but only in 64bit mode. I'll send an updated one.
On Fri, 13 Mar 2015, Francois Gouget wrote: [...]
diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c
[...]
-#define NONAMELESSUNION #define NONAMELESSSTRUCT
This is the problem: 64bit code does not compile if NONAMELESSSTRUCT is defined but not NONAMELESSUNION. That's because the 64bit KNONVOLATILE_CONTEXT_POINTERS struct then looks like this:
{ ... union { ... struct { ... } s; }; // Normally called u. union { ... struct { ... } s; }; // Normally called u2. };
So there is no way to determine whether one is accessing the content of the first struct or the second struct. Unfortunately we are stuck as that's really how it is in the PSDK.