Looking thru the definitions in winnt.h from rubenvb's 4.7.2 download (c++.exe --version is rubenvb-4.7.2-release) reveals a number of routines with inline assembly that simply don't work correctly. At least they don't on my i7 processor (could these have been coded for some other processor?).
However, given the nature of how gcc is developed, it seems possible that some other implementation has done a better job with this file.
So, 2 questions:
I have worked with the Mingw-w64 team to update the asm routines in winnt.h (and other headers). To the best of my knowledge, they are all correct now.