[KERNEL32]
authorAleksey Bragin <aleksey@reactos.org>
Thu, 22 Apr 2010 08:47:47 +0000 (08:47 +0000)
committerAleksey Bragin <aleksey@reactos.org>
Thu, 22 Apr 2010 08:47:47 +0000 (08:47 +0000)
- Update kernel32_winetests to Wine-1.1.43.

svn path=/trunk/; revision=46990

rostests/winetests/kernel32/comm.c
rostests/winetests/kernel32/console.c
rostests/winetests/kernel32/debugger.c
rostests/winetests/kernel32/generated.c
rostests/winetests/kernel32/heap.c
rostests/winetests/kernel32/path.c
rostests/winetests/kernel32/thread.c

index 8cb010c..8ce6ccc 100755 (executable)
@@ -56,336 +56,336 @@ static TEST test[] =
        {
                "baud=9600 parity=e data=5 stop=1 xon=on odsr=off octs=off dtr=on rts=on idsr=on",
                TRUE, FALSE,
-               { 0x00000000, 0x00002580, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x05, 0x02, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x00002580, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x05, 0x02, 0x00, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00002580, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x00002580, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x05, 0x02, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "baud=0 parity=M data=6 stop=1.5 xon=off odsr=on octs=ON dtr=off rts=off idsr=OFF",
                TRUE, FALSE,
-               { 0x00000000, 0x00000000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x06, 0x03, 0x01, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x00000000, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x06, 0x03, 0x01, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x00000000, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x06, 0x03, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "BAUD=4000000000 parity=n data=7 stop=2 to=off",
                TRUE, FALSE,
-               { 0x00000000, 0xee6b2800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x07, 0x00, 0x02, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xee6b2800, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x07, 0x00, 0x02, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0xee6b2800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x07, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xee6b2800, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x07, 0x00, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }
        },
        {
                "Baud=115200 Parity=O Data=8 To=On",
                TRUE, FALSE,
-               { 0x00000000, 0x0001c200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x08, 0x01, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x0001c200, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x08, 0x01, 0x00, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x0001c200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x0001c200, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x08, 0x01, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000EA60 },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000EA60 }
        },
        {
                "PaRiTy=s           Data=7          DTR=on",
                TRUE, FALSE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x07, 0x04, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x07, 0x04, 0x00, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x07, 0x04, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "data=4",
                FALSE, FALSE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "data=9",
                FALSE, FALSE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "parity=no",
                FALSE, FALSE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "stop=0",
                FALSE, FALSE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "stop=1.501",
                FALSE, FALSE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "stop=3",
                FALSE, FALSE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "to=foobar",
                FALSE, FALSE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                " baud=9600",
                FALSE, FALSE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "baud= 9600",
                FALSE, FALSE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "baud=9600,data=8",
                FALSE, FALSE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "11,n,8,1",
                TRUE, TRUE,
-               { 0x00000000, 0x0000006e, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x08, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x0000006e, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x08, 0x00, 0x00, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x0000006e, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x0000006e, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "30 ,E, 5,1.5",
                TRUE, TRUE,
-               { 0x00000000, 0x0000012c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x05, 0x02, 0x01, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x0000012c, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x05, 0x02, 0x01, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x0000012c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x05, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x0000012c, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x05, 0x02, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "60, m, 6, 2 ",
                TRUE, TRUE,
-               { 0x00000000, 0x00000258, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x06, 0x03, 0x02, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x00000258, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x06, 0x03, 0x02, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000258, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x06, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x00000258, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x06, 0x03, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "12 , o , 7 , 1",
                TRUE, TRUE,
-               { 0x00000000, 0x000004b0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x07, 0x01, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x000004b0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x07, 0x01, 0x00, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x000004b0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x000004b0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x07, 0x01, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "24,s,8,1.5",
                TRUE, TRUE,
-               { 0x00000000, 0x00000960, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x08, 0x04, 0x01, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x00000960, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x08, 0x04, 0x01, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000960, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x08, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x00000960, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x08, 0x04, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "48,n,8,1,p",
                TRUE, TRUE,
-               { 0x00000000, 0x000012c0, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x08, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x000012c0, 1, 1, 1, 1, 2, 1, 1, 0, 0, 1, 1, 2, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x08, 0x00, 0x00, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x000012c0, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x000012c0, 1, 1, 1, 1, 2, 1, 1, 0, 0, 1, 1, 2, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "96,N,8,1 , x ",
                TRUE, TRUE,
-               { 0x00000000, 0x00002580, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x08, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x00002580, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x08, 0x00, 0x00, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00002580, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x00002580, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "19, e, 7, 1, x",
                TRUE, TRUE,
-               { 0x00000000, 0x00004b00, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x07, 0x02, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x00004b00, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x07, 0x02, 0x00, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00004b00, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x07, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x00004b00, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x07, 0x02, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "0,M,7,1,P",
                TRUE, TRUE,
-               { 0x00000000, 0x00000000, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x07, 0x03, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x00000000, 1, 1, 1, 1, 2, 1, 1, 0, 0, 1, 1, 2, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x07, 0x03, 0x00, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x00000000, 1, 1, 1, 1, 2, 1, 1, 0, 0, 1, 1, 2, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x07, 0x03, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "4000000000,O,7,1.5,X",
                TRUE, TRUE,
-               { 0x00000000, 0xee6b2800, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x07, 0x01, 0x01, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xee6b2800, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x07, 0x01, 0x01, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0xee6b2800, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x07, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xee6b2800, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x07, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "96,N,8,1 to=on",
                FALSE, TRUE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "96,NO,8,1",
                FALSE, TRUE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "96,N,4,1",
                FALSE, TRUE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "96,N,9,1",
                FALSE, TRUE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "96,N,8,0",
                FALSE, TRUE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "96,N,8,3",
                FALSE, TRUE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "96,N,8,1,K",
                FALSE, TRUE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "COM0:baud=115200",
                FALSE, FALSE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "COMx:baud=38400 data=8",
                TRUE, FALSE,
-               { 0x00000000, 0x00009600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x08, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x00009600, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x08, 0xff, 0x00, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00009600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x00009600, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x08, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "COMx  :to=on stop=1.5",
                TRUE, FALSE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x01, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0x01, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000EA60 },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000EA60 }
        },
        {
                "COMx:               baud=12345     data=7",
                TRUE, FALSE,
-               { 0x00000000, 0x00003039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x07, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x00003039, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x07, 0xff, 0x00, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00003039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x00003039, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x07, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "COMx : xon=on odsr=off",
                TRUE, FALSE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 0, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0x00, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 0, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "COM0:9600,N,8,1",
                FALSE, TRUE,
-               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00000000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0xffffffff, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "COMx:9600,N,8,1",
                TRUE, TRUE,
-               { 0x00000000, 0x00002580, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x08, 0x00, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x00002580, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x08, 0x00, 0x00, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00002580, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x00002580, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x08, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "COMx:  11,E,7,2",
                TRUE, TRUE,
-               { 0x00000000, 0x0000006e, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x07, 0x02, 0x02, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x0000006e, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x07, 0x02, 0x02, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x0000006e, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x07, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x0000006e, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x07, 0x02, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "COMx  :19,M,5,1",
                TRUE, TRUE,
-               { 0x00000000, 0x00004b00, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x05, 0x03, 0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x00004b00, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x05, 0x03, 0x00, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x00004b00, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x05, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x00004b00, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x05, 0x03, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
        {
                "COMx  :    57600,S,6,2,x",
                TRUE, TRUE,
-               { 0x00000000, 0x0000e100, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x06, 0x04, 0x02, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, 0x0000 },
-               { 0xffffffff, 0x0000e100, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x06, 0x04, 0x02, (char)0xff, (char)0xff, (char)0xff, (char)0xff, (char)0xff, 0xffff },
+               { 0x00000000, 0x0000e100, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0x00000, 0x0000, 0x0000, 0x0000, 0x06, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 },
+               { 0xffffffff, 0x0000e100, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0x1ffff, 0xffff, 0xffff, 0xffff, 0x06, 0x04, 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xffff },
                { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 },
                { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }
        },
@@ -397,7 +397,7 @@ static TEST test[] =
    output the contents of a DCB structure. */
 /*static print_dcb(DCB *pdcb)
 {
-       printf("0x%08x, 0x%08x, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, 0x%05x, 0x%04x, 0x%04x, 0x%04x, 0x%02x, 0x%02x, 0x%02x, (char)0x%02x, (char)0x%02x, (char)0x%02x, (char)0x%02x, (char)0x%02x, 0x%04x\n",
+       printf("0x%08x, 0x%08x, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, 0x%05x, 0x%04x, 0x%04x, 0x%04x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%04x\n",
                pdcb->DCBlength,
                pdcb->BaudRate,
                pdcb->fBinary,
index ace4744..3d8ae93 100755 (executable)
@@ -25,6 +25,7 @@
 
 static BOOL (WINAPI *pGetConsoleInputExeNameA)(DWORD, LPSTR);
 static DWORD (WINAPI *pGetConsoleProcessList)(LPDWORD, DWORD);
+static HANDLE (WINAPI *pOpenConsoleW)(LPCWSTR,DWORD,BOOL,DWORD);
 static BOOL (WINAPI *pSetConsoleInputExeNameA)(LPCSTR);
 
 /* DEFAULT_ATTRIB is used for all initial filling of the console.
@@ -65,6 +66,7 @@ static void init_function_pointers(void)
     hKernel32 = GetModuleHandleA("kernel32.dll");
     KERNEL32_GET_PROC(GetConsoleInputExeNameA);
     KERNEL32_GET_PROC(GetConsoleProcessList);
+    KERNEL32_GET_PROC(OpenConsoleW);
     KERNEL32_GET_PROC(SetConsoleInputExeNameA);
 
 #undef KERNEL32_GET_PROC
@@ -988,6 +990,99 @@ static void test_GetConsoleProcessList(void)
     HeapFree(GetProcessHeap(), 0, list);
 }
 
+static void test_OpenConsoleW(void)
+{
+    static const WCHAR coninW[] = {'C','O','N','I','N','$',0};
+    static const WCHAR conoutW[] = {'C','O','N','O','U','T','$',0};
+    static const WCHAR emptyW[] = {0};
+    static const WCHAR invalidW[] = {'I','N','V','A','L','I','D',0};
+
+    static const struct
+    {
+        LPCWSTR name;
+        DWORD access;
+        BOOL inherit;
+        DWORD creation;
+        DWORD gle;
+    } invalid_table[] = {
+        {NULL,     0,                            FALSE,      0,                 ERROR_INVALID_PARAMETER},
+        {NULL,     0xdeadbeef,                   0xdeadbeef, 0xdeadbeef,        ERROR_INVALID_PARAMETER},
+        {NULL,     0,                            FALSE,      OPEN_ALWAYS,       ERROR_INVALID_PARAMETER},
+        {NULL,     GENERIC_READ | GENERIC_WRITE, FALSE,      0,                 ERROR_INVALID_PARAMETER},
+        {NULL,     GENERIC_READ | GENERIC_WRITE, FALSE,      OPEN_ALWAYS,       ERROR_INVALID_PARAMETER},
+        {NULL,     GENERIC_READ | GENERIC_WRITE, FALSE,      OPEN_EXISTING,     ERROR_INVALID_PARAMETER},
+        {emptyW,   0,                            FALSE,      0,                 ERROR_INVALID_PARAMETER},
+        {emptyW,   0xdeadbeef,                   0xdeadbeef, 0xdeadbeef,        ERROR_INVALID_PARAMETER},
+        {emptyW,   0,                            FALSE,      OPEN_ALWAYS,       ERROR_INVALID_PARAMETER},
+        {emptyW,   GENERIC_READ | GENERIC_WRITE, FALSE,      0,                 ERROR_INVALID_PARAMETER},
+        {emptyW,   GENERIC_READ | GENERIC_WRITE, FALSE,      OPEN_ALWAYS,       ERROR_INVALID_PARAMETER},
+        {emptyW,   GENERIC_READ | GENERIC_WRITE, FALSE,      OPEN_EXISTING,     ERROR_INVALID_PARAMETER},
+        {invalidW, 0,                            FALSE,      0,                 ERROR_INVALID_PARAMETER},
+        {invalidW, 0xdeadbeef,                   0xdeadbeef, 0xdeadbeef,        ERROR_INVALID_PARAMETER},
+        {invalidW, 0,                            FALSE,      OPEN_ALWAYS,       ERROR_INVALID_PARAMETER},
+        {invalidW, GENERIC_READ | GENERIC_WRITE, FALSE,      0,                 ERROR_INVALID_PARAMETER},
+        {invalidW, GENERIC_READ | GENERIC_WRITE, FALSE,      OPEN_ALWAYS,       ERROR_INVALID_PARAMETER},
+        {invalidW, GENERIC_READ | GENERIC_WRITE, FALSE,      OPEN_EXISTING,     ERROR_INVALID_PARAMETER},
+        {coninW,   0,                            FALSE,      0,                 ERROR_SHARING_VIOLATION},
+        {coninW,   0xdeadbeef,                   0xdeadbeef, 0xdeadbeef,        ERROR_INVALID_PARAMETER},
+        {coninW,   0,                            FALSE,      OPEN_ALWAYS,       ERROR_INVALID_PARAMETER},
+        {coninW,   GENERIC_READ | GENERIC_WRITE, FALSE,      0,                 ERROR_SHARING_VIOLATION},
+        {coninW,   GENERIC_READ | GENERIC_WRITE, FALSE,      CREATE_NEW,        ERROR_SHARING_VIOLATION},
+        {coninW,   GENERIC_READ | GENERIC_WRITE, FALSE,      CREATE_ALWAYS,     ERROR_SHARING_VIOLATION},
+        {coninW,   GENERIC_READ | GENERIC_WRITE, FALSE,      OPEN_ALWAYS,       ERROR_INVALID_PARAMETER},
+        {coninW,   GENERIC_READ | GENERIC_WRITE, FALSE,      TRUNCATE_EXISTING, ERROR_INVALID_PARAMETER},
+        {conoutW,  0,                            FALSE,      0,                 ERROR_SHARING_VIOLATION},
+        {conoutW,  0xdeadbeef,                   0xdeadbeef, 0xdeadbeef,        ERROR_INVALID_PARAMETER},
+        {conoutW,  0,                            FALSE,      OPEN_ALWAYS,       ERROR_INVALID_PARAMETER},
+        {conoutW,  GENERIC_READ | GENERIC_WRITE, FALSE,      0,                 ERROR_SHARING_VIOLATION},
+        {conoutW,  GENERIC_READ | GENERIC_WRITE, FALSE,      CREATE_NEW,        ERROR_SHARING_VIOLATION},
+        {conoutW,  GENERIC_READ | GENERIC_WRITE, FALSE,      CREATE_ALWAYS,     ERROR_SHARING_VIOLATION},
+        {conoutW,  GENERIC_READ | GENERIC_WRITE, FALSE,      OPEN_ALWAYS,       ERROR_INVALID_PARAMETER},
+        {conoutW,  GENERIC_READ | GENERIC_WRITE, FALSE,      TRUNCATE_EXISTING, ERROR_INVALID_PARAMETER},
+    };
+
+    int index;
+    HANDLE ret;
+
+    if (!pOpenConsoleW)
+    {
+        win_skip("OpenConsoleW is not available\n");
+        return;
+    }
+
+    for (index = 0; index < sizeof(invalid_table)/sizeof(invalid_table[0]); index++)
+    {
+        SetLastError(0xdeadbeef);
+        ret = pOpenConsoleW(invalid_table[index].name, invalid_table[index].access,
+                            invalid_table[index].inherit, invalid_table[index].creation);
+        ok(ret == INVALID_HANDLE_VALUE,
+           "Expected OpenConsoleW to return INVALID_HANDLE_VALUE for index %d, got %p\n",
+           index, ret);
+        ok(GetLastError() == invalid_table[index].gle,
+           "Expected GetLastError() to return %u for index %d, got %u\n",
+           invalid_table[index].gle, index, GetLastError());
+    }
+
+    /* OpenConsoleW should not touch the last error on success. */
+    SetLastError(0xdeadbeef);
+    ret = pOpenConsoleW(coninW, GENERIC_READ | GENERIC_WRITE, FALSE, OPEN_EXISTING);
+    ok(ret != INVALID_HANDLE_VALUE,
+       "Expected OpenConsoleW to return a valid handle\n");
+    ok(GetLastError() == 0xdeadbeef,
+       "Expected the last error to be untouched, got %u\n", GetLastError());
+    if (ret != INVALID_HANDLE_VALUE)
+        CloseHandle(ret);
+
+    SetLastError(0xdeadbeef);
+    ret = pOpenConsoleW(conoutW, GENERIC_READ | GENERIC_WRITE, FALSE, OPEN_EXISTING);
+    ok(ret != INVALID_HANDLE_VALUE,
+       "Expected OpenConsoleW to return a valid handle\n");
+    ok(GetLastError() == 0xdeadbeef,
+       "Expected the last error to be untouched, got %u\n", GetLastError());
+    if (ret != INVALID_HANDLE_VALUE)
+        CloseHandle(ret);
+}
+
 START_TEST(console)
 {
     HANDLE hConIn, hConOut;
@@ -1038,4 +1133,5 @@ START_TEST(console)
         test_GetSetConsoleInputExeName();
 
     test_GetConsoleProcessList();
+    test_OpenConsoleW();
 }
index 98d0e12..ff091e9 100644 (file)
@@ -45,6 +45,8 @@ static char** myARGV;
 static BOOL (WINAPI *pCheckRemoteDebuggerPresent)(HANDLE,PBOOL);
 static BOOL (WINAPI *pDebugActiveProcessStop)(DWORD);
 static BOOL (WINAPI *pDebugSetProcessKillOnExit)(BOOL);
+static BOOL (WINAPI *pIsDebuggerPresent)(void);
+static struct _TEB * (WINAPI *pNtCurrentTeb)(void);
 
 static LONG child_failures;
 
@@ -499,6 +501,7 @@ static void doChild(int argc, char **argv)
     const char *blackbox_file;
     HANDLE parent;
     DWORD ppid;
+    BOOL debug;
     BOOL ret;
 
     blackbox_file = argv[4];
@@ -507,15 +510,46 @@ static void doChild(int argc, char **argv)
     parent = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, ppid);
     child_ok(!!parent, "OpenProcess failed, last error %#x.\n", GetLastError());
 
+    ret = pCheckRemoteDebuggerPresent(parent, &debug);
+    child_ok(ret, "CheckRemoteDebuggerPresent failed, last error %#x.\n", GetLastError());
+    child_ok(!debug, "Expected debug == 0, got %#x.\n", debug);
+
     ret = DebugActiveProcess(ppid);
     child_ok(ret, "DebugActiveProcess failed, last error %#x.\n", GetLastError());
 
+    ret = pCheckRemoteDebuggerPresent(parent, &debug);
+    child_ok(ret, "CheckRemoteDebuggerPresent failed, last error %#x.\n", GetLastError());
+    child_ok(debug, "Expected debug != 0, got %#x.\n", debug);
+
     ret = pDebugActiveProcessStop(ppid);
     child_ok(ret, "DebugActiveProcessStop failed, last error %#x.\n", GetLastError());
 
+    ret = pCheckRemoteDebuggerPresent(parent, &debug);
+    child_ok(ret, "CheckRemoteDebuggerPresent failed, last error %#x.\n", GetLastError());
+    child_ok(!debug, "Expected debug == 0, got %#x.\n", debug);
+
     ret = CloseHandle(parent);
     child_ok(ret, "CloseHandle failed, last error %#x.\n", GetLastError());
 
+    ret = pIsDebuggerPresent();
+    child_ok(ret, "Expected ret != 0, got %#x.\n", ret);
+    ret = pCheckRemoteDebuggerPresent(GetCurrentProcess(), &debug);
+    child_ok(ret, "CheckRemoteDebuggerPresent failed, last error %#x.\n", GetLastError());
+    child_ok(debug, "Expected debug != 0, got %#x.\n", debug);
+
+    if (pNtCurrentTeb)
+    {
+        pNtCurrentTeb()->ProcessEnvironmentBlock->BeingDebugged = FALSE;
+
+        ret = pIsDebuggerPresent();
+        child_ok(!ret, "Expected ret != 0, got %#x.\n", ret);
+        ret = pCheckRemoteDebuggerPresent(GetCurrentProcess(), &debug);
+        child_ok(ret, "CheckRemoteDebuggerPresent failed, last error %#x.\n", GetLastError());
+        child_ok(debug, "Expected debug != 0, got %#x.\n", debug);
+
+        pNtCurrentTeb()->ProcessEnvironmentBlock->BeingDebugged = TRUE;
+    }
+
     blackbox.failures = child_failures;
     save_blackbox(blackbox_file, &blackbox, sizeof(blackbox));
 }
@@ -527,17 +561,21 @@ static void test_debug_loop(int argc, char **argv)
     char blackbox_file[MAX_PATH];
     PROCESS_INFORMATION pi;
     STARTUPINFOA si;
+    BOOL debug;
     DWORD pid;
     char *cmd;
     BOOL ret;
 
-    if (!pDebugActiveProcessStop)
+    if (!pDebugActiveProcessStop || !pCheckRemoteDebuggerPresent)
     {
-        win_skip("DebugActiveProcessStop not available, skipping test.\n");
+        win_skip("DebugActiveProcessStop or CheckRemoteDebuggerPresent not available, skipping test.\n");
         return;
     }
 
     pid = GetCurrentProcessId();
+    ret = DebugActiveProcess(pid);
+    ok(!ret, "DebugActiveProcess() succeeded on own process.\n");
+
     get_file_name(blackbox_file);
     cmd = HeapAlloc(GetProcessHeap(), 0, strlen(argv[0]) + strlen(arguments) + strlen(blackbox_file) + 10);
     sprintf(cmd, "%s%s%08x %s", argv[0], arguments, pid, blackbox_file);
@@ -549,6 +587,10 @@ static void test_debug_loop(int argc, char **argv)
 
     HeapFree(GetProcessHeap(), 0, cmd);
 
+    ret = pCheckRemoteDebuggerPresent(pi.hProcess, &debug);
+    ok(ret, "CheckRemoteDebuggerPresent failed, last error %#x.\n", GetLastError());
+    ok(debug, "Expected debug != 0, got %#x.\n", debug);
+
     for (;;)
     {
         DEBUG_EVENT ev;
@@ -584,6 +626,9 @@ START_TEST(debugger)
     pCheckRemoteDebuggerPresent=(void*)GetProcAddress(hdll, "CheckRemoteDebuggerPresent");
     pDebugActiveProcessStop=(void*)GetProcAddress(hdll, "DebugActiveProcessStop");
     pDebugSetProcessKillOnExit=(void*)GetProcAddress(hdll, "DebugSetProcessKillOnExit");
+    pIsDebuggerPresent=(void*)GetProcAddress(hdll, "IsDebuggerPresent");
+    hdll=GetModuleHandle("ntdll.dll");
+    if (hdll) pNtCurrentTeb = (void*)GetProcAddress(hdll, "NtCurrentTeb");
 
     myARGC=winetest_get_mainargs(&myARGV);
     if (myARGC >= 3 && strcmp(myARGV[2], "crash") == 0)
index be68a08..36053b8 100644 (file)
  * Test helper macros
  */
 
+#define TEST_TYPE_SIZE(type, size)             C_ASSERT(sizeof(type) == size);
+
+#ifdef TYPE_ALIGNMENT
+# define TEST_TYPE_ALIGN(type, align)          C_ASSERT(TYPE_ALIGNMENT(type) == align);
+#else
+# define TEST_TYPE_ALIGN(type, align)
+#endif
+
+#ifdef _TYPE_ALIGNMENT
+# define TEST_TARGET_ALIGN(type, align)        C_ASSERT(_TYPE_ALIGNMENT(*(type)0) == align);
+# define TEST_FIELD_ALIGN(type, field, align)  C_ASSERT(_TYPE_ALIGNMENT(((type*)0)->field) == align);
+#else
+# define TEST_TARGET_ALIGN(type, align)
+# define TEST_FIELD_ALIGN(type, field, align)
+#endif
+
+#define TEST_FIELD_OFFSET(type, field, offset) C_ASSERT(FIELD_OFFSET(type, field) == offset);
+
+#define TEST_TARGET_SIZE(type, size)            TEST_TYPE_SIZE(*(type)0, size)
+#define TEST_FIELD_SIZE(type, field, size)      TEST_TYPE_SIZE((((type*)0)->field), size)
+#define TEST_TYPE_SIGNED(type)                  C_ASSERT((type) -1 < 0);
+#define TEST_TYPE_UNSIGNED(type)                C_ASSERT((type) -1 > 0);
+
+
 #ifdef _WIN64
 
-# define TEST_TYPE_SIZE(type, size)
-# define TEST_TYPE_ALIGN(type, align)
-# define TEST_TARGET_ALIGN(type, align)
-# define TEST_FIELD_ALIGN(type, field, align)
-# define TEST_FIELD_OFFSET(type, field, offset)
+static void test_pack_LPOSVERSIONINFOA(void)
+{
+    /* LPOSVERSIONINFOA */
+    TEST_TYPE_SIZE   (LPOSVERSIONINFOA, 8)
+    TEST_TYPE_ALIGN  (LPOSVERSIONINFOA, 8)
+    TEST_TARGET_SIZE (LPOSVERSIONINFOA, 148)
+    TEST_TARGET_ALIGN(LPOSVERSIONINFOA, 4)
+}
+
+static void test_pack_LPOSVERSIONINFOEXA(void)
+{
+    /* LPOSVERSIONINFOEXA */
+    TEST_TYPE_SIZE   (LPOSVERSIONINFOEXA, 8)
+    TEST_TYPE_ALIGN  (LPOSVERSIONINFOEXA, 8)
+    TEST_TARGET_SIZE (LPOSVERSIONINFOEXA, 156)
+    TEST_TARGET_ALIGN(LPOSVERSIONINFOEXA, 4)
+}
+
+static void test_pack_LPOSVERSIONINFOEXW(void)
+{
+    /* LPOSVERSIONINFOEXW */
+    TEST_TYPE_SIZE   (LPOSVERSIONINFOEXW, 8)
+    TEST_TYPE_ALIGN  (LPOSVERSIONINFOEXW, 8)
+    TEST_TARGET_SIZE (LPOSVERSIONINFOEXW, 284)
+    TEST_TARGET_ALIGN(LPOSVERSIONINFOEXW, 4)
+}
+
+static void test_pack_LPOSVERSIONINFOW(void)
+{
+    /* LPOSVERSIONINFOW */
+    TEST_TYPE_SIZE   (LPOSVERSIONINFOW, 8)
+    TEST_TYPE_ALIGN  (LPOSVERSIONINFOW, 8)
+    TEST_TARGET_SIZE (LPOSVERSIONINFOW, 276)
+    TEST_TARGET_ALIGN(LPOSVERSIONINFOW, 4)
+}
+
+static void test_pack_OSVERSIONINFOA(void)
+{
+    /* OSVERSIONINFOA */
+    TEST_TYPE_SIZE   (OSVERSIONINFOA, 148)
+    TEST_TYPE_ALIGN  (OSVERSIONINFOA, 4)
+    TEST_FIELD_SIZE  (OSVERSIONINFOA, dwOSVersionInfoSize, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOA, dwOSVersionInfoSize, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOA, dwOSVersionInfoSize, 0)
+    TEST_FIELD_SIZE  (OSVERSIONINFOA, dwMajorVersion, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOA, dwMajorVersion, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOA, dwMajorVersion, 4)
+    TEST_FIELD_SIZE  (OSVERSIONINFOA, dwMinorVersion, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOA, dwMinorVersion, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOA, dwMinorVersion, 8)
+    TEST_FIELD_SIZE  (OSVERSIONINFOA, dwBuildNumber, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOA, dwBuildNumber, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOA, dwBuildNumber, 12)
+    TEST_FIELD_SIZE  (OSVERSIONINFOA, dwPlatformId, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOA, dwPlatformId, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOA, dwPlatformId, 16)
+    TEST_FIELD_SIZE  (OSVERSIONINFOA, szCSDVersion, 128)
+    TEST_FIELD_ALIGN (OSVERSIONINFOA, szCSDVersion, 1)
+    TEST_FIELD_OFFSET(OSVERSIONINFOA, szCSDVersion, 20)
+}
+
+static void test_pack_OSVERSIONINFOEXA(void)
+{
+    /* OSVERSIONINFOEXA */
+    TEST_TYPE_SIZE   (OSVERSIONINFOEXA, 156)
+    TEST_TYPE_ALIGN  (OSVERSIONINFOEXA, 4)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXA, dwOSVersionInfoSize, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXA, dwOSVersionInfoSize, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXA, dwOSVersionInfoSize, 0)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXA, dwMajorVersion, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXA, dwMajorVersion, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXA, dwMajorVersion, 4)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXA, dwMinorVersion, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXA, dwMinorVersion, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXA, dwMinorVersion, 8)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXA, dwBuildNumber, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXA, dwBuildNumber, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXA, dwBuildNumber, 12)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXA, dwPlatformId, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXA, dwPlatformId, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXA, dwPlatformId, 16)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXA, szCSDVersion, 128)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXA, szCSDVersion, 1)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXA, szCSDVersion, 20)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXA, wServicePackMajor, 2)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXA, wServicePackMajor, 2)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXA, wServicePackMajor, 148)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXA, wServicePackMinor, 2)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXA, wServicePackMinor, 2)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXA, wServicePackMinor, 150)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXA, wSuiteMask, 2)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXA, wSuiteMask, 2)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXA, wSuiteMask, 152)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXA, wProductType, 1)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXA, wProductType, 1)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXA, wProductType, 154)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXA, wReserved, 1)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXA, wReserved, 1)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXA, wReserved, 155)
+}
+
+static void test_pack_OSVERSIONINFOEXW(void)
+{
+    /* OSVERSIONINFOEXW */
+    TEST_TYPE_SIZE   (OSVERSIONINFOEXW, 284)
+    TEST_TYPE_ALIGN  (OSVERSIONINFOEXW, 4)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXW, dwOSVersionInfoSize, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXW, dwOSVersionInfoSize, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXW, dwOSVersionInfoSize, 0)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXW, dwMajorVersion, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXW, dwMajorVersion, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXW, dwMajorVersion, 4)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXW, dwMinorVersion, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXW, dwMinorVersion, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXW, dwMinorVersion, 8)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXW, dwBuildNumber, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXW, dwBuildNumber, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXW, dwBuildNumber, 12)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXW, dwPlatformId, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXW, dwPlatformId, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXW, dwPlatformId, 16)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXW, szCSDVersion, 256)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXW, szCSDVersion, 2)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXW, szCSDVersion, 20)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXW, wServicePackMajor, 2)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXW, wServicePackMajor, 2)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXW, wServicePackMajor, 276)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXW, wServicePackMinor, 2)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXW, wServicePackMinor, 2)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXW, wServicePackMinor, 278)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXW, wSuiteMask, 2)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXW, wSuiteMask, 2)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXW, wSuiteMask, 280)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXW, wProductType, 1)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXW, wProductType, 1)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXW, wProductType, 282)
+    TEST_FIELD_SIZE  (OSVERSIONINFOEXW, wReserved, 1)
+    TEST_FIELD_ALIGN (OSVERSIONINFOEXW, wReserved, 1)
+    TEST_FIELD_OFFSET(OSVERSIONINFOEXW, wReserved, 283)
+}
+
+static void test_pack_OSVERSIONINFOW(void)
+{
+    /* OSVERSIONINFOW */
+    TEST_TYPE_SIZE   (OSVERSIONINFOW, 276)
+    TEST_TYPE_ALIGN  (OSVERSIONINFOW, 4)
+    TEST_FIELD_SIZE  (OSVERSIONINFOW, dwOSVersionInfoSize, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOW, dwOSVersionInfoSize, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOW, dwOSVersionInfoSize, 0)
+    TEST_FIELD_SIZE  (OSVERSIONINFOW, dwMajorVersion, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOW, dwMajorVersion, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOW, dwMajorVersion, 4)
+    TEST_FIELD_SIZE  (OSVERSIONINFOW, dwMinorVersion, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOW, dwMinorVersion, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOW, dwMinorVersion, 8)
+    TEST_FIELD_SIZE  (OSVERSIONINFOW, dwBuildNumber, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOW, dwBuildNumber, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOW, dwBuildNumber, 12)
+    TEST_FIELD_SIZE  (OSVERSIONINFOW, dwPlatformId, 4)
+    TEST_FIELD_ALIGN (OSVERSIONINFOW, dwPlatformId, 4)
+    TEST_FIELD_OFFSET(OSVERSIONINFOW, dwPlatformId, 16)
+    TEST_FIELD_SIZE  (OSVERSIONINFOW, szCSDVersion, 256)
+    TEST_FIELD_ALIGN (OSVERSIONINFOW, szCSDVersion, 2)
+    TEST_FIELD_OFFSET(OSVERSIONINFOW, szCSDVersion, 20)
+}
+
+static void test_pack_POSVERSIONINFOA(void)
+{
+    /* POSVERSIONINFOA */
+    TEST_TYPE_SIZE   (POSVERSIONINFOA, 8)
+    TEST_TYPE_ALIGN  (POSVERSIONINFOA, 8)
+    TEST_TARGET_SIZE (POSVERSIONINFOA, 148)
+    TEST_TARGET_ALIGN(POSVERSIONINFOA, 4)
+}
+
+static void test_pack_POSVERSIONINFOEXA(void)
+{
+    /* POSVERSIONINFOEXA */
+    TEST_TYPE_SIZE   (POSVERSIONINFOEXA, 8)
+    TEST_TYPE_ALIGN  (POSVERSIONINFOEXA, 8)
+    TEST_TARGET_SIZE (POSVERSIONINFOEXA, 156)
+    TEST_TARGET_ALIGN(POSVERSIONINFOEXA, 4)
+}
+
+static void test_pack_POSVERSIONINFOEXW(void)
+{
+    /* POSVERSIONINFOEXW */
+    TEST_TYPE_SIZE   (POSVERSIONINFOEXW, 8)
+    TEST_TYPE_ALIGN  (POSVERSIONINFOEXW, 8)
+    TEST_TARGET_SIZE (POSVERSIONINFOEXW, 284)
+    TEST_TARGET_ALIGN(POSVERSIONINFOEXW, 4)
+}
+
+static void test_pack_POSVERSIONINFOW(void)
+{
+    /* POSVERSIONINFOW */
+    TEST_TYPE_SIZE   (POSVERSIONINFOW, 8)
+    TEST_TYPE_ALIGN  (POSVERSIONINFOW, 8)
+    TEST_TARGET_SIZE (POSVERSIONINFOW, 276)
+    TEST_TARGET_ALIGN(POSVERSIONINFOW, 4)
+}
+
+static void test_pack_LPLONG(void)
+{
+    /* LPLONG */
+    TEST_TYPE_SIZE   (LPLONG, 8)
+    TEST_TYPE_ALIGN  (LPLONG, 8)
+}
+
+static void test_pack_LPVOID(void)
+{
+    /* LPVOID */
+    TEST_TYPE_SIZE   (LPVOID, 8)
+    TEST_TYPE_ALIGN  (LPVOID, 8)
+}
+
+static void test_pack_PHKEY(void)
+{
+    /* PHKEY */
+    TEST_TYPE_SIZE   (PHKEY, 8)
+    TEST_TYPE_ALIGN  (PHKEY, 8)
+}
+
+static void test_pack_ACTCTXA(void)
+{
+    /* ACTCTXA */
+    TEST_TYPE_SIZE   (ACTCTXA, 56)
+    TEST_TYPE_ALIGN  (ACTCTXA, 8)
+    TEST_FIELD_SIZE  (ACTCTXA, cbSize, 4)
+    TEST_FIELD_ALIGN (ACTCTXA, cbSize, 4)
+    TEST_FIELD_OFFSET(ACTCTXA, cbSize, 0)
+    TEST_FIELD_SIZE  (ACTCTXA, dwFlags, 4)
+    TEST_FIELD_ALIGN (ACTCTXA, dwFlags, 4)
+    TEST_FIELD_OFFSET(ACTCTXA, dwFlags, 4)
+    TEST_FIELD_SIZE  (ACTCTXA, lpSource, 8)
+    TEST_FIELD_ALIGN (ACTCTXA, lpSource, 8)
+    TEST_FIELD_OFFSET(ACTCTXA, lpSource, 8)
+    TEST_FIELD_SIZE  (ACTCTXA, wProcessorArchitecture, 2)
+    TEST_FIELD_ALIGN (ACTCTXA, wProcessorArchitecture, 2)
+    TEST_FIELD_OFFSET(ACTCTXA, wProcessorArchitecture, 16)
+    TEST_FIELD_SIZE  (ACTCTXA, wLangId, 2)
+    TEST_FIELD_ALIGN (ACTCTXA, wLangId, 2)
+    TEST_FIELD_OFFSET(ACTCTXA, wLangId, 18)
+    TEST_FIELD_SIZE  (ACTCTXA, lpAssemblyDirectory, 8)
+    TEST_FIELD_ALIGN (ACTCTXA, lpAssemblyDirectory, 8)
+    TEST_FIELD_OFFSET(ACTCTXA, lpAssemblyDirectory, 24)
+    TEST_FIELD_SIZE  (ACTCTXA, lpResourceName, 8)
+    TEST_FIELD_ALIGN (ACTCTXA, lpResourceName, 8)
+    TEST_FIELD_OFFSET(ACTCTXA, lpResourceName, 32)
+    TEST_FIELD_SIZE  (ACTCTXA, lpApplicationName, 8)
+    TEST_FIELD_ALIGN (ACTCTXA, lpApplicationName, 8)
+    TEST_FIELD_OFFSET(ACTCTXA, lpApplicationName, 40)
+    TEST_FIELD_SIZE  (ACTCTXA, hModule, 8)
+    TEST_FIELD_ALIGN (ACTCTXA, hModule, 8)
+    TEST_FIELD_OFFSET(ACTCTXA, hModule, 48)
+}
+
+static void test_pack_ACTCTXW(void)
+{
+    /* ACTCTXW */
+    TEST_TYPE_SIZE   (ACTCTXW, 56)
+    TEST_TYPE_ALIGN  (ACTCTXW, 8)
+    TEST_FIELD_SIZE  (ACTCTXW, cbSize, 4)
+    TEST_FIELD_ALIGN (ACTCTXW, cbSize, 4)
+    TEST_FIELD_OFFSET(ACTCTXW, cbSize, 0)
+    TEST_FIELD_SIZE  (ACTCTXW, dwFlags, 4)
+    TEST_FIELD_ALIGN (ACTCTXW, dwFlags, 4)
+    TEST_FIELD_OFFSET(ACTCTXW, dwFlags, 4)
+    TEST_FIELD_SIZE  (ACTCTXW, lpSource, 8)
+    TEST_FIELD_ALIGN (ACTCTXW, lpSource, 8)
+    TEST_FIELD_OFFSET(ACTCTXW, lpSource, 8)
+    TEST_FIELD_SIZE  (ACTCTXW, wProcessorArchitecture, 2)
+    TEST_FIELD_ALIGN (ACTCTXW, wProcessorArchitecture, 2)
+    TEST_FIELD_OFFSET(ACTCTXW, wProcessorArchitecture, 16)
+    TEST_FIELD_SIZE  (ACTCTXW, wLangId, 2)
+    TEST_FIELD_ALIGN (ACTCTXW, wLangId, 2)
+    TEST_FIELD_OFFSET(ACTCTXW, wLangId, 18)
+    TEST_FIELD_SIZE  (ACTCTXW, lpAssemblyDirectory, 8)
+    TEST_FIELD_ALIGN (ACTCTXW, lpAssemblyDirectory, 8)
+    TEST_FIELD_OFFSET(ACTCTXW, lpAssemblyDirectory, 24)
+    TEST_FIELD_SIZE  (ACTCTXW, lpResourceName, 8)
+    TEST_FIELD_ALIGN (ACTCTXW, lpResourceName, 8)
+    TEST_FIELD_OFFSET(ACTCTXW, lpResourceName, 32)
+    TEST_FIELD_SIZE  (ACTCTXW, lpApplicationName, 8)
+    TEST_FIELD_ALIGN (ACTCTXW, lpApplicationName, 8)
+    TEST_FIELD_OFFSET(ACTCTXW, lpApplicationName, 40)
+    TEST_FIELD_SIZE  (ACTCTXW, hModule, 8)
+    TEST_FIELD_ALIGN (ACTCTXW, hModule, 8)
+    TEST_FIELD_OFFSET(ACTCTXW, hModule, 48)
+}
+
+static void test_pack_ACTCTX_SECTION_KEYED_DATA(void)
+{
+    /* ACTCTX_SECTION_KEYED_DATA */
+    TEST_TYPE_SIZE   (ACTCTX_SECTION_KEYED_DATA, 112)
+    TEST_TYPE_ALIGN  (ACTCTX_SECTION_KEYED_DATA, 8)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA, cbSize, 4)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA, cbSize, 4)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, cbSize, 0)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA, ulDataFormatVersion, 4)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA, ulDataFormatVersion, 4)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, ulDataFormatVersion, 4)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA, lpData, 8)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA, lpData, 8)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, lpData, 8)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA, ulLength, 4)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA, ulLength, 4)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, ulLength, 16)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA, lpSectionGlobalData, 8)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA, lpSectionGlobalData, 8)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, lpSectionGlobalData, 24)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA, ulSectionGlobalDataLength, 4)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA, ulSectionGlobalDataLength, 4)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, ulSectionGlobalDataLength, 32)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA, lpSectionBase, 8)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA, lpSectionBase, 8)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, lpSectionBase, 40)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA, ulSectionTotalLength, 4)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA, ulSectionTotalLength, 4)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, ulSectionTotalLength, 48)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA, hActCtx, 8)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA, hActCtx, 8)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, hActCtx, 56)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA, ulAssemblyRosterIndex, 4)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA, ulAssemblyRosterIndex, 4)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, ulAssemblyRosterIndex, 64)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA, ulFlags, 4)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA, ulFlags, 4)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, ulFlags, 68)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA, AssemblyMetadata, 40)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA, AssemblyMetadata, 8)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, AssemblyMetadata, 72)
+}
+
+static void test_pack_ACTCTX_SECTION_KEYED_DATA_2600(void)
+{
+    /* ACTCTX_SECTION_KEYED_DATA_2600 */
+    TEST_TYPE_SIZE   (ACTCTX_SECTION_KEYED_DATA_2600, 72)
+    TEST_TYPE_ALIGN  (ACTCTX_SECTION_KEYED_DATA_2600, 8)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_2600, cbSize, 4)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_2600, cbSize, 4)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_2600, cbSize, 0)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_2600, ulDataFormatVersion, 4)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_2600, ulDataFormatVersion, 4)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_2600, ulDataFormatVersion, 4)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_2600, lpData, 8)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_2600, lpData, 8)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_2600, lpData, 8)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_2600, ulLength, 4)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_2600, ulLength, 4)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_2600, ulLength, 16)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_2600, lpSectionGlobalData, 8)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_2600, lpSectionGlobalData, 8)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_2600, lpSectionGlobalData, 24)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_2600, ulSectionGlobalDataLength, 4)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_2600, ulSectionGlobalDataLength, 4)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_2600, ulSectionGlobalDataLength, 32)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_2600, lpSectionBase, 8)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_2600, lpSectionBase, 8)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_2600, lpSectionBase, 40)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_2600, ulSectionTotalLength, 4)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_2600, ulSectionTotalLength, 4)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_2600, ulSectionTotalLength, 48)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_2600, hActCtx, 8)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_2600, hActCtx, 8)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_2600, hActCtx, 56)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_2600, ulAssemblyRosterIndex, 4)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_2600, ulAssemblyRosterIndex, 4)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_2600, ulAssemblyRosterIndex, 64)
+}
+
+static void test_pack_ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA(void)
+{
+    /* ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA */
+    TEST_TYPE_SIZE   (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 40)
+    TEST_TYPE_ALIGN  (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 8)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpInformation, 8)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpInformation, 8)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpInformation, 0)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpSectionBase, 8)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpSectionBase, 8)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpSectionBase, 8)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, ulSectionLength, 4)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, ulSectionLength, 4)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, ulSectionLength, 16)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpSectionGlobalDataBase, 8)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpSectionGlobalDataBase, 8)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpSectionGlobalDataBase, 24)
+    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, ulSectionGlobalDataLength, 4)
+    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, ulSectionGlobalDataLength, 4)
+    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, ulSectionGlobalDataLength, 32)
+}
+
+static void test_pack_ACTIVATION_CONTEXT_BASIC_INFORMATION(void)
+{
+    /* ACTIVATION_CONTEXT_BASIC_INFORMATION */
+    TEST_TYPE_SIZE   (ACTIVATION_CONTEXT_BASIC_INFORMATION, 16)
+    TEST_TYPE_ALIGN  (ACTIVATION_CONTEXT_BASIC_INFORMATION, 8)
+    TEST_FIELD_SIZE  (ACTIVATION_CONTEXT_BASIC_INFORMATION, hActCtx, 8)
+    TEST_FIELD_ALIGN (ACTIVATION_CONTEXT_BASIC_INFORMATION, hActCtx, 8)
+    TEST_FIELD_OFFSET(ACTIVATION_CONTEXT_BASIC_INFORMATION, hActCtx, 0)
+    TEST_FIELD_SIZE  (ACTIVATION_CONTEXT_BASIC_INFORMATION, dwFlags, 4)
+    TEST_FIELD_ALIGN (ACTIVATION_CONTEXT_BASIC_INFORMATION, dwFlags, 4)
+    TEST_FIELD_OFFSET(ACTIVATION_CONTEXT_BASIC_INFORMATION, dwFlags, 8)
+}
+
+static void test_pack_BY_HANDLE_FILE_INFORMATION(void)
+{
+    /* BY_HANDLE_FILE_INFORMATION */
+    TEST_TYPE_SIZE   (BY_HANDLE_FILE_INFORMATION, 52)
+    TEST_TYPE_ALIGN  (BY_HANDLE_FILE_INFORMATION, 4)
+    TEST_FIELD_SIZE  (BY_HANDLE_FILE_INFORMATION, dwFileAttributes, 4)
+    TEST_FIELD_ALIGN (BY_HANDLE_FILE_INFORMATION, dwFileAttributes, 4)
+    TEST_FIELD_OFFSET(BY_HANDLE_FILE_INFORMATION, dwFileAttributes, 0)
+    TEST_FIELD_SIZE  (BY_HANDLE_FILE_INFORMATION, ftCreationTime, 8)
+    TEST_FIELD_ALIGN (BY_HANDLE_FILE_INFORMATION, ftCreationTime, 4)
+    TEST_FIELD_OFFSET(BY_HANDLE_FILE_INFORMATION, ftCreationTime, 4)
+    TEST_FIELD_SIZE  (BY_HANDLE_FILE_INFORMATION, ftLastAccessTime, 8)
+    TEST_FIELD_ALIGN (BY_HANDLE_FILE_INFORMATION, ftLastAccessTime, 4)
+    TEST_FIELD_OFFSET(BY_HANDLE_FILE_INFORMATION, ftLastAccessTime, 12)
+    TEST_FIELD_SIZE  (BY_HANDLE_FILE_INFORMATION, ftLastWriteTime, 8)
+    TEST_FIELD_ALIGN (BY_HANDLE_FILE_INFORMATION, ftLastWriteTime, 4)
+    TEST_FIELD_OFFSET(BY_HANDLE_FILE_INFORMATION, ftLastWriteTime, 20)
+    TEST_FIELD_SIZE  (BY_HANDLE_FILE_INFORMATION, dwVolumeSerialNumber, 4)
+    TEST_FIELD_ALIGN (BY_HANDLE_FILE_INFORMATION, dwVolumeSerialNumber, 4)
+    TEST_FIELD_OFFSET(BY_HANDLE_FILE_INFORMATION, dwVolumeSerialNumber, 28)
+    TEST_FIELD_SIZE  (BY_HANDLE_FILE_INFORMATION, nFileSizeHigh, 4)
+    TEST_FIELD_ALIGN (BY_HANDLE_FILE_INFORMATION, nFileSizeHigh, 4)
+    TEST_FIELD_OFFSET(BY_HANDLE_FILE_INFORMATION, nFileSizeHigh, 32)
+    TEST_FIELD_SIZE  (BY_HANDLE_FILE_INFORMATION, nFileSizeLow, 4)
+    TEST_FIELD_ALIGN (BY_HANDLE_FILE_INFORMATION, nFileSizeLow, 4)
+    TEST_FIELD_OFFSET(BY_HANDLE_FILE_INFORMATION, nFileSizeLow, 36)
+    TEST_FIELD_SIZE  (BY_HANDLE_FILE_INFORMATION, nNumberOfLinks, 4)
+    TEST_FIELD_ALIGN (BY_HANDLE_FILE_INFORMATION, nNumberOfLinks, 4)
+    TEST_FIELD_OFFSET(BY_HANDLE_FILE_INFORMATION, nNumberOfLinks, 40)
+    TEST_FIELD_SIZE  (BY_HANDLE_FILE_INFORMATION, nFileIndexHigh, 4)
+    TEST_FIELD_ALIGN (BY_HANDLE_FILE_INFORMATION, nFileIndexHigh, 4)
+    TEST_FIELD_OFFSET(BY_HANDLE_FILE_INFORMATION, nFileIndexHigh, 44)
+    TEST_FIELD_SIZE  (BY_HANDLE_FILE_INFORMATION, nFileIndexLow, 4)
+    TEST_FIELD_ALIGN (BY_HANDLE_FILE_INFORMATION, nFileIndexLow, 4)
+    TEST_FIELD_OFFSET(BY_HANDLE_FILE_INFORMATION, nFileIndexLow, 48)
+}
+
+static void test_pack_COMMCONFIG(void)
+{
+    /* COMMCONFIG */
+    TEST_TYPE_SIZE   (COMMCONFIG, 52)
+    TEST_TYPE_ALIGN  (COMMCONFIG, 4)
+    TEST_FIELD_SIZE  (COMMCONFIG, dwSize, 4)
+    TEST_FIELD_ALIGN (COMMCONFIG, dwSize, 4)
+    TEST_FIELD_OFFSET(COMMCONFIG, dwSize, 0)
+    TEST_FIELD_SIZE  (COMMCONFIG, wVersion, 2)
+    TEST_FIELD_ALIGN (COMMCONFIG, wVersion, 2)
+    TEST_FIELD_OFFSET(COMMCONFIG, wVersion, 4)
+    TEST_FIELD_SIZE  (COMMCONFIG, wReserved, 2)
+    TEST_FIELD_ALIGN (COMMCONFIG, wReserved, 2)
+    TEST_FIELD_OFFSET(COMMCONFIG, wReserved, 6)
+    TEST_FIELD_SIZE  (COMMCONFIG, dcb, 28)
+    TEST_FIELD_ALIGN (COMMCONFIG, dcb, 4)
+    TEST_FIELD_OFFSET(COMMCONFIG, dcb, 8)
+    TEST_FIELD_SIZE  (COMMCONFIG, dwProviderSubType, 4)
+    TEST_FIELD_ALIGN (COMMCONFIG, dwProviderSubType, 4)
+    TEST_FIELD_OFFSET(COMMCONFIG, dwProviderSubType, 36)
+    TEST_FIELD_SIZE  (COMMCONFIG, dwProviderOffset, 4)
+    TEST_FIELD_ALIGN (COMMCONFIG, dwProviderOffset, 4)
+    TEST_FIELD_OFFSET(COMMCONFIG, dwProviderOffset, 40)
+    TEST_FIELD_SIZE  (COMMCONFIG, dwProviderSize, 4)
+    TEST_FIELD_ALIGN (COMMCONFIG, dwProviderSize, 4)
+    TEST_FIELD_OFFSET(COMMCONFIG, dwProviderSize, 44)
+    TEST_FIELD_SIZE  (COMMCONFIG, wcProviderData, 4)
+    TEST_FIELD_ALIGN (COMMCONFIG, wcProviderData, 4)
+    TEST_FIELD_OFFSET(COMMCONFIG, wcProviderData, 48)
+}
+
+static void test_pack_COMMPROP(void)
+{
+    /* COMMPROP */
+    TEST_TYPE_SIZE   (COMMPROP, 64)
+    TEST_TYPE_ALIGN  (COMMPROP, 4)
+    TEST_FIELD_SIZE  (COMMPROP, wPacketLength, 2)
+    TEST_FIELD_ALIGN (COMMPROP, wPacketLength, 2)
+    TEST_FIELD_OFFSET(COMMPROP, wPacketLength, 0)
+    TEST_FIELD_SIZE  (COMMPROP, wPacketVersion, 2)
+    TEST_FIELD_ALIGN (COMMPROP, wPacketVersion, 2)
+    TEST_FIELD_OFFSET(COMMPROP, wPacketVersion, 2)
+    TEST_FIELD_SIZE  (COMMPROP, dwServiceMask, 4)
+    TEST_FIELD_ALIGN (COMMPROP, dwServiceMask, 4)
+    TEST_FIELD_OFFSET(COMMPROP, dwServiceMask, 4)
+    TEST_FIELD_SIZE  (COMMPROP, dwReserved1, 4)
+    TEST_FIELD_ALIGN (COMMPROP, dwReserved1, 4)
+    TEST_FIELD_OFFSET(COMMPROP, dwReserved1, 8)
+    TEST_FIELD_SIZE  (COMMPROP, dwMaxTxQueue, 4)
+    TEST_FIELD_ALIGN (COMMPROP, dwMaxTxQueue, 4)
+    TEST_FIELD_OFFSET(COMMPROP, dwMaxTxQueue, 12)
+    TEST_FIELD_SIZE  (COMMPROP, dwMaxRxQueue, 4)
+    TEST_FIELD_ALIGN (COMMPROP, dwMaxRxQueue, 4)
+    TEST_FIELD_OFFSET(COMMPROP, dwMaxRxQueue, 16)
+    TEST_FIELD_SIZE  (COMMPROP, dwMaxBaud, 4)
+    TEST_FIELD_ALIGN (COMMPROP, dwMaxBaud, 4)
+    TEST_FIELD_OFFSET(COMMPROP, dwMaxBaud, 20)
+    TEST_FIELD_SIZE  (COMMPROP, dwProvSubType, 4)
+    TEST_FIELD_ALIGN (COMMPROP, dwProvSubType, 4)
+    TEST_FIELD_OFFSET(COMMPROP, dwProvSubType, 24)
+    TEST_FIELD_SIZE  (COMMPROP, dwProvCapabilities, 4)
+    TEST_FIELD_ALIGN (COMMPROP, dwProvCapabilities, 4)
+    TEST_FIELD_OFFSET(COMMPROP, dwProvCapabilities, 28)
+    TEST_FIELD_SIZE  (COMMPROP, dwSettableParams, 4)
+    TEST_FIELD_ALIGN (COMMPROP, dwSettableParams, 4)
+    TEST_FIELD_OFFSET(COMMPROP, dwSettableParams, 32)
+    TEST_FIELD_SIZE  (COMMPROP, dwSettableBaud, 4)
+    TEST_FIELD_ALIGN (COMMPROP, dwSettableBaud, 4)
+    TEST_FIELD_OFFSET(COMMPROP, dwSettableBaud, 36)
+    TEST_FIELD_SIZE  (COMMPROP, wSettableData, 2)
+    TEST_FIELD_ALIGN (COMMPROP, wSettableData, 2)
+    TEST_FIELD_OFFSET(COMMPROP, wSettableData, 40)
+    TEST_FIELD_SIZE  (COMMPROP, wSettableStopParity, 2)
+    TEST_FIELD_ALIGN (COMMPROP, wSettableStopParity, 2)
+    TEST_FIELD_OFFSET(COMMPROP, wSettableStopParity, 42)
+    TEST_FIELD_SIZE  (COMMPROP, dwCurrentTxQueue, 4)
+    TEST_FIELD_ALIGN (COMMPROP, dwCurrentTxQueue, 4)
+    TEST_FIELD_OFFSET(COMMPROP, dwCurrentTxQueue, 44)
+    TEST_FIELD_SIZE  (COMMPROP, dwCurrentRxQueue, 4)
+    TEST_FIELD_ALIGN (COMMPROP, dwCurrentRxQueue, 4)
+    TEST_FIELD_OFFSET(COMMPROP, dwCurrentRxQueue, 48)
+    TEST_FIELD_SIZE  (COMMPROP, dwProvSpec1, 4)
+    TEST_FIELD_ALIGN (COMMPROP, dwProvSpec1, 4)
+    TEST_FIELD_OFFSET(COMMPROP, dwProvSpec1, 52)
+    TEST_FIELD_SIZE  (COMMPROP, dwProvSpec2, 4)
+    TEST_FIELD_ALIGN (COMMPROP, dwProvSpec2, 4)
+    TEST_FIELD_OFFSET(COMMPROP, dwProvSpec2, 56)
+    TEST_FIELD_SIZE  (COMMPROP, wcProvChar, 2)
+    TEST_FIELD_ALIGN (COMMPROP, wcProvChar, 2)
+    TEST_FIELD_OFFSET(COMMPROP, wcProvChar, 60)
+}
+
+static void test_pack_COMMTIMEOUTS(void)
+{
+    /* COMMTIMEOUTS */
+    TEST_TYPE_SIZE   (COMMTIMEOUTS, 20)
+    TEST_TYPE_ALIGN  (COMMTIMEOUTS, 4)
+    TEST_FIELD_SIZE  (COMMTIMEOUTS, ReadIntervalTimeout, 4)
+    TEST_FIELD_ALIGN (COMMTIMEOUTS, ReadIntervalTimeout, 4)
+    TEST_FIELD_OFFSET(COMMTIMEOUTS, ReadIntervalTimeout, 0)
+    TEST_FIELD_SIZE  (COMMTIMEOUTS, ReadTotalTimeoutMultiplier, 4)
+    TEST_FIELD_ALIGN (COMMTIMEOUTS, ReadTotalTimeoutMultiplier, 4)
+    TEST_FIELD_OFFSET(COMMTIMEOUTS, ReadTotalTimeoutMultiplier, 4)
+    TEST_FIELD_SIZE  (COMMTIMEOUTS, ReadTotalTimeoutConstant, 4)
+    TEST_FIELD_ALIGN (COMMTIMEOUTS, ReadTotalTimeoutConstant, 4)
+    TEST_FIELD_OFFSET(COMMTIMEOUTS, ReadTotalTimeoutConstant, 8)
+    TEST_FIELD_SIZE  (COMMTIMEOUTS, WriteTotalTimeoutMultiplier, 4)
+    TEST_FIELD_ALIGN (COMMTIMEOUTS, WriteTotalTimeoutMultiplier, 4)
+    TEST_FIELD_OFFSET(COMMTIMEOUTS, WriteTotalTimeoutMultiplier, 12)
+    TEST_FIELD_SIZE  (COMMTIMEOUTS, WriteTotalTimeoutConstant, 4)
+    TEST_FIELD_ALIGN (COMMTIMEOUTS, WriteTotalTimeoutConstant, 4)
+    TEST_FIELD_OFFSET(COMMTIMEOUTS, WriteTotalTimeoutConstant, 16)
+}
+
+static void test_pack_COMSTAT(void)
+{
+    /* COMSTAT */
+    TEST_TYPE_SIZE   (COMSTAT, 12)
+    TEST_TYPE_ALIGN  (COMSTAT, 4)
+    TEST_FIELD_SIZE  (COMSTAT, cbInQue, 4)
+    TEST_FIELD_ALIGN (COMSTAT, cbInQue, 4)
+    TEST_FIELD_OFFSET(COMSTAT, cbInQue, 4)
+    TEST_FIELD_SIZE  (COMSTAT, cbOutQue, 4)
+    TEST_FIELD_ALIGN (COMSTAT, cbOutQue, 4)
+    TEST_FIELD_OFFSET(COMSTAT, cbOutQue, 8)
+}
+
+static void test_pack_CREATE_PROCESS_DEBUG_INFO(void)
+{
+    /* CREATE_PROCESS_DEBUG_INFO */
+    TEST_TYPE_SIZE   (CREATE_PROCESS_DEBUG_INFO, 72)
+    TEST_TYPE_ALIGN  (CREATE_PROCESS_DEBUG_INFO, 8)
+    TEST_FIELD_SIZE  (CREATE_PROCESS_DEBUG_INFO, hFile, 8)
+    TEST_FIELD_ALIGN (CREATE_PROCESS_DEBUG_INFO, hFile, 8)
+    TEST_FIELD_OFFSET(CREATE_PROCESS_DEBUG_INFO, hFile, 0)
+    TEST_FIELD_SIZE  (CREATE_PROCESS_DEBUG_INFO, hProcess, 8)
+    TEST_FIELD_ALIGN (CREATE_PROCESS_DEBUG_INFO, hProcess, 8)
+    TEST_FIELD_OFFSET(CREATE_PROCESS_DEBUG_INFO, hProcess, 8)
+    TEST_FIELD_SIZE  (CREATE_PROCESS_DEBUG_INFO, hThread, 8)
+    TEST_FIELD_ALIGN (CREATE_PROCESS_DEBUG_INFO, hThread, 8)
+    TEST_FIELD_OFFSET(CREATE_PROCESS_DEBUG_INFO, hThread, 16)
+    TEST_FIELD_SIZE  (CREATE_PROCESS_DEBUG_INFO, lpBaseOfImage, 8)
+    TEST_FIELD_ALIGN (CREATE_PROCESS_DEBUG_INFO, lpBaseOfImage, 8)
+    TEST_FIELD_OFFSET(CREATE_PROCESS_DEBUG_INFO, lpBaseOfImage, 24)
+    TEST_FIELD_SIZE  (CREATE_PROCESS_DEBUG_INFO, dwDebugInfoFileOffset, 4)
+    TEST_FIELD_ALIGN (CREATE_PROCESS_DEBUG_INFO, dwDebugInfoFileOffset, 4)
+    TEST_FIELD_OFFSET(CREATE_PROCESS_DEBUG_INFO, dwDebugInfoFileOffset, 32)
+    TEST_FIELD_SIZE  (CREATE_PROCESS_DEBUG_INFO, nDebugInfoSize, 4)
+    TEST_FIELD_ALIGN (CREATE_PROCESS_DEBUG_INFO, nDebugInfoSize, 4)
+    TEST_FIELD_OFFSET(CREATE_PROCESS_DEBUG_INFO, nDebugInfoSize, 36)
+    TEST_FIELD_SIZE  (CREATE_PROCESS_DEBUG_INFO, lpThreadLocalBase, 8)
+    TEST_FIELD_ALIGN (CREATE_PROCESS_DEBUG_INFO, lpThreadLocalBase, 8)
+    TEST_FIELD_OFFSET(CREATE_PROCESS_DEBUG_INFO, lpThreadLocalBase, 40)
+    TEST_FIELD_SIZE  (CREATE_PROCESS_DEBUG_INFO, lpStartAddress, 8)
+    TEST_FIELD_ALIGN (CREATE_PROCESS_DEBUG_INFO, lpStartAddress, 8)
+    TEST_FIELD_OFFSET(CREATE_PROCESS_DEBUG_INFO, lpStartAddress, 48)
+    TEST_FIELD_SIZE  (CREATE_PROCESS_DEBUG_INFO, lpImageName, 8)
+    TEST_FIELD_ALIGN (CREATE_PROCESS_DEBUG_INFO, lpImageName, 8)
+    TEST_FIELD_OFFSET(CREATE_PROCESS_DEBUG_INFO, lpImageName, 56)
+    TEST_FIELD_SIZE  (CREATE_PROCESS_DEBUG_INFO, fUnicode, 2)
+    TEST_FIELD_ALIGN (CREATE_PROCESS_DEBUG_INFO, fUnicode, 2)
+    TEST_FIELD_OFFSET(CREATE_PROCESS_DEBUG_INFO, fUnicode, 64)
+}
+
+static void test_pack_CREATE_THREAD_DEBUG_INFO(void)
+{
+    /* CREATE_THREAD_DEBUG_INFO */
+    TEST_TYPE_SIZE   (CREATE_THREAD_DEBUG_INFO, 24)
+    TEST_TYPE_ALIGN  (CREATE_THREAD_DEBUG_INFO, 8)
+    TEST_FIELD_SIZE  (CREATE_THREAD_DEBUG_INFO, hThread, 8)
+    TEST_FIELD_ALIGN (CREATE_THREAD_DEBUG_INFO, hThread, 8)
+    TEST_FIELD_OFFSET(CREATE_THREAD_DEBUG_INFO, hThread, 0)
+    TEST_FIELD_SIZE  (CREATE_THREAD_DEBUG_INFO, lpThreadLocalBase, 8)
+    TEST_FIELD_ALIGN (CREATE_THREAD_DEBUG_INFO, lpThreadLocalBase, 8)
+    TEST_FIELD_OFFSET(CREATE_THREAD_DEBUG_INFO, lpThreadLocalBase, 8)
+    TEST_FIELD_SIZE  (CREATE_THREAD_DEBUG_INFO, lpStartAddress, 8)
+    TEST_FIELD_ALIGN (CREATE_THREAD_DEBUG_INFO, lpStartAddress, 8)
+    TEST_FIELD_OFFSET(CREATE_THREAD_DEBUG_INFO, lpStartAddress, 16)
+}
+
+static void test_pack_CRITICAL_SECTION(void)
+{
+    /* CRITICAL_SECTION */
+    TEST_TYPE_SIZE   (CRITICAL_SECTION, 40)
+    TEST_TYPE_ALIGN  (CRITICAL_SECTION, 8)
+}
+
+static void test_pack_CRITICAL_SECTION_DEBUG(void)
+{
+    /* CRITICAL_SECTION_DEBUG */
+}
+
+static void test_pack_DCB(void)
+{
+    /* DCB */
+    TEST_TYPE_SIZE   (DCB, 28)
+    TEST_TYPE_ALIGN  (DCB, 4)
+    TEST_FIELD_SIZE  (DCB, DCBlength, 4)
+    TEST_FIELD_ALIGN (DCB, DCBlength, 4)
+    TEST_FIELD_OFFSET(DCB, DCBlength, 0)
+    TEST_FIELD_SIZE  (DCB, BaudRate, 4)
+    TEST_FIELD_ALIGN (DCB, BaudRate, 4)
+    TEST_FIELD_OFFSET(DCB, BaudRate, 4)
+    TEST_FIELD_SIZE  (DCB, wReserved, 2)
+    TEST_FIELD_ALIGN (DCB, wReserved, 2)
+    TEST_FIELD_OFFSET(DCB, wReserved, 12)
+    TEST_FIELD_SIZE  (DCB, XonLim, 2)
+    TEST_FIELD_ALIGN (DCB, XonLim, 2)
+    TEST_FIELD_OFFSET(DCB, XonLim, 14)
+    TEST_FIELD_SIZE  (DCB, XoffLim, 2)
+    TEST_FIELD_ALIGN (DCB, XoffLim, 2)
+    TEST_FIELD_OFFSET(DCB, XoffLim, 16)
+    TEST_FIELD_SIZE  (DCB, ByteSize, 1)
+    TEST_FIELD_ALIGN (DCB, ByteSize, 1)
+    TEST_FIELD_OFFSET(DCB, ByteSize, 18)
+    TEST_FIELD_SIZE  (DCB, Parity, 1)
+    TEST_FIELD_ALIGN (DCB, Parity, 1)
+    TEST_FIELD_OFFSET(DCB, Parity, 19)
+    TEST_FIELD_SIZE  (DCB, StopBits, 1)
+    TEST_FIELD_ALIGN (DCB, StopBits, 1)
+    TEST_FIELD_OFFSET(DCB, StopBits, 20)
+    TEST_FIELD_SIZE  (DCB, XonChar, 1)
+    TEST_FIELD_ALIGN (DCB, XonChar, 1)
+    TEST_FIELD_OFFSET(DCB, XonChar, 21)
+    TEST_FIELD_SIZE  (DCB, XoffChar, 1)
+    TEST_FIELD_ALIGN (DCB, XoffChar, 1)
+    TEST_FIELD_OFFSET(DCB, XoffChar, 22)
+    TEST_FIELD_SIZE  (DCB, ErrorChar, 1)
+    TEST_FIELD_ALIGN (DCB, ErrorChar, 1)
+    TEST_FIELD_OFFSET(DCB, ErrorChar, 23)
+    TEST_FIELD_SIZE  (DCB, EofChar, 1)
+    TEST_FIELD_ALIGN (DCB, EofChar, 1)
+    TEST_FIELD_OFFSET(DCB, EofChar, 24)
+    TEST_FIELD_SIZE  (DCB, EvtChar, 1)
+    TEST_FIELD_ALIGN (DCB, EvtChar, 1)
+    TEST_FIELD_OFFSET(DCB, EvtChar, 25)
+    TEST_FIELD_SIZE  (DCB, wReserved1, 2)
+    TEST_FIELD_ALIGN (DCB, wReserved1, 2)
+    TEST_FIELD_OFFSET(DCB, wReserved1, 26)
+}
+
+static void test_pack_DEBUG_EVENT(void)
+{
+    /* DEBUG_EVENT */
+    TEST_FIELD_SIZE  (DEBUG_EVENT, dwDebugEventCode, 4)
+    TEST_FIELD_ALIGN (DEBUG_EVENT, dwDebugEventCode, 4)
+    TEST_FIELD_OFFSET(DEBUG_EVENT, dwDebugEventCode, 0)
+    TEST_FIELD_SIZE  (DEBUG_EVENT, dwProcessId, 4)
+    TEST_FIELD_ALIGN (DEBUG_EVENT, dwProcessId, 4)
+    TEST_FIELD_OFFSET(DEBUG_EVENT, dwProcessId, 4)
+    TEST_FIELD_SIZE  (DEBUG_EVENT, dwThreadId, 4)
+    TEST_FIELD_ALIGN (DEBUG_EVENT, dwThreadId, 4)
+    TEST_FIELD_OFFSET(DEBUG_EVENT, dwThreadId, 8)
+}
+
+static void test_pack_ENUMRESLANGPROCA(void)
+{
+    /* ENUMRESLANGPROCA */
+    TEST_TYPE_SIZE   (ENUMRESLANGPROCA, 8)
+    TEST_TYPE_ALIGN  (ENUMRESLANGPROCA, 8)
+}
+
+static void test_pack_ENUMRESLANGPROCW(void)
+{
+    /* ENUMRESLANGPROCW */
+    TEST_TYPE_SIZE   (ENUMRESLANGPROCW, 8)
+    TEST_TYPE_ALIGN  (ENUMRESLANGPROCW, 8)
+}
+
+static void test_pack_ENUMRESNAMEPROCA(void)
+{
+    /* ENUMRESNAMEPROCA */
+    TEST_TYPE_SIZE   (ENUMRESNAMEPROCA, 8)
+    TEST_TYPE_ALIGN  (ENUMRESNAMEPROCA, 8)
+}
+
+static void test_pack_ENUMRESNAMEPROCW(void)
+{
+    /* ENUMRESNAMEPROCW */
+    TEST_TYPE_SIZE   (ENUMRESNAMEPROCW, 8)
+    TEST_TYPE_ALIGN  (ENUMRESNAMEPROCW, 8)
+}
+
+static void test_pack_ENUMRESTYPEPROCA(void)
+{
+    /* ENUMRESTYPEPROCA */
+    TEST_TYPE_SIZE   (ENUMRESTYPEPROCA, 8)
+    TEST_TYPE_ALIGN  (ENUMRESTYPEPROCA, 8)
+}
+
+static void test_pack_ENUMRESTYPEPROCW(void)
+{
+    /* ENUMRESTYPEPROCW */
+    TEST_TYPE_SIZE   (ENUMRESTYPEPROCW, 8)
+    TEST_TYPE_ALIGN  (ENUMRESTYPEPROCW, 8)
+}
+
+static void test_pack_EXCEPTION_DEBUG_INFO(void)
+{
+    /* EXCEPTION_DEBUG_INFO */
+    TEST_TYPE_SIZE   (EXCEPTION_DEBUG_INFO, 160)
+    TEST_TYPE_ALIGN  (EXCEPTION_DEBUG_INFO, 8)
+    TEST_FIELD_SIZE  (EXCEPTION_DEBUG_INFO, ExceptionRecord, 152)
+    TEST_FIELD_ALIGN (EXCEPTION_DEBUG_INFO, ExceptionRecord, 8)
+    TEST_FIELD_OFFSET(EXCEPTION_DEBUG_INFO, ExceptionRecord, 0)
+    TEST_FIELD_SIZE  (EXCEPTION_DEBUG_INFO, dwFirstChance, 4)
+    TEST_FIELD_ALIGN (EXCEPTION_DEBUG_INFO, dwFirstChance, 4)
+    TEST_FIELD_OFFSET(EXCEPTION_DEBUG_INFO, dwFirstChance, 152)
+}
+
+static void test_pack_EXIT_PROCESS_DEBUG_INFO(void)
+{
+    /* EXIT_PROCESS_DEBUG_INFO */
+    TEST_TYPE_SIZE   (EXIT_PROCESS_DEBUG_INFO, 4)
+    TEST_TYPE_ALIGN  (EXIT_PROCESS_DEBUG_INFO, 4)
+    TEST_FIELD_SIZE  (EXIT_PROCESS_DEBUG_INFO, dwExitCode, 4)
+    TEST_FIELD_ALIGN (EXIT_PROCESS_DEBUG_INFO, dwExitCode, 4)
+    TEST_FIELD_OFFSET(EXIT_PROCESS_DEBUG_INFO, dwExitCode, 0)
+}
+
+static void test_pack_EXIT_THREAD_DEBUG_INFO(void)
+{
+    /* EXIT_THREAD_DEBUG_INFO */
+    TEST_TYPE_SIZE   (EXIT_THREAD_DEBUG_INFO, 4)
+    TEST_TYPE_ALIGN  (EXIT_THREAD_DEBUG_INFO, 4)
+    TEST_FIELD_SIZE  (EXIT_THREAD_DEBUG_INFO, dwExitCode, 4)
+    TEST_FIELD_ALIGN (EXIT_THREAD_DEBUG_INFO, dwExitCode, 4)
+    TEST_FIELD_OFFSET(EXIT_THREAD_DEBUG_INFO, dwExitCode, 0)
+}
+
+static void test_pack_HW_PROFILE_INFOA(void)
+{
+    /* HW_PROFILE_INFOA */
+    TEST_TYPE_SIZE   (HW_PROFILE_INFOA, 124)
+    TEST_TYPE_ALIGN  (HW_PROFILE_INFOA, 4)
+    TEST_FIELD_SIZE  (HW_PROFILE_INFOA, dwDockInfo, 4)
+    TEST_FIELD_ALIGN (HW_PROFILE_INFOA, dwDockInfo, 4)
+    TEST_FIELD_OFFSET(HW_PROFILE_INFOA, dwDockInfo, 0)
+    TEST_FIELD_SIZE  (HW_PROFILE_INFOA, szHwProfileGuid, 39)
+    TEST_FIELD_ALIGN (HW_PROFILE_INFOA, szHwProfileGuid, 1)
+    TEST_FIELD_OFFSET(HW_PROFILE_INFOA, szHwProfileGuid, 4)
+    TEST_FIELD_SIZE  (HW_PROFILE_INFOA, szHwProfileName, 80)
+    TEST_FIELD_ALIGN (HW_PROFILE_INFOA, szHwProfileName, 1)
+    TEST_FIELD_OFFSET(HW_PROFILE_INFOA, szHwProfileName, 43)
+}
+
+static void test_pack_HW_PROFILE_INFOW(void)
+{
+    /* HW_PROFILE_INFOW */
+    TEST_TYPE_SIZE   (HW_PROFILE_INFOW, 244)
+    TEST_TYPE_ALIGN  (HW_PROFILE_INFOW, 4)
+    TEST_FIELD_SIZE  (HW_PROFILE_INFOW, dwDockInfo, 4)
+    TEST_FIELD_ALIGN (HW_PROFILE_INFOW, dwDockInfo, 4)
+    TEST_FIELD_OFFSET(HW_PROFILE_INFOW, dwDockInfo, 0)
+    TEST_FIELD_SIZE  (HW_PROFILE_INFOW, szHwProfileGuid, 78)
+    TEST_FIELD_ALIGN (HW_PROFILE_INFOW, szHwProfileGuid, 2)
+    TEST_FIELD_OFFSET(HW_PROFILE_INFOW, szHwProfileGuid, 4)
+    TEST_FIELD_SIZE  (HW_PROFILE_INFOW, szHwProfileName, 160)
+    TEST_FIELD_ALIGN (HW_PROFILE_INFOW, szHwProfileName, 2)
+    TEST_FIELD_OFFSET(HW_PROFILE_INFOW, szHwProfileName, 82)
+}
+
+static void test_pack_LOAD_DLL_DEBUG_INFO(void)
+{
+    /* LOAD_DLL_DEBUG_INFO */
+    TEST_TYPE_SIZE   (LOAD_DLL_DEBUG_INFO, 40)
+    TEST_TYPE_ALIGN  (LOAD_DLL_DEBUG_INFO, 8)
+    TEST_FIELD_SIZE  (LOAD_DLL_DEBUG_INFO, hFile, 8)
+    TEST_FIELD_ALIGN (LOAD_DLL_DEBUG_INFO, hFile, 8)
+    TEST_FIELD_OFFSET(LOAD_DLL_DEBUG_INFO, hFile, 0)
+    TEST_FIELD_SIZE  (LOAD_DLL_DEBUG_INFO, lpBaseOfDll, 8)
+    TEST_FIELD_ALIGN (LOAD_DLL_DEBUG_INFO, lpBaseOfDll, 8)
+    TEST_FIELD_OFFSET(LOAD_DLL_DEBUG_INFO, lpBaseOfDll, 8)
+    TEST_FIELD_SIZE  (LOAD_DLL_DEBUG_INFO, dwDebugInfoFileOffset, 4)
+    TEST_FIELD_ALIGN (LOAD_DLL_DEBUG_INFO, dwDebugInfoFileOffset, 4)
+    TEST_FIELD_OFFSET(LOAD_DLL_DEBUG_INFO, dwDebugInfoFileOffset, 16)
+    TEST_FIELD_SIZE  (LOAD_DLL_DEBUG_INFO, nDebugInfoSize, 4)
+    TEST_FIELD_ALIGN (LOAD_DLL_DEBUG_INFO, nDebugInfoSize, 4)
+    TEST_FIELD_OFFSET(LOAD_DLL_DEBUG_INFO, nDebugInfoSize, 20)
+    TEST_FIELD_SIZE  (LOAD_DLL_DEBUG_INFO, lpImageName, 8)
+    TEST_FIELD_ALIGN (LOAD_DLL_DEBUG_INFO, lpImageName, 8)
+    TEST_FIELD_OFFSET(LOAD_DLL_DEBUG_INFO, lpImageName, 24)
+    TEST_FIELD_SIZE  (LOAD_DLL_DEBUG_INFO, fUnicode, 2)
+    TEST_FIELD_ALIGN (LOAD_DLL_DEBUG_INFO, fUnicode, 2)
+    TEST_FIELD_OFFSET(LOAD_DLL_DEBUG_INFO, fUnicode, 32)
+}
+
+static void test_pack_LPBY_HANDLE_FILE_INFORMATION(void)
+{
+    /* LPBY_HANDLE_FILE_INFORMATION */
+    TEST_TYPE_SIZE   (LPBY_HANDLE_FILE_INFORMATION, 8)
+    TEST_TYPE_ALIGN  (LPBY_HANDLE_FILE_INFORMATION, 8)
+    TEST_TARGET_SIZE (LPBY_HANDLE_FILE_INFORMATION, 52)
+    TEST_TARGET_ALIGN(LPBY_HANDLE_FILE_INFORMATION, 4)
+}
+
+static void test_pack_LPCOMMCONFIG(void)
+{
+    /* LPCOMMCONFIG */
+    TEST_TYPE_SIZE   (LPCOMMCONFIG, 8)
+    TEST_TYPE_ALIGN  (LPCOMMCONFIG, 8)
+    TEST_TARGET_SIZE (LPCOMMCONFIG, 52)
+    TEST_TARGET_ALIGN(LPCOMMCONFIG, 4)
+}
+
+static void test_pack_LPCOMMPROP(void)
+{
+    /* LPCOMMPROP */
+    TEST_TYPE_SIZE   (LPCOMMPROP, 8)
+    TEST_TYPE_ALIGN  (LPCOMMPROP, 8)
+    TEST_TARGET_SIZE (LPCOMMPROP, 64)
+    TEST_TARGET_ALIGN(LPCOMMPROP, 4)
+}
+
+static void test_pack_LPCOMMTIMEOUTS(void)
+{
+    /* LPCOMMTIMEOUTS */
+    TEST_TYPE_SIZE   (LPCOMMTIMEOUTS, 8)
+    TEST_TYPE_ALIGN  (LPCOMMTIMEOUTS, 8)
+    TEST_TARGET_SIZE (LPCOMMTIMEOUTS, 20)
+    TEST_TARGET_ALIGN(LPCOMMTIMEOUTS, 4)
+}
+
+static void test_pack_LPCOMSTAT(void)
+{
+    /* LPCOMSTAT */
+    TEST_TYPE_SIZE   (LPCOMSTAT, 8)
+    TEST_TYPE_ALIGN  (LPCOMSTAT, 8)
+    TEST_TARGET_SIZE (LPCOMSTAT, 12)
+    TEST_TARGET_ALIGN(LPCOMSTAT, 4)
+}
+
+static void test_pack_LPCRITICAL_SECTION(void)
+{
+    /* LPCRITICAL_SECTION */
+    TEST_TYPE_SIZE   (LPCRITICAL_SECTION, 8)
+    TEST_TYPE_ALIGN  (LPCRITICAL_SECTION, 8)
+}
+
+static void test_pack_LPCRITICAL_SECTION_DEBUG(void)
+{
+    /* LPCRITICAL_SECTION_DEBUG */
+    TEST_TYPE_SIZE   (LPCRITICAL_SECTION_DEBUG, 8)
+    TEST_TYPE_ALIGN  (LPCRITICAL_SECTION_DEBUG, 8)
+}
+
+static void test_pack_LPDCB(void)
+{
+    /* LPDCB */
+    TEST_TYPE_SIZE   (LPDCB, 8)
+    TEST_TYPE_ALIGN  (LPDCB, 8)
+    TEST_TARGET_SIZE (LPDCB, 28)
+    TEST_TARGET_ALIGN(LPDCB, 4)
+}
+
+static void test_pack_LPDEBUG_EVENT(void)
+{
+    /* LPDEBUG_EVENT */
+    TEST_TYPE_SIZE   (LPDEBUG_EVENT, 8)
+    TEST_TYPE_ALIGN  (LPDEBUG_EVENT, 8)
+}
+
+static void test_pack_LPEXCEPTION_POINTERS(void)
+{
+    /* LPEXCEPTION_POINTERS */
+    TEST_TYPE_SIZE   (LPEXCEPTION_POINTERS, 8)
+    TEST_TYPE_ALIGN  (LPEXCEPTION_POINTERS, 8)
+}
+
+static void test_pack_LPEXCEPTION_RECORD(void)
+{
+    /* LPEXCEPTION_RECORD */
+    TEST_TYPE_SIZE   (LPEXCEPTION_RECORD, 8)
+    TEST_TYPE_ALIGN  (LPEXCEPTION_RECORD, 8)
+}
+
+static void test_pack_LPFIBER_START_ROUTINE(void)
+{
+    /* LPFIBER_START_ROUTINE */
+    TEST_TYPE_SIZE   (LPFIBER_START_ROUTINE, 8)
+    TEST_TYPE_ALIGN  (LPFIBER_START_ROUTINE, 8)
+}
+
+static void test_pack_LPHW_PROFILE_INFOA(void)
+{
+    /* LPHW_PROFILE_INFOA */
+    TEST_TYPE_SIZE   (LPHW_PROFILE_INFOA, 8)
+    TEST_TYPE_ALIGN  (LPHW_PROFILE_INFOA, 8)
+    TEST_TARGET_SIZE (LPHW_PROFILE_INFOA, 124)
+    TEST_TARGET_ALIGN(LPHW_PROFILE_INFOA, 4)
+}
+
+static void test_pack_LPHW_PROFILE_INFOW(void)
+{
+    /* LPHW_PROFILE_INFOW */
+    TEST_TYPE_SIZE   (LPHW_PROFILE_INFOW, 8)
+    TEST_TYPE_ALIGN  (LPHW_PROFILE_INFOW, 8)
+    TEST_TARGET_SIZE (LPHW_PROFILE_INFOW, 244)
+    TEST_TARGET_ALIGN(LPHW_PROFILE_INFOW, 4)
+}
+
+static void test_pack_LPMEMORYSTATUS(void)
+{
+    /* LPMEMORYSTATUS */
+    TEST_TYPE_SIZE   (LPMEMORYSTATUS, 8)
+    TEST_TYPE_ALIGN  (LPMEMORYSTATUS, 8)
+    TEST_TARGET_SIZE (LPMEMORYSTATUS, 56)
+    TEST_TARGET_ALIGN(LPMEMORYSTATUS, 8)
+}
+
+static void test_pack_LPMEMORYSTATUSEX(void)
+{
+    /* LPMEMORYSTATUSEX */
+    TEST_TYPE_SIZE   (LPMEMORYSTATUSEX, 8)
+    TEST_TYPE_ALIGN  (LPMEMORYSTATUSEX, 8)
+    TEST_TARGET_SIZE (LPMEMORYSTATUSEX, 64)
+    TEST_TARGET_ALIGN(LPMEMORYSTATUSEX, 8)
+}
+
+static void test_pack_LPOFSTRUCT(void)
+{
+    /* LPOFSTRUCT */
+    TEST_TYPE_SIZE   (LPOFSTRUCT, 8)
+    TEST_TYPE_ALIGN  (LPOFSTRUCT, 8)
+    TEST_TARGET_SIZE (LPOFSTRUCT, 136)
+    TEST_TARGET_ALIGN(LPOFSTRUCT, 2)
+}
+
+static void test_pack_LPOVERLAPPED(void)
+{
+    /* LPOVERLAPPED */
+    TEST_TYPE_SIZE   (LPOVERLAPPED, 8)
+    TEST_TYPE_ALIGN  (LPOVERLAPPED, 8)
+}
+
+static void test_pack_LPOVERLAPPED_COMPLETION_ROUTINE(void)
+{
+    /* LPOVERLAPPED_COMPLETION_ROUTINE */
+    TEST_TYPE_SIZE   (LPOVERLAPPED_COMPLETION_ROUTINE, 8)
+    TEST_TYPE_ALIGN  (LPOVERLAPPED_COMPLETION_ROUTINE, 8)
+}
+
+static void test_pack_LPPROCESS_HEAP_ENTRY(void)
+{
+    /* LPPROCESS_HEAP_ENTRY */
+    TEST_TYPE_SIZE   (LPPROCESS_HEAP_ENTRY, 8)
+    TEST_TYPE_ALIGN  (LPPROCESS_HEAP_ENTRY, 8)
+}
+
+static void test_pack_LPPROCESS_INFORMATION(void)
+{
+    /* LPPROCESS_INFORMATION */
+    TEST_TYPE_SIZE   (LPPROCESS_INFORMATION, 8)
+    TEST_TYPE_ALIGN  (LPPROCESS_INFORMATION, 8)
+    TEST_TARGET_SIZE (LPPROCESS_INFORMATION, 24)
+    TEST_TARGET_ALIGN(LPPROCESS_INFORMATION, 8)
+}
+
+static void test_pack_LPPROGRESS_ROUTINE(void)
+{
+    /* LPPROGRESS_ROUTINE */
+    TEST_TYPE_SIZE   (LPPROGRESS_ROUTINE, 8)
+    TEST_TYPE_ALIGN  (LPPROGRESS_ROUTINE, 8)
+}
+
+static void test_pack_LPSECURITY_ATTRIBUTES(void)
+{
+    /* LPSECURITY_ATTRIBUTES */
+    TEST_TYPE_SIZE   (LPSECURITY_ATTRIBUTES, 8)
+    TEST_TYPE_ALIGN  (LPSECURITY_ATTRIBUTES, 8)
+    TEST_TARGET_SIZE (LPSECURITY_ATTRIBUTES, 24)
+    TEST_TARGET_ALIGN(LPSECURITY_ATTRIBUTES, 8)
+}
+
+static void test_pack_LPSTARTUPINFOA(void)
+{
+    /* LPSTARTUPINFOA */
+    TEST_TYPE_SIZE   (LPSTARTUPINFOA, 8)
+    TEST_TYPE_ALIGN  (LPSTARTUPINFOA, 8)
+    TEST_TARGET_SIZE (LPSTARTUPINFOA, 104)
+    TEST_TARGET_ALIGN(LPSTARTUPINFOA, 8)
+}
+
+static void test_pack_LPSTARTUPINFOW(void)
+{
+    /* LPSTARTUPINFOW */
+    TEST_TYPE_SIZE   (LPSTARTUPINFOW, 8)
+    TEST_TYPE_ALIGN  (LPSTARTUPINFOW, 8)
+    TEST_TARGET_SIZE (LPSTARTUPINFOW, 104)
+    TEST_TARGET_ALIGN(LPSTARTUPINFOW, 8)
+}
+
+static void test_pack_LPSYSTEMTIME(void)
+{
+    /* LPSYSTEMTIME */
+    TEST_TYPE_SIZE   (LPSYSTEMTIME, 8)
+    TEST_TYPE_ALIGN  (LPSYSTEMTIME, 8)
+    TEST_TARGET_SIZE (LPSYSTEMTIME, 16)
+    TEST_TARGET_ALIGN(LPSYSTEMTIME, 2)
+}
+
+static void test_pack_LPSYSTEM_INFO(void)
+{
+    /* LPSYSTEM_INFO */
+    TEST_TYPE_SIZE   (LPSYSTEM_INFO, 8)
+    TEST_TYPE_ALIGN  (LPSYSTEM_INFO, 8)
+}
+
+static void test_pack_LPSYSTEM_POWER_STATUS(void)
+{
+    /* LPSYSTEM_POWER_STATUS */
+    TEST_TYPE_SIZE   (LPSYSTEM_POWER_STATUS, 8)
+    TEST_TYPE_ALIGN  (LPSYSTEM_POWER_STATUS, 8)
+    TEST_TARGET_SIZE (LPSYSTEM_POWER_STATUS, 12)
+    TEST_TARGET_ALIGN(LPSYSTEM_POWER_STATUS, 4)
+}
+
+static void test_pack_LPTHREAD_START_ROUTINE(void)
+{
+    /* LPTHREAD_START_ROUTINE */
+    TEST_TYPE_SIZE   (LPTHREAD_START_ROUTINE, 8)
+    TEST_TYPE_ALIGN  (LPTHREAD_START_ROUTINE, 8)
+}
+
+static void test_pack_LPTIME_ZONE_INFORMATION(void)
+{
+    /* LPTIME_ZONE_INFORMATION */
+    TEST_TYPE_SIZE   (LPTIME_ZONE_INFORMATION, 8)
+    TEST_TYPE_ALIGN  (LPTIME_ZONE_INFORMATION, 8)
+    TEST_TARGET_SIZE (LPTIME_ZONE_INFORMATION, 172)
+    TEST_TARGET_ALIGN(LPTIME_ZONE_INFORMATION, 4)
+}
+
+static void test_pack_LPWIN32_FILE_ATTRIBUTE_DATA(void)
+{
+    /* LPWIN32_FILE_ATTRIBUTE_DATA */
+    TEST_TYPE_SIZE   (LPWIN32_FILE_ATTRIBUTE_DATA, 8)
+    TEST_TYPE_ALIGN  (LPWIN32_FILE_ATTRIBUTE_DATA, 8)
+    TEST_TARGET_SIZE (LPWIN32_FILE_ATTRIBUTE_DATA, 36)
+    TEST_TARGET_ALIGN(LPWIN32_FILE_ATTRIBUTE_DATA, 4)
+}
+
+static void test_pack_LPWIN32_FIND_DATAA(void)
+{
+    /* LPWIN32_FIND_DATAA */
+    TEST_TYPE_SIZE   (LPWIN32_FIND_DATAA, 8)
+    TEST_TYPE_ALIGN  (LPWIN32_FIND_DATAA, 8)
+    TEST_TARGET_SIZE (LPWIN32_FIND_DATAA, 320)
+    TEST_TARGET_ALIGN(LPWIN32_FIND_DATAA, 4)
+}
+
+static void test_pack_LPWIN32_FIND_DATAW(void)
+{
+    /* LPWIN32_FIND_DATAW */
+    TEST_TYPE_SIZE   (LPWIN32_FIND_DATAW, 8)
+    TEST_TYPE_ALIGN  (LPWIN32_FIND_DATAW, 8)
+    TEST_TARGET_SIZE (LPWIN32_FIND_DATAW, 592)
+    TEST_TARGET_ALIGN(LPWIN32_FIND_DATAW, 4)
+}
+
+static void test_pack_LPWIN32_STREAM_ID(void)
+{
+    /* LPWIN32_STREAM_ID */
+    TEST_TYPE_SIZE   (LPWIN32_STREAM_ID, 8)
+    TEST_TYPE_ALIGN  (LPWIN32_STREAM_ID, 8)
+    TEST_TARGET_SIZE (LPWIN32_STREAM_ID, 24)
+    TEST_TARGET_ALIGN(LPWIN32_STREAM_ID, 8)
+}
+
+static void test_pack_MEMORYSTATUS(void)
+{
+    /* MEMORYSTATUS */
+    TEST_TYPE_SIZE   (MEMORYSTATUS, 56)
+    TEST_TYPE_ALIGN  (MEMORYSTATUS, 8)
+    TEST_FIELD_SIZE  (MEMORYSTATUS, dwLength, 4)
+    TEST_FIELD_ALIGN (MEMORYSTATUS, dwLength, 4)
+    TEST_FIELD_OFFSET(MEMORYSTATUS, dwLength, 0)
+    TEST_FIELD_SIZE  (MEMORYSTATUS, dwMemoryLoad, 4)
+    TEST_FIELD_ALIGN (MEMORYSTATUS, dwMemoryLoad, 4)
+    TEST_FIELD_OFFSET(MEMORYSTATUS, dwMemoryLoad, 4)
+    TEST_FIELD_SIZE  (MEMORYSTATUS, dwTotalPhys, 8)
+    TEST_FIELD_ALIGN (MEMORYSTATUS, dwTotalPhys, 8)
+    TEST_FIELD_OFFSET(MEMORYSTATUS, dwTotalPhys, 8)
+    TEST_FIELD_SIZE  (MEMORYSTATUS, dwAvailPhys, 8)
+    TEST_FIELD_ALIGN (MEMORYSTATUS, dwAvailPhys, 8)
+    TEST_FIELD_OFFSET(MEMORYSTATUS, dwAvailPhys, 16)
+    TEST_FIELD_SIZE  (MEMORYSTATUS, dwTotalPageFile, 8)
+    TEST_FIELD_ALIGN (MEMORYSTATUS, dwTotalPageFile, 8)
+    TEST_FIELD_OFFSET(MEMORYSTATUS, dwTotalPageFile, 24)
+    TEST_FIELD_SIZE  (MEMORYSTATUS, dwAvailPageFile, 8)
+    TEST_FIELD_ALIGN (MEMORYSTATUS, dwAvailPageFile, 8)
+    TEST_FIELD_OFFSET(MEMORYSTATUS, dwAvailPageFile, 32)
+    TEST_FIELD_SIZE  (MEMORYSTATUS, dwTotalVirtual, 8)
+    TEST_FIELD_ALIGN (MEMORYSTATUS, dwTotalVirtual, 8)
+    TEST_FIELD_OFFSET(MEMORYSTATUS, dwTotalVirtual, 40)
+    TEST_FIELD_SIZE  (MEMORYSTATUS, dwAvailVirtual, 8)
+    TEST_FIELD_ALIGN (MEMORYSTATUS, dwAvailVirtual, 8)
+    TEST_FIELD_OFFSET(MEMORYSTATUS, dwAvailVirtual, 48)
+}
+
+static void test_pack_MEMORYSTATUSEX(void)
+{
+    /* MEMORYSTATUSEX (pack 8) */
+    TEST_TYPE_SIZE   (MEMORYSTATUSEX, 64)
+    TEST_TYPE_ALIGN  (MEMORYSTATUSEX, 8)
+    TEST_FIELD_SIZE  (MEMORYSTATUSEX, dwLength, 4)
+    TEST_FIELD_ALIGN (MEMORYSTATUSEX, dwLength, 4)
+    TEST_FIELD_OFFSET(MEMORYSTATUSEX, dwLength, 0)
+    TEST_FIELD_SIZE  (MEMORYSTATUSEX, dwMemoryLoad, 4)
+    TEST_FIELD_ALIGN (MEMORYSTATUSEX, dwMemoryLoad, 4)
+    TEST_FIELD_OFFSET(MEMORYSTATUSEX, dwMemoryLoad, 4)
+    TEST_FIELD_SIZE  (MEMORYSTATUSEX, ullTotalPhys, 8)
+    TEST_FIELD_ALIGN (MEMORYSTATUSEX, ullTotalPhys, 8)
+    TEST_FIELD_OFFSET(MEMORYSTATUSEX, ullTotalPhys, 8)
+    TEST_FIELD_SIZE  (MEMORYSTATUSEX, ullAvailPhys, 8)
+    TEST_FIELD_ALIGN (MEMORYSTATUSEX, ullAvailPhys, 8)
+    TEST_FIELD_OFFSET(MEMORYSTATUSEX, ullAvailPhys, 16)
+    TEST_FIELD_SIZE  (MEMORYSTATUSEX, ullTotalPageFile, 8)
+    TEST_FIELD_ALIGN (MEMORYSTATUSEX, ullTotalPageFile, 8)
+    TEST_FIELD_OFFSET(MEMORYSTATUSEX, ullTotalPageFile, 24)
+    TEST_FIELD_SIZE  (MEMORYSTATUSEX, ullAvailPageFile, 8)
+    TEST_FIELD_ALIGN (MEMORYSTATUSEX, ullAvailPageFile, 8)
+    TEST_FIELD_OFFSET(MEMORYSTATUSEX, ullAvailPageFile, 32)
+    TEST_FIELD_SIZE  (MEMORYSTATUSEX, ullTotalVirtual, 8)
+    TEST_FIELD_ALIGN (MEMORYSTATUSEX, ullTotalVirtual, 8)
+    TEST_FIELD_OFFSET(MEMORYSTATUSEX, ullTotalVirtual, 40)
+    TEST_FIELD_SIZE  (MEMORYSTATUSEX, ullAvailVirtual, 8)
+    TEST_FIELD_ALIGN (MEMORYSTATUSEX, ullAvailVirtual, 8)
+    TEST_FIELD_OFFSET(MEMORYSTATUSEX, ullAvailVirtual, 48)
+    TEST_FIELD_SIZE  (MEMORYSTATUSEX, ullAvailExtendedVirtual, 8)
+    TEST_FIELD_ALIGN (MEMORYSTATUSEX, ullAvailExtendedVirtual, 8)
+    TEST_FIELD_OFFSET(MEMORYSTATUSEX, ullAvailExtendedVirtual, 56)
+}
+
+static void test_pack_OFSTRUCT(void)
+{
+    /* OFSTRUCT */
+    TEST_TYPE_SIZE   (OFSTRUCT, 136)
+    TEST_TYPE_ALIGN  (OFSTRUCT, 2)
+    TEST_FIELD_SIZE  (OFSTRUCT, cBytes, 1)
+    TEST_FIELD_ALIGN (OFSTRUCT, cBytes, 1)
+    TEST_FIELD_OFFSET(OFSTRUCT, cBytes, 0)
+    TEST_FIELD_SIZE  (OFSTRUCT, fFixedDisk, 1)
+    TEST_FIELD_ALIGN (OFSTRUCT, fFixedDisk, 1)
+    TEST_FIELD_OFFSET(OFSTRUCT, fFixedDisk, 1)
+    TEST_FIELD_SIZE  (OFSTRUCT, nErrCode, 2)
+    TEST_FIELD_ALIGN (OFSTRUCT, nErrCode, 2)
+    TEST_FIELD_OFFSET(OFSTRUCT, nErrCode, 2)
+    TEST_FIELD_SIZE  (OFSTRUCT, Reserved1, 2)
+    TEST_FIELD_ALIGN (OFSTRUCT, Reserved1, 2)
+    TEST_FIELD_OFFSET(OFSTRUCT, Reserved1, 4)
+    TEST_FIELD_SIZE  (OFSTRUCT, Reserved2, 2)
+    TEST_FIELD_ALIGN (OFSTRUCT, Reserved2, 2)
+    TEST_FIELD_OFFSET(OFSTRUCT, Reserved2, 6)
+    TEST_FIELD_SIZE  (OFSTRUCT, szPathName, 128)
+    TEST_FIELD_ALIGN (OFSTRUCT, szPathName, 1)
+    TEST_FIELD_OFFSET(OFSTRUCT, szPathName, 8)
+}
+
+static void test_pack_OUTPUT_DEBUG_STRING_INFO(void)
+{
+    /* OUTPUT_DEBUG_STRING_INFO */
+    TEST_TYPE_SIZE   (OUTPUT_DEBUG_STRING_INFO, 16)
+    TEST_TYPE_ALIGN  (OUTPUT_DEBUG_STRING_INFO, 8)
+    TEST_FIELD_SIZE  (OUTPUT_DEBUG_STRING_INFO, lpDebugStringData, 8)
+    TEST_FIELD_ALIGN (OUTPUT_DEBUG_STRING_INFO, lpDebugStringData, 8)
+    TEST_FIELD_OFFSET(OUTPUT_DEBUG_STRING_INFO, lpDebugStringData, 0)
+    TEST_FIELD_SIZE  (OUTPUT_DEBUG_STRING_INFO, fUnicode, 2)
+    TEST_FIELD_ALIGN (OUTPUT_DEBUG_STRING_INFO, fUnicode, 2)
+    TEST_FIELD_OFFSET(OUTPUT_DEBUG_STRING_INFO, fUnicode, 8)
+    TEST_FIELD_SIZE  (OUTPUT_DEBUG_STRING_INFO, nDebugStringLength, 2)
+    TEST_FIELD_ALIGN (OUTPUT_DEBUG_STRING_INFO, nDebugStringLength, 2)
+    TEST_FIELD_OFFSET(OUTPUT_DEBUG_STRING_INFO, nDebugStringLength, 10)
+}
+
+static void test_pack_PACTCTXA(void)
+{
+    /* PACTCTXA */
+    TEST_TYPE_SIZE   (PACTCTXA, 8)
+    TEST_TYPE_ALIGN  (PACTCTXA, 8)
+    TEST_TARGET_SIZE (PACTCTXA, 56)
+    TEST_TARGET_ALIGN(PACTCTXA, 8)
+}
+
+static void test_pack_PACTCTXW(void)
+{
+    /* PACTCTXW */
+    TEST_TYPE_SIZE   (PACTCTXW, 8)
+    TEST_TYPE_ALIGN  (PACTCTXW, 8)
+    TEST_TARGET_SIZE (PACTCTXW, 56)
+    TEST_TARGET_ALIGN(PACTCTXW, 8)
+}
+
+static void test_pack_PACTCTX_SECTION_KEYED_DATA(void)
+{
+    /* PACTCTX_SECTION_KEYED_DATA */
+    TEST_TYPE_SIZE   (PACTCTX_SECTION_KEYED_DATA, 8)
+    TEST_TYPE_ALIGN  (PACTCTX_SECTION_KEYED_DATA, 8)
+    TEST_TARGET_SIZE (PACTCTX_SECTION_KEYED_DATA, 112)
+    TEST_TARGET_ALIGN(PACTCTX_SECTION_KEYED_DATA, 8)
+}
+
+static void test_pack_PACTCTX_SECTION_KEYED_DATA_2600(void)
+{
+    /* PACTCTX_SECTION_KEYED_DATA_2600 */
+    TEST_TYPE_SIZE   (PACTCTX_SECTION_KEYED_DATA_2600, 8)
+    TEST_TYPE_ALIGN  (PACTCTX_SECTION_KEYED_DATA_2600, 8)
+    TEST_TARGET_SIZE (PACTCTX_SECTION_KEYED_DATA_2600, 72)
+    TEST_TARGET_ALIGN(PACTCTX_SECTION_KEYED_DATA_2600, 8)
+}
+
+static void test_pack_PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA(void)
+{
+    /* PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA */
+    TEST_TYPE_SIZE   (PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 8)
+    TEST_TYPE_ALIGN  (PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 8)
+    TEST_TARGET_SIZE (PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 40)
+    TEST_TARGET_ALIGN(PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 8)
+}
+
+static void test_pack_PACTIVATION_CONTEXT_BASIC_INFORMATION(void)
+{
+    /* PACTIVATION_CONTEXT_BASIC_INFORMATION */
+    TEST_TYPE_SIZE   (PACTIVATION_CONTEXT_BASIC_INFORMATION, 8)
+    TEST_TYPE_ALIGN  (PACTIVATION_CONTEXT_BASIC_INFORMATION, 8)
+    TEST_TARGET_SIZE (PACTIVATION_CONTEXT_BASIC_INFORMATION, 16)
+    TEST_TARGET_ALIGN(PACTIVATION_CONTEXT_BASIC_INFORMATION, 8)
+}
+
+static void test_pack_PAPCFUNC(void)
+{
+    /* PAPCFUNC */
+    TEST_TYPE_SIZE   (PAPCFUNC, 8)
+    TEST_TYPE_ALIGN  (PAPCFUNC, 8)
+}
+
+static void test_pack_PBY_HANDLE_FILE_INFORMATION(void)
+{
+    /* PBY_HANDLE_FILE_INFORMATION */
+    TEST_TYPE_SIZE   (PBY_HANDLE_FILE_INFORMATION, 8)
+    TEST_TYPE_ALIGN  (PBY_HANDLE_FILE_INFORMATION, 8)
+    TEST_TARGET_SIZE (PBY_HANDLE_FILE_INFORMATION, 52)
+    TEST_TARGET_ALIGN(PBY_HANDLE_FILE_INFORMATION, 4)
+}
+
+static void test_pack_PCACTCTXA(void)
+{
+    /* PCACTCTXA */
+    TEST_TYPE_SIZE   (PCACTCTXA, 8)
+    TEST_TYPE_ALIGN  (PCACTCTXA, 8)
+    TEST_TARGET_SIZE (PCACTCTXA, 56)
+    TEST_TARGET_ALIGN(PCACTCTXA, 8)
+}
+
+static void test_pack_PCACTCTXW(void)
+{
+    /* PCACTCTXW */
+    TEST_TYPE_SIZE   (PCACTCTXW, 8)
+    TEST_TYPE_ALIGN  (PCACTCTXW, 8)
+    TEST_TARGET_SIZE (PCACTCTXW, 56)
+    TEST_TARGET_ALIGN(PCACTCTXW, 8)
+}
+
+static void test_pack_PCACTCTX_SECTION_KEYED_DATA(void)
+{
+    /* PCACTCTX_SECTION_KEYED_DATA */
+    TEST_TYPE_SIZE   (PCACTCTX_SECTION_KEYED_DATA, 8)
+    TEST_TYPE_ALIGN  (PCACTCTX_SECTION_KEYED_DATA, 8)
+    TEST_TARGET_SIZE (PCACTCTX_SECTION_KEYED_DATA, 112)
+    TEST_TARGET_ALIGN(PCACTCTX_SECTION_KEYED_DATA, 8)
+}
+
+static void test_pack_PCACTCTX_SECTION_KEYED_DATA_2600(void)
+{
+    /* PCACTCTX_SECTION_KEYED_DATA_2600 */
+    TEST_TYPE_SIZE   (PCACTCTX_SECTION_KEYED_DATA_2600, 8)
+    TEST_TYPE_ALIGN  (PCACTCTX_SECTION_KEYED_DATA_2600, 8)
+    TEST_TARGET_SIZE (PCACTCTX_SECTION_KEYED_DATA_2600, 72)
+    TEST_TARGET_ALIGN(PCACTCTX_SECTION_KEYED_DATA_2600, 8)
+}
+
+static void test_pack_PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA(void)
+{
+    /* PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA */
+    TEST_TYPE_SIZE   (PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 8)
+    TEST_TYPE_ALIGN  (PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 8)
+    TEST_TARGET_SIZE (PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 40)
+    TEST_TARGET_ALIGN(PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 8)
+}
+
+static void test_pack_PCRITICAL_SECTION(void)
+{
+    /* PCRITICAL_SECTION */
+    TEST_TYPE_SIZE   (PCRITICAL_SECTION, 8)
+    TEST_TYPE_ALIGN  (PCRITICAL_SECTION, 8)
+}
+
+static void test_pack_PCRITICAL_SECTION_DEBUG(void)
+{
+    /* PCRITICAL_SECTION_DEBUG */
+    TEST_TYPE_SIZE   (PCRITICAL_SECTION_DEBUG, 8)
+    TEST_TYPE_ALIGN  (PCRITICAL_SECTION_DEBUG, 8)
+}
+
+static void test_pack_PFIBER_START_ROUTINE(void)
+{
+    /* PFIBER_START_ROUTINE */
+    TEST_TYPE_SIZE   (PFIBER_START_ROUTINE, 8)
+    TEST_TYPE_ALIGN  (PFIBER_START_ROUTINE, 8)
+}
+
+static void test_pack_POFSTRUCT(void)
+{
+    /* POFSTRUCT */
+    TEST_TYPE_SIZE   (POFSTRUCT, 8)
+    TEST_TYPE_ALIGN  (POFSTRUCT, 8)
+    TEST_TARGET_SIZE (POFSTRUCT, 136)
+    TEST_TARGET_ALIGN(POFSTRUCT, 2)
+}
+
+static void test_pack_PPROCESS_HEAP_ENTRY(void)
+{
+    /* PPROCESS_HEAP_ENTRY */
+    TEST_TYPE_SIZE   (PPROCESS_HEAP_ENTRY, 8)
+    TEST_TYPE_ALIGN  (PPROCESS_HEAP_ENTRY, 8)
+}
+
+static void test_pack_PPROCESS_INFORMATION(void)
+{
+    /* PPROCESS_INFORMATION */
+    TEST_TYPE_SIZE   (PPROCESS_INFORMATION, 8)
+    TEST_TYPE_ALIGN  (PPROCESS_INFORMATION, 8)
+    TEST_TARGET_SIZE (PPROCESS_INFORMATION, 24)
+    TEST_TARGET_ALIGN(PPROCESS_INFORMATION, 8)
+}
+
+static void test_pack_PQUERYACTCTXW_FUNC(void)
+{
+    /* PQUERYACTCTXW_FUNC */
+    TEST_TYPE_SIZE   (PQUERYACTCTXW_FUNC, 8)
+    TEST_TYPE_ALIGN  (PQUERYACTCTXW_FUNC, 8)
+}
+
+static void test_pack_PROCESS_HEAP_ENTRY(void)
+{
+    /* PROCESS_HEAP_ENTRY */
+    TEST_FIELD_SIZE  (PROCESS_HEAP_ENTRY, lpData, 8)
+    TEST_FIELD_ALIGN (PROCESS_HEAP_ENTRY, lpData, 8)
+    TEST_FIELD_OFFSET(PROCESS_HEAP_ENTRY, lpData, 0)
+    TEST_FIELD_SIZE  (PROCESS_HEAP_ENTRY, cbData, 4)
+    TEST_FIELD_ALIGN (PROCESS_HEAP_ENTRY, cbData, 4)
+    TEST_FIELD_OFFSET(PROCESS_HEAP_ENTRY, cbData, 8)
+    TEST_FIELD_SIZE  (PROCESS_HEAP_ENTRY, cbOverhead, 1)
+    TEST_FIELD_ALIGN (PROCESS_HEAP_ENTRY, cbOverhead, 1)
+    TEST_FIELD_OFFSET(PROCESS_HEAP_ENTRY, cbOverhead, 12)
+    TEST_FIELD_SIZE  (PROCESS_HEAP_ENTRY, iRegionIndex, 1)
+    TEST_FIELD_ALIGN (PROCESS_HEAP_ENTRY, iRegionIndex, 1)
+    TEST_FIELD_OFFSET(PROCESS_HEAP_ENTRY, iRegionIndex, 13)
+    TEST_FIELD_SIZE  (PROCESS_HEAP_ENTRY, wFlags, 2)
+    TEST_FIELD_ALIGN (PROCESS_HEAP_ENTRY, wFlags, 2)
+    TEST_FIELD_OFFSET(PROCESS_HEAP_ENTRY, wFlags, 14)
+}
+
+static void test_pack_PROCESS_INFORMATION(void)
+{
+    /* PROCESS_INFORMATION */
+    TEST_TYPE_SIZE   (PROCESS_INFORMATION, 24)
+    TEST_TYPE_ALIGN  (PROCESS_INFORMATION, 8)
+    TEST_FIELD_SIZE  (PROCESS_INFORMATION, hProcess, 8)
+    TEST_FIELD_ALIGN (PROCESS_INFORMATION, hProcess, 8)
+    TEST_FIELD_OFFSET(PROCESS_INFORMATION, hProcess, 0)
+    TEST_FIELD_SIZE  (PROCESS_INFORMATION, hThread, 8)
+    TEST_FIELD_ALIGN (PROCESS_INFORMATION, hThread, 8)
+    TEST_FIELD_OFFSET(PROCESS_INFORMATION, hThread, 8)
+    TEST_FIELD_SIZE  (PROCESS_INFORMATION, dwProcessId, 4)
+    TEST_FIELD_ALIGN (PROCESS_INFORMATION, dwProcessId, 4)
+    TEST_FIELD_OFFSET(PROCESS_INFORMATION, dwProcessId, 16)
+    TEST_FIELD_SIZE  (PROCESS_INFORMATION, dwThreadId, 4)
+    TEST_FIELD_ALIGN (PROCESS_INFORMATION, dwThreadId, 4)
+    TEST_FIELD_OFFSET(PROCESS_INFORMATION, dwThreadId, 20)
+}
+
+static void test_pack_PSECURITY_ATTRIBUTES(void)
+{
+    /* PSECURITY_ATTRIBUTES */
+    TEST_TYPE_SIZE   (PSECURITY_ATTRIBUTES, 8)
+    TEST_TYPE_ALIGN  (PSECURITY_ATTRIBUTES, 8)
+    TEST_TARGET_SIZE (PSECURITY_ATTRIBUTES, 24)
+    TEST_TARGET_ALIGN(PSECURITY_ATTRIBUTES, 8)
+}
+
+static void test_pack_PSYSTEMTIME(void)
+{
+    /* PSYSTEMTIME */
+    TEST_TYPE_SIZE   (PSYSTEMTIME, 8)
+    TEST_TYPE_ALIGN  (PSYSTEMTIME, 8)
+    TEST_TARGET_SIZE (PSYSTEMTIME, 16)
+    TEST_TARGET_ALIGN(PSYSTEMTIME, 2)
+}
+
+static void test_pack_PTIMERAPCROUTINE(void)
+{
+    /* PTIMERAPCROUTINE */
+    TEST_TYPE_SIZE   (PTIMERAPCROUTINE, 8)
+    TEST_TYPE_ALIGN  (PTIMERAPCROUTINE, 8)
+}
+
+static void test_pack_PTIME_ZONE_INFORMATION(void)
+{
+    /* PTIME_ZONE_INFORMATION */
+    TEST_TYPE_SIZE   (PTIME_ZONE_INFORMATION, 8)
+    TEST_TYPE_ALIGN  (PTIME_ZONE_INFORMATION, 8)
+    TEST_TARGET_SIZE (PTIME_ZONE_INFORMATION, 172)
+    TEST_TARGET_ALIGN(PTIME_ZONE_INFORMATION, 4)
+}
+
+static void test_pack_PWIN32_FIND_DATAA(void)
+{
+    /* PWIN32_FIND_DATAA */
+    TEST_TYPE_SIZE   (PWIN32_FIND_DATAA, 8)
+    TEST_TYPE_ALIGN  (PWIN32_FIND_DATAA, 8)
+    TEST_TARGET_SIZE (PWIN32_FIND_DATAA, 320)
+    TEST_TARGET_ALIGN(PWIN32_FIND_DATAA, 4)
+}
+
+static void test_pack_PWIN32_FIND_DATAW(void)
+{
+    /* PWIN32_FIND_DATAW */
+    TEST_TYPE_SIZE   (PWIN32_FIND_DATAW, 8)
+    TEST_TYPE_ALIGN  (PWIN32_FIND_DATAW, 8)
+    TEST_TARGET_SIZE (PWIN32_FIND_DATAW, 592)
+    TEST_TARGET_ALIGN(PWIN32_FIND_DATAW, 4)
+}
+
+static void test_pack_RIP_INFO(void)
+{
+    /* RIP_INFO */
+    TEST_TYPE_SIZE   (RIP_INFO, 8)
+    TEST_TYPE_ALIGN  (RIP_INFO, 4)
+    TEST_FIELD_SIZE  (RIP_INFO, dwError, 4)
+    TEST_FIELD_ALIGN (RIP_INFO, dwError, 4)
+    TEST_FIELD_OFFSET(RIP_INFO, dwError, 0)
+    TEST_FIELD_SIZE  (RIP_INFO, dwType, 4)
+    TEST_FIELD_ALIGN (RIP_INFO, dwType, 4)
+    TEST_FIELD_OFFSET(RIP_INFO, dwType, 4)
+}
+
+static void test_pack_SECURITY_ATTRIBUTES(void)
+{
+    /* SECURITY_ATTRIBUTES */
+    TEST_TYPE_SIZE   (SECURITY_ATTRIBUTES, 24)
+    TEST_TYPE_ALIGN  (SECURITY_ATTRIBUTES, 8)
+    TEST_FIELD_SIZE  (SECURITY_ATTRIBUTES, nLength, 4)
+    TEST_FIELD_ALIGN (SECURITY_ATTRIBUTES, nLength, 4)
+    TEST_FIELD_OFFSET(SECURITY_ATTRIBUTES, nLength, 0)
+    TEST_FIELD_SIZE  (SECURITY_ATTRIBUTES, lpSecurityDescriptor, 8)
+    TEST_FIELD_ALIGN (SECURITY_ATTRIBUTES, lpSecurityDescriptor, 8)
+    TEST_FIELD_OFFSET(SECURITY_ATTRIBUTES, lpSecurityDescriptor, 8)
+    TEST_FIELD_SIZE  (SECURITY_ATTRIBUTES, bInheritHandle, 4)
+    TEST_FIELD_ALIGN (SECURITY_ATTRIBUTES, bInheritHandle, 4)
+    TEST_FIELD_OFFSET(SECURITY_ATTRIBUTES, bInheritHandle, 16)
+}
+
+static void test_pack_STARTUPINFOA(void)
+{
+    /* STARTUPINFOA */
+    TEST_TYPE_SIZE   (STARTUPINFOA, 104)
+    TEST_TYPE_ALIGN  (STARTUPINFOA, 8)
+    TEST_FIELD_SIZE  (STARTUPINFOA, cb, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOA, cb, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOA, cb, 0)
+    TEST_FIELD_SIZE  (STARTUPINFOA, lpReserved, 8)
+    TEST_FIELD_ALIGN (STARTUPINFOA, lpReserved, 8)
+    TEST_FIELD_OFFSET(STARTUPINFOA, lpReserved, 8)
+    TEST_FIELD_SIZE  (STARTUPINFOA, lpDesktop, 8)
+    TEST_FIELD_ALIGN (STARTUPINFOA, lpDesktop, 8)
+    TEST_FIELD_OFFSET(STARTUPINFOA, lpDesktop, 16)
+    TEST_FIELD_SIZE  (STARTUPINFOA, lpTitle, 8)
+    TEST_FIELD_ALIGN (STARTUPINFOA, lpTitle, 8)
+    TEST_FIELD_OFFSET(STARTUPINFOA, lpTitle, 24)
+    TEST_FIELD_SIZE  (STARTUPINFOA, dwX, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOA, dwX, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOA, dwX, 32)
+    TEST_FIELD_SIZE  (STARTUPINFOA, dwY, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOA, dwY, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOA, dwY, 36)
+    TEST_FIELD_SIZE  (STARTUPINFOA, dwXSize, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOA, dwXSize, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOA, dwXSize, 40)
+    TEST_FIELD_SIZE  (STARTUPINFOA, dwYSize, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOA, dwYSize, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOA, dwYSize, 44)
+    TEST_FIELD_SIZE  (STARTUPINFOA, dwXCountChars, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOA, dwXCountChars, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOA, dwXCountChars, 48)
+    TEST_FIELD_SIZE  (STARTUPINFOA, dwYCountChars, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOA, dwYCountChars, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOA, dwYCountChars, 52)
+    TEST_FIELD_SIZE  (STARTUPINFOA, dwFillAttribute, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOA, dwFillAttribute, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOA, dwFillAttribute, 56)
+    TEST_FIELD_SIZE  (STARTUPINFOA, dwFlags, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOA, dwFlags, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOA, dwFlags, 60)
+    TEST_FIELD_SIZE  (STARTUPINFOA, wShowWindow, 2)
+    TEST_FIELD_ALIGN (STARTUPINFOA, wShowWindow, 2)
+    TEST_FIELD_OFFSET(STARTUPINFOA, wShowWindow, 64)
+    TEST_FIELD_SIZE  (STARTUPINFOA, cbReserved2, 2)
+    TEST_FIELD_ALIGN (STARTUPINFOA, cbReserved2, 2)
+    TEST_FIELD_OFFSET(STARTUPINFOA, cbReserved2, 66)
+    TEST_FIELD_SIZE  (STARTUPINFOA, lpReserved2, 8)
+    TEST_FIELD_ALIGN (STARTUPINFOA, lpReserved2, 8)
+    TEST_FIELD_OFFSET(STARTUPINFOA, lpReserved2, 72)
+    TEST_FIELD_SIZE  (STARTUPINFOA, hStdInput, 8)
+    TEST_FIELD_ALIGN (STARTUPINFOA, hStdInput, 8)
+    TEST_FIELD_OFFSET(STARTUPINFOA, hStdInput, 80)
+    TEST_FIELD_SIZE  (STARTUPINFOA, hStdOutput, 8)
+    TEST_FIELD_ALIGN (STARTUPINFOA, hStdOutput, 8)
+    TEST_FIELD_OFFSET(STARTUPINFOA, hStdOutput, 88)
+    TEST_FIELD_SIZE  (STARTUPINFOA, hStdError, 8)
+    TEST_FIELD_ALIGN (STARTUPINFOA, hStdError, 8)
+    TEST_FIELD_OFFSET(STARTUPINFOA, hStdError, 96)
+}
+
+static void test_pack_STARTUPINFOW(void)
+{
+    /* STARTUPINFOW */
+    TEST_TYPE_SIZE   (STARTUPINFOW, 104)
+    TEST_TYPE_ALIGN  (STARTUPINFOW, 8)
+    TEST_FIELD_SIZE  (STARTUPINFOW, cb, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOW, cb, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOW, cb, 0)
+    TEST_FIELD_SIZE  (STARTUPINFOW, lpReserved, 8)
+    TEST_FIELD_ALIGN (STARTUPINFOW, lpReserved, 8)
+    TEST_FIELD_OFFSET(STARTUPINFOW, lpReserved, 8)
+    TEST_FIELD_SIZE  (STARTUPINFOW, lpDesktop, 8)
+    TEST_FIELD_ALIGN (STARTUPINFOW, lpDesktop, 8)
+    TEST_FIELD_OFFSET(STARTUPINFOW, lpDesktop, 16)
+    TEST_FIELD_SIZE  (STARTUPINFOW, lpTitle, 8)
+    TEST_FIELD_ALIGN (STARTUPINFOW, lpTitle, 8)
+    TEST_FIELD_OFFSET(STARTUPINFOW, lpTitle, 24)
+    TEST_FIELD_SIZE  (STARTUPINFOW, dwX, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOW, dwX, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOW, dwX, 32)
+    TEST_FIELD_SIZE  (STARTUPINFOW, dwY, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOW, dwY, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOW, dwY, 36)
+    TEST_FIELD_SIZE  (STARTUPINFOW, dwXSize, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOW, dwXSize, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOW, dwXSize, 40)
+    TEST_FIELD_SIZE  (STARTUPINFOW, dwYSize, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOW, dwYSize, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOW, dwYSize, 44)
+    TEST_FIELD_SIZE  (STARTUPINFOW, dwXCountChars, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOW, dwXCountChars, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOW, dwXCountChars, 48)
+    TEST_FIELD_SIZE  (STARTUPINFOW, dwYCountChars, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOW, dwYCountChars, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOW, dwYCountChars, 52)
+    TEST_FIELD_SIZE  (STARTUPINFOW, dwFillAttribute, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOW, dwFillAttribute, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOW, dwFillAttribute, 56)
+    TEST_FIELD_SIZE  (STARTUPINFOW, dwFlags, 4)
+    TEST_FIELD_ALIGN (STARTUPINFOW, dwFlags, 4)
+    TEST_FIELD_OFFSET(STARTUPINFOW, dwFlags, 60)
+    TEST_FIELD_SIZE  (STARTUPINFOW, wShowWindow, 2)
+    TEST_FIELD_ALIGN (STARTUPINFOW, wShowWindow, 2)
+    TEST_FIELD_OFFSET(STARTUPINFOW, wShowWindow, 64)
+    TEST_FIELD_SIZE  (STARTUPINFOW, cbReserved2, 2)
+    TEST_FIELD_ALIGN (STARTUPINFOW, cbReserved2, 2)
+    TEST_FIELD_OFFSET(STARTUPINFOW, cbReserved2, 66)
+    TEST_FIELD_SIZE  (STARTUPINFOW, lpReserved2, 8)
+    TEST_FIELD_ALIGN (STARTUPINFOW, lpReserved2, 8)
+    TEST_FIELD_OFFSET(STARTUPINFOW, lpReserved2, 72)
+    TEST_FIELD_SIZE  (STARTUPINFOW, hStdInput, 8)
+    TEST_FIELD_ALIGN (STARTUPINFOW, hStdInput, 8)
+    TEST_FIELD_OFFSET(STARTUPINFOW, hStdInput, 80)
+    TEST_FIELD_SIZE  (STARTUPINFOW, hStdOutput, 8)
+    TEST_FIELD_ALIGN (STARTUPINFOW, hStdOutput, 8)
+    TEST_FIELD_OFFSET(STARTUPINFOW, hStdOutput, 88)
+    TEST_FIELD_SIZE  (STARTUPINFOW, hStdError, 8)
+    TEST_FIELD_ALIGN (STARTUPINFOW, hStdError, 8)
+    TEST_FIELD_OFFSET(STARTUPINFOW, hStdError, 96)
+}
 
-#else
+static void test_pack_SYSTEMTIME(void)
+{
+    /* SYSTEMTIME */
+    TEST_TYPE_SIZE   (SYSTEMTIME, 16)
+    TEST_TYPE_ALIGN  (SYSTEMTIME, 2)
+    TEST_FIELD_SIZE  (SYSTEMTIME, wYear, 2)
+    TEST_FIELD_ALIGN (SYSTEMTIME, wYear, 2)
+    TEST_FIELD_OFFSET(SYSTEMTIME, wYear, 0)
+    TEST_FIELD_SIZE  (SYSTEMTIME, wMonth, 2)
+    TEST_FIELD_ALIGN (SYSTEMTIME, wMonth, 2)
+    TEST_FIELD_OFFSET(SYSTEMTIME, wMonth, 2)
+    TEST_FIELD_SIZE  (SYSTEMTIME, wDayOfWeek, 2)
+    TEST_FIELD_ALIGN (SYSTEMTIME, wDayOfWeek, 2)
+    TEST_FIELD_OFFSET(SYSTEMTIME, wDayOfWeek, 4)
+    TEST_FIELD_SIZE  (SYSTEMTIME, wDay, 2)
+    TEST_FIELD_ALIGN (SYSTEMTIME, wDay, 2)
+    TEST_FIELD_OFFSET(SYSTEMTIME, wDay, 6)
+    TEST_FIELD_SIZE  (SYSTEMTIME, wHour, 2)
+    TEST_FIELD_ALIGN (SYSTEMTIME, wHour, 2)
+    TEST_FIELD_OFFSET(SYSTEMTIME, wHour, 8)
+    TEST_FIELD_SIZE  (SYSTEMTIME, wMinute, 2)
+    TEST_FIELD_ALIGN (SYSTEMTIME, wMinute, 2)
+    TEST_FIELD_OFFSET(SYSTEMTIME, wMinute, 10)
+    TEST_FIELD_SIZE  (SYSTEMTIME, wSecond, 2)
+    TEST_FIELD_ALIGN (SYSTEMTIME, wSecond, 2)
+    TEST_FIELD_OFFSET(SYSTEMTIME, wSecond, 12)
+    TEST_FIELD_SIZE  (SYSTEMTIME, wMilliseconds, 2)
+    TEST_FIELD_ALIGN (SYSTEMTIME, wMilliseconds, 2)
+    TEST_FIELD_OFFSET(SYSTEMTIME, wMilliseconds, 14)
+}
 
-# define TEST_TYPE_SIZE(type, size)             C_ASSERT(sizeof(type) == size);
+static void test_pack_SYSTEM_INFO(void)
+{
+    /* SYSTEM_INFO */
+}
 
-# ifdef TYPE_ALIGNMENT
-#  define TEST_TYPE_ALIGN(type, align)          C_ASSERT(TYPE_ALIGNMENT(type) == align);
-# else
-#  define TEST_TYPE_ALIGN(type, align)
-# endif
+static void test_pack_SYSTEM_POWER_STATUS(void)
+{
+    /* SYSTEM_POWER_STATUS */
+    TEST_TYPE_SIZE   (SYSTEM_POWER_STATUS, 12)
+    TEST_TYPE_ALIGN  (SYSTEM_POWER_STATUS, 4)
+    TEST_FIELD_SIZE  (SYSTEM_POWER_STATUS, ACLineStatus, 1)
+    TEST_FIELD_ALIGN (SYSTEM_POWER_STATUS, ACLineStatus, 1)
+    TEST_FIELD_OFFSET(SYSTEM_POWER_STATUS, ACLineStatus, 0)
+    TEST_FIELD_SIZE  (SYSTEM_POWER_STATUS, BatteryFlag, 1)
+    TEST_FIELD_ALIGN (SYSTEM_POWER_STATUS, BatteryFlag, 1)
+    TEST_FIELD_OFFSET(SYSTEM_POWER_STATUS, BatteryFlag, 1)
+    TEST_FIELD_SIZE  (SYSTEM_POWER_STATUS, BatteryLifePercent, 1)
+    TEST_FIELD_ALIGN (SYSTEM_POWER_STATUS, BatteryLifePercent, 1)
+    TEST_FIELD_OFFSET(SYSTEM_POWER_STATUS, BatteryLifePercent, 2)
+    TEST_FIELD_SIZE  (SYSTEM_POWER_STATUS, Reserved1, 1)
+    TEST_FIELD_ALIGN (SYSTEM_POWER_STATUS, Reserved1, 1)
+    TEST_FIELD_OFFSET(SYSTEM_POWER_STATUS, Reserved1, 3)
+    TEST_FIELD_SIZE  (SYSTEM_POWER_STATUS, BatteryLifeTime, 4)
+    TEST_FIELD_ALIGN (SYSTEM_POWER_STATUS, BatteryLifeTime, 4)
+    TEST_FIELD_OFFSET(SYSTEM_POWER_STATUS, BatteryLifeTime, 4)
+    TEST_FIELD_SIZE  (SYSTEM_POWER_STATUS, BatteryFullLifeTime, 4)
+    TEST_FIELD_ALIGN (SYSTEM_POWER_STATUS, BatteryFullLifeTime, 4)
+    TEST_FIELD_OFFSET(SYSTEM_POWER_STATUS, BatteryFullLifeTime, 8)
+}
 
-# ifdef _TYPE_ALIGNMENT
-#  define TEST_TARGET_ALIGN(type, align)        C_ASSERT(_TYPE_ALIGNMENT(*(type)0) == align);
-#  define TEST_FIELD_ALIGN(type, field, align)  C_ASSERT(_TYPE_ALIGNMENT(((type*)0)->field) == align);
-# else
-#  define TEST_TARGET_ALIGN(type, align)
-#  define TEST_FIELD_ALIGN(type, field, align)
-# endif
+static void test_pack_TIME_ZONE_INFORMATION(void)
+{
+    /* TIME_ZONE_INFORMATION */
+    TEST_TYPE_SIZE   (TIME_ZONE_INFORMATION, 172)
+    TEST_TYPE_ALIGN  (TIME_ZONE_INFORMATION, 4)
+    TEST_FIELD_SIZE  (TIME_ZONE_INFORMATION, Bias, 4)
+    TEST_FIELD_ALIGN (TIME_ZONE_INFORMATION, Bias, 4)
+    TEST_FIELD_OFFSET(TIME_ZONE_INFORMATION, Bias, 0)
+    TEST_FIELD_SIZE  (TIME_ZONE_INFORMATION, StandardName, 64)
+    TEST_FIELD_ALIGN (TIME_ZONE_INFORMATION, StandardName, 2)
+    TEST_FIELD_OFFSET(TIME_ZONE_INFORMATION, StandardName, 4)
+    TEST_FIELD_SIZE  (TIME_ZONE_INFORMATION, StandardDate, 16)
+    TEST_FIELD_ALIGN (TIME_ZONE_INFORMATION, StandardDate, 2)
+    TEST_FIELD_OFFSET(TIME_ZONE_INFORMATION, StandardDate, 68)
+    TEST_FIELD_SIZE  (TIME_ZONE_INFORMATION, StandardBias, 4)
+    TEST_FIELD_ALIGN (TIME_ZONE_INFORMATION, StandardBias, 4)
+    TEST_FIELD_OFFSET(TIME_ZONE_INFORMATION, StandardBias, 84)
+    TEST_FIELD_SIZE  (TIME_ZONE_INFORMATION, DaylightName, 64)
+    TEST_FIELD_ALIGN (TIME_ZONE_INFORMATION, DaylightName, 2)
+    TEST_FIELD_OFFSET(TIME_ZONE_INFORMATION, DaylightName, 88)
+    TEST_FIELD_SIZE  (TIME_ZONE_INFORMATION, DaylightDate, 16)
+    TEST_FIELD_ALIGN (TIME_ZONE_INFORMATION, DaylightDate, 2)
+    TEST_FIELD_OFFSET(TIME_ZONE_INFORMATION, DaylightDate, 152)
+    TEST_FIELD_SIZE  (TIME_ZONE_INFORMATION, DaylightBias, 4)
+    TEST_FIELD_ALIGN (TIME_ZONE_INFORMATION, DaylightBias, 4)
+    TEST_FIELD_OFFSET(TIME_ZONE_INFORMATION, DaylightBias, 168)
+}
 
-# define TEST_FIELD_OFFSET(type, field, offset) C_ASSERT(FIELD_OFFSET(type, field) == offset);
+static void test_pack_UNLOAD_DLL_DEBUG_INFO(void)
+{
+    /* UNLOAD_DLL_DEBUG_INFO */
+    TEST_TYPE_SIZE   (UNLOAD_DLL_DEBUG_INFO, 8)
+    TEST_TYPE_ALIGN  (UNLOAD_DLL_DEBUG_INFO, 8)
+    TEST_FIELD_SIZE  (UNLOAD_DLL_DEBUG_INFO, lpBaseOfDll, 8)
+    TEST_FIELD_ALIGN (UNLOAD_DLL_DEBUG_INFO, lpBaseOfDll, 8)
+    TEST_FIELD_OFFSET(UNLOAD_DLL_DEBUG_INFO, lpBaseOfDll, 0)
+}
 
-#endif
+static void test_pack_WAITORTIMERCALLBACK(void)
+{
+    /* WAITORTIMERCALLBACK */
+    TEST_TYPE_SIZE   (WAITORTIMERCALLBACK, 8)
+    TEST_TYPE_ALIGN  (WAITORTIMERCALLBACK, 8)
+}
 
-#define TEST_TARGET_SIZE(type, size)            TEST_TYPE_SIZE(*(type)0, size)
-#define TEST_FIELD_SIZE(type, field, size)      TEST_TYPE_SIZE((((type*)0)->field), size)
-#define TEST_TYPE_SIGNED(type)                  C_ASSERT((type) -1 < 0);
-#define TEST_TYPE_UNSIGNED(type)                C_ASSERT((type) -1 > 0);
+static void test_pack_WIN32_FILE_ATTRIBUTE_DATA(void)
+{
+    /* WIN32_FILE_ATTRIBUTE_DATA */
+    TEST_TYPE_SIZE   (WIN32_FILE_ATTRIBUTE_DATA, 36)
+    TEST_TYPE_ALIGN  (WIN32_FILE_ATTRIBUTE_DATA, 4)
+    TEST_FIELD_SIZE  (WIN32_FILE_ATTRIBUTE_DATA, dwFileAttributes, 4)
+    TEST_FIELD_ALIGN (WIN32_FILE_ATTRIBUTE_DATA, dwFileAttributes, 4)
+    TEST_FIELD_OFFSET(WIN32_FILE_ATTRIBUTE_DATA, dwFileAttributes, 0)
+    TEST_FIELD_SIZE  (WIN32_FILE_ATTRIBUTE_DATA, ftCreationTime, 8)
+    TEST_FIELD_ALIGN (WIN32_FILE_ATTRIBUTE_DATA, ftCreationTime, 4)
+    TEST_FIELD_OFFSET(WIN32_FILE_ATTRIBUTE_DATA, ftCreationTime, 4)
+    TEST_FIELD_SIZE  (WIN32_FILE_ATTRIBUTE_DATA, ftLastAccessTime, 8)
+    TEST_FIELD_ALIGN (WIN32_FILE_ATTRIBUTE_DATA, ftLastAccessTime, 4)
+    TEST_FIELD_OFFSET(WIN32_FILE_ATTRIBUTE_DATA, ftLastAccessTime, 12)
+    TEST_FIELD_SIZE  (WIN32_FILE_ATTRIBUTE_DATA, ftLastWriteTime, 8)
+    TEST_FIELD_ALIGN (WIN32_FILE_ATTRIBUTE_DATA, ftLastWriteTime, 4)
+    TEST_FIELD_OFFSET(WIN32_FILE_ATTRIBUTE_DATA, ftLastWriteTime, 20)
+    TEST_FIELD_SIZE  (WIN32_FILE_ATTRIBUTE_DATA, nFileSizeHigh, 4)
+    TEST_FIELD_ALIGN (WIN32_FILE_ATTRIBUTE_DATA, nFileSizeHigh, 4)
+    TEST_FIELD_OFFSET(WIN32_FILE_ATTRIBUTE_DATA, nFileSizeHigh, 28)
+    TEST_FIELD_SIZE  (WIN32_FILE_ATTRIBUTE_DATA, nFileSizeLow, 4)
+    TEST_FIELD_ALIGN (WIN32_FILE_ATTRIBUTE_DATA, nFileSizeLow, 4)
+    TEST_FIELD_OFFSET(WIN32_FILE_ATTRIBUTE_DATA, nFileSizeLow, 32)
+}
+
+static void test_pack_WIN32_FIND_DATAA(void)
+{
+    /* WIN32_FIND_DATAA */
+    TEST_TYPE_SIZE   (WIN32_FIND_DATAA, 320)
+    TEST_TYPE_ALIGN  (WIN32_FIND_DATAA, 4)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAA, dwFileAttributes, 4)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAA, dwFileAttributes, 4)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAA, dwFileAttributes, 0)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAA, ftCreationTime, 8)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAA, ftCreationTime, 4)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAA, ftCreationTime, 4)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAA, ftLastAccessTime, 8)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAA, ftLastAccessTime, 4)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAA, ftLastAccessTime, 12)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAA, ftLastWriteTime, 8)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAA, ftLastWriteTime, 4)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAA, ftLastWriteTime, 20)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAA, nFileSizeHigh, 4)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAA, nFileSizeHigh, 4)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAA, nFileSizeHigh, 28)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAA, nFileSizeLow, 4)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAA, nFileSizeLow, 4)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAA, nFileSizeLow, 32)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAA, dwReserved0, 4)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAA, dwReserved0, 4)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAA, dwReserved0, 36)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAA, dwReserved1, 4)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAA, dwReserved1, 4)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAA, dwReserved1, 40)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAA, cFileName, 260)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAA, cFileName, 1)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAA, cFileName, 44)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAA, cAlternateFileName, 14)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAA, cAlternateFileName, 1)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAA, cAlternateFileName, 304)
+}
+
+static void test_pack_WIN32_FIND_DATAW(void)
+{
+    /* WIN32_FIND_DATAW */
+    TEST_TYPE_SIZE   (WIN32_FIND_DATAW, 592)
+    TEST_TYPE_ALIGN  (WIN32_FIND_DATAW, 4)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAW, dwFileAttributes, 4)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAW, dwFileAttributes, 4)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAW, dwFileAttributes, 0)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAW, ftCreationTime, 8)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAW, ftCreationTime, 4)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAW, ftCreationTime, 4)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAW, ftLastAccessTime, 8)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAW, ftLastAccessTime, 4)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAW, ftLastAccessTime, 12)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAW, ftLastWriteTime, 8)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAW, ftLastWriteTime, 4)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAW, ftLastWriteTime, 20)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAW, nFileSizeHigh, 4)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAW, nFileSizeHigh, 4)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAW, nFileSizeHigh, 28)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAW, nFileSizeLow, 4)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAW, nFileSizeLow, 4)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAW, nFileSizeLow, 32)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAW, dwReserved0, 4)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAW, dwReserved0, 4)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAW, dwReserved0, 36)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAW, dwReserved1, 4)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAW, dwReserved1, 4)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAW, dwReserved1, 40)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAW, cFileName, 520)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAW, cFileName, 2)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAW, cFileName, 44)
+    TEST_FIELD_SIZE  (WIN32_FIND_DATAW, cAlternateFileName, 28)
+    TEST_FIELD_ALIGN (WIN32_FIND_DATAW, cAlternateFileName, 2)
+    TEST_FIELD_OFFSET(WIN32_FIND_DATAW, cAlternateFileName, 564)
+}
+
+static void test_pack_WIN32_STREAM_ID(void)
+{
+    /* WIN32_STREAM_ID (pack 8) */
+    TEST_TYPE_SIZE   (WIN32_STREAM_ID, 24)
+    TEST_TYPE_ALIGN  (WIN32_STREAM_ID, 8)
+    TEST_FIELD_SIZE  (WIN32_STREAM_ID, dwStreamId, 4)
+    TEST_FIELD_ALIGN (WIN32_STREAM_ID, dwStreamId, 4)
+    TEST_FIELD_OFFSET(WIN32_STREAM_ID, dwStreamId, 0)
+    TEST_FIELD_SIZE  (WIN32_STREAM_ID, dwStreamAttributes, 4)
+    TEST_FIELD_ALIGN (WIN32_STREAM_ID, dwStreamAttributes, 4)
+    TEST_FIELD_OFFSET(WIN32_STREAM_ID, dwStreamAttributes, 4)
+    TEST_FIELD_SIZE  (WIN32_STREAM_ID, Size, 8)
+    TEST_FIELD_ALIGN (WIN32_STREAM_ID, Size, 8)
+    TEST_FIELD_OFFSET(WIN32_STREAM_ID, Size, 8)
+    TEST_FIELD_SIZE  (WIN32_STREAM_ID, dwStreamNameSize, 4)
+    TEST_FIELD_ALIGN (WIN32_STREAM_ID, dwStreamNameSize, 4)
+    TEST_FIELD_OFFSET(WIN32_STREAM_ID, dwStreamNameSize, 16)
+    TEST_FIELD_SIZE  (WIN32_STREAM_ID, cStreamName, 2)
+    TEST_FIELD_ALIGN (WIN32_STREAM_ID, cStreamName, 2)
+    TEST_FIELD_OFFSET(WIN32_STREAM_ID, cStreamName, 20)
+}
 
+#else /* _WIN64 */
 
 static void test_pack_LPOSVERSIONINFOA(void)
 {
@@ -125,7 +1972,7 @@ static void test_pack_LPOSVERSIONINFOW(void)
 
 static void test_pack_OSVERSIONINFOA(void)
 {
-    /* OSVERSIONINFOA (pack 4) */
+    /* OSVERSIONINFOA */
     TEST_TYPE_SIZE   (OSVERSIONINFOA, 148)
     TEST_TYPE_ALIGN  (OSVERSIONINFOA, 4)
     TEST_FIELD_SIZE  (OSVERSIONINFOA, dwOSVersionInfoSize, 4)
@@ -150,7 +1997,7 @@ static void test_pack_OSVERSIONINFOA(void)
 
 static void test_pack_OSVERSIONINFOEXA(void)
 {
-    /* OSVERSIONINFOEXA (pack 4) */
+    /* OSVERSIONINFOEXA */
     TEST_TYPE_SIZE   (OSVERSIONINFOEXA, 156)
     TEST_TYPE_ALIGN  (OSVERSIONINFOEXA, 4)
     TEST_FIELD_SIZE  (OSVERSIONINFOEXA, dwOSVersionInfoSize, 4)
@@ -190,7 +2037,7 @@ static void test_pack_OSVERSIONINFOEXA(void)
 
 static void test_pack_OSVERSIONINFOEXW(void)
 {
-    /* OSVERSIONINFOEXW (pack 4) */
+    /* OSVERSIONINFOEXW */
     TEST_TYPE_SIZE   (OSVERSIONINFOEXW, 284)
     TEST_TYPE_ALIGN  (OSVERSIONINFOEXW, 4)
     TEST_FIELD_SIZE  (OSVERSIONINFOEXW, dwOSVersionInfoSize, 4)
@@ -230,7 +2077,7 @@ static void test_pack_OSVERSIONINFOEXW(void)
 
 static void test_pack_OSVERSIONINFOW(void)
 {
-    /* OSVERSIONINFOW (pack 4) */
+    /* OSVERSIONINFOW */
     TEST_TYPE_SIZE   (OSVERSIONINFOW, 276)
     TEST_TYPE_ALIGN  (OSVERSIONINFOW, 4)
     TEST_FIELD_SIZE  (OSVERSIONINFOW, dwOSVersionInfoSize, 4)
@@ -312,7 +2159,7 @@ static void test_pack_PHKEY(void)
 
 static void test_pack_ACTCTXA(void)
 {
-    /* ACTCTXA (pack 4) */
+    /* ACTCTXA */
     TEST_TYPE_SIZE   (ACTCTXA, 32)
     TEST_TYPE_ALIGN  (ACTCTXA, 4)
     TEST_FIELD_SIZE  (ACTCTXA, cbSize, 4)
@@ -346,7 +2193,7 @@ static void test_pack_ACTCTXA(void)
 
 static void test_pack_ACTCTXW(void)
 {
-    /* ACTCTXW (pack 4) */
+    /* ACTCTXW */
     TEST_TYPE_SIZE   (ACTCTXW, 32)
     TEST_TYPE_ALIGN  (ACTCTXW, 4)
     TEST_FIELD_SIZE  (ACTCTXW, cbSize, 4)
@@ -380,7 +2227,7 @@ static void test_pack_ACTCTXW(void)
 
 static void test_pack_ACTCTX_SECTION_KEYED_DATA(void)
 {
-    /* ACTCTX_SECTION_KEYED_DATA (pack 4) */
+    /* ACTCTX_SECTION_KEYED_DATA */
     TEST_TYPE_SIZE   (ACTCTX_SECTION_KEYED_DATA, 64)
     TEST_TYPE_ALIGN  (ACTCTX_SECTION_KEYED_DATA, 4)
     TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA, cbSize, 4)
@@ -423,7 +2270,7 @@ static void test_pack_ACTCTX_SECTION_KEYED_DATA(void)
 
 static void test_pack_ACTCTX_SECTION_KEYED_DATA_2600(void)
 {
-    /* ACTCTX_SECTION_KEYED_DATA_2600 (pack 4) */
+    /* ACTCTX_SECTION_KEYED_DATA_2600 */
     TEST_TYPE_SIZE   (ACTCTX_SECTION_KEYED_DATA_2600, 40)
     TEST_TYPE_ALIGN  (ACTCTX_SECTION_KEYED_DATA_2600, 4)
     TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_2600, cbSize, 4)
@@ -460,7 +2307,7 @@ static void test_pack_ACTCTX_SECTION_KEYED_DATA_2600(void)
 
 static void test_pack_ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA(void)
 {
-    /* ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA (pack 4) */
+    /* ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA */
     TEST_TYPE_SIZE   (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 20)
     TEST_TYPE_ALIGN  (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 4)
     TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpInformation, 4)
@@ -482,7 +2329,7 @@ static void test_pack_ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA(void)
 
 static void test_pack_ACTIVATION_CONTEXT_BASIC_INFORMATION(void)
 {
-    /* ACTIVATION_CONTEXT_BASIC_INFORMATION (pack 4) */
+    /* ACTIVATION_CONTEXT_BASIC_INFORMATION */
     TEST_TYPE_SIZE   (ACTIVATION_CONTEXT_BASIC_INFORMATION, 8)
     TEST_TYPE_ALIGN  (ACTIVATION_CONTEXT_BASIC_INFORMATION, 4)
     TEST_FIELD_SIZE  (ACTIVATION_CONTEXT_BASIC_INFORMATION, hActCtx, 4)
@@ -495,7 +2342,7 @@ static void test_pack_ACTIVATION_CONTEXT_BASIC_INFORMATION(void)
 
 static void test_pack_BY_HANDLE_FILE_INFORMATION(void)
 {
-    /* BY_HANDLE_FILE_INFORMATION (pack 4) */
+    /* BY_HANDLE_FILE_INFORMATION */
     TEST_TYPE_SIZE   (BY_HANDLE_FILE_INFORMATION, 52)
     TEST_TYPE_ALIGN  (BY_HANDLE_FILE_INFORMATION, 4)
     TEST_FIELD_SIZE  (BY_HANDLE_FILE_INFORMATION, dwFileAttributes, 4)
@@ -532,7 +2379,7 @@ static void test_pack_BY_HANDLE_FILE_INFORMATION(void)
 
 static void test_pack_COMMCONFIG(void)
 {
-    /* COMMCONFIG (pack 4) */
+    /* COMMCONFIG */
     TEST_TYPE_SIZE   (COMMCONFIG, 52)
     TEST_TYPE_ALIGN  (COMMCONFIG, 4)
     TEST_FIELD_SIZE  (COMMCONFIG, dwSize, 4)
@@ -563,7 +2410,7 @@ static void test_pack_COMMCONFIG(void)
 
 static void test_pack_COMMPROP(void)
 {
-    /* COMMPROP (pack 4) */
+    /* COMMPROP */
     TEST_TYPE_SIZE   (COMMPROP, 64)
     TEST_TYPE_ALIGN  (COMMPROP, 4)
     TEST_FIELD_SIZE  (COMMPROP, wPacketLength, 2)
@@ -624,7 +2471,7 @@ static void test_pack_COMMPROP(void)
 
 static void test_pack_COMMTIMEOUTS(void)
 {
-    /* COMMTIMEOUTS (pack 4) */
+    /* COMMTIMEOUTS */
     TEST_TYPE_SIZE   (COMMTIMEOUTS, 20)
     TEST_TYPE_ALIGN  (COMMTIMEOUTS, 4)
     TEST_FIELD_SIZE  (COMMTIMEOUTS, ReadIntervalTimeout, 4)
@@ -646,7 +2493,7 @@ static void test_pack_COMMTIMEOUTS(void)
 
 static void test_pack_COMSTAT(void)
 {
-    /* COMSTAT (pack 4) */
+    /* COMSTAT */
     TEST_TYPE_SIZE   (COMSTAT, 12)
     TEST_TYPE_ALIGN  (COMSTAT, 4)
     TEST_FIELD_SIZE  (COMSTAT, cbInQue, 4)
@@ -659,7 +2506,7 @@ static void test_pack_COMSTAT(void)
 
 static void test_pack_CREATE_PROCESS_DEBUG_INFO(void)
 {
-    /* CREATE_PROCESS_DEBUG_INFO (pack 4) */
+    /* CREATE_PROCESS_DEBUG_INFO */
     TEST_TYPE_SIZE   (CREATE_PROCESS_DEBUG_INFO, 40)
     TEST_TYPE_ALIGN  (CREATE_PROCESS_DEBUG_INFO, 4)
     TEST_FIELD_SIZE  (CREATE_PROCESS_DEBUG_INFO, hFile, 4)
@@ -696,7 +2543,7 @@ static void test_pack_CREATE_PROCESS_DEBUG_INFO(void)
 
 static void test_pack_CREATE_THREAD_DEBUG_INFO(void)
 {
-    /* CREATE_THREAD_DEBUG_INFO (pack 4) */
+    /* CREATE_THREAD_DEBUG_INFO */
     TEST_TYPE_SIZE   (CREATE_THREAD_DEBUG_INFO, 12)
     TEST_TYPE_ALIGN  (CREATE_THREAD_DEBUG_INFO, 4)
     TEST_FIELD_SIZE  (CREATE_THREAD_DEBUG_INFO, hThread, 4)
@@ -724,7 +2571,7 @@ static void test_pack_CRITICAL_SECTION_DEBUG(void)
 
 static void test_pack_DCB(void)
 {
-    /* DCB (pack 4) */
+    /* DCB */
     TEST_TYPE_SIZE   (DCB, 28)
     TEST_TYPE_ALIGN  (DCB, 4)
     TEST_FIELD_SIZE  (DCB, DCBlength, 4)
@@ -773,7 +2620,7 @@ static void test_pack_DCB(void)
 
 static void test_pack_DEBUG_EVENT(void)
 {
-    /* DEBUG_EVENT (pack 4) */
+    /* DEBUG_EVENT */
     TEST_FIELD_SIZE  (DEBUG_EVENT, dwDebugEventCode, 4)
     TEST_FIELD_ALIGN (DEBUG_EVENT, dwDebugEventCode, 4)
     TEST_FIELD_OFFSET(DEBUG_EVENT, dwDebugEventCode, 0)
@@ -829,7 +2676,7 @@ static void test_pack_ENUMRESTYPEPROCW(void)
 
 static void test_pack_EXCEPTION_DEBUG_INFO(void)
 {
-    /* EXCEPTION_DEBUG_INFO (pack 4) */
+    /* EXCEPTION_DEBUG_INFO */
     TEST_TYPE_SIZE   (EXCEPTION_DEBUG_INFO, 84)
     TEST_TYPE_ALIGN  (EXCEPTION_DEBUG_INFO, 4)
     TEST_FIELD_SIZE  (EXCEPTION_DEBUG_INFO, ExceptionRecord, 80)
@@ -842,7 +2689,7 @@ static void test_pack_EXCEPTION_DEBUG_INFO(void)
 
 static void test_pack_EXIT_PROCESS_DEBUG_INFO(void)
 {
-    /* EXIT_PROCESS_DEBUG_INFO (pack 4) */
+    /* EXIT_PROCESS_DEBUG_INFO */
     TEST_TYPE_SIZE   (EXIT_PROCESS_DEBUG_INFO, 4)
     TEST_TYPE_ALIGN  (EXIT_PROCESS_DEBUG_INFO, 4)
     TEST_FIELD_SIZE  (EXIT_PROCESS_DEBUG_INFO, dwExitCode, 4)
@@ -852,7 +2699,7 @@ static void test_pack_EXIT_PROCESS_DEBUG_INFO(void)
 
 static void test_pack_EXIT_THREAD_DEBUG_INFO(void)
 {
-    /* EXIT_THREAD_DEBUG_INFO (pack 4) */
+    /* EXIT_THREAD_DEBUG_INFO */
     TEST_TYPE_SIZE   (EXIT_THREAD_DEBUG_INFO, 4)
     TEST_TYPE_ALIGN  (EXIT_THREAD_DEBUG_INFO, 4)
     TEST_FIELD_SIZE  (EXIT_THREAD_DEBUG_INFO, dwExitCode, 4)
@@ -862,7 +2709,7 @@ static void test_pack_EXIT_THREAD_DEBUG_INFO(void)
 
 static void test_pack_HW_PROFILE_INFOA(void)
 {
-    /* HW_PROFILE_INFOA (pack 4) */
+    /* HW_PROFILE_INFOA */
     TEST_TYPE_SIZE   (HW_PROFILE_INFOA, 124)
     TEST_TYPE_ALIGN  (HW_PROFILE_INFOA, 4)
     TEST_FIELD_SIZE  (HW_PROFILE_INFOA, dwDockInfo, 4)
@@ -878,7 +2725,7 @@ static void test_pack_HW_PROFILE_INFOA(void)
 
 static void test_pack_HW_PROFILE_INFOW(void)
 {
-    /* HW_PROFILE_INFOW (pack 4) */
+    /* HW_PROFILE_INFOW */
     TEST_TYPE_SIZE   (HW_PROFILE_INFOW, 244)
     TEST_TYPE_ALIGN  (HW_PROFILE_INFOW, 4)
     TEST_FIELD_SIZE  (HW_PROFILE_INFOW, dwDockInfo, 4)
@@ -894,7 +2741,7 @@ static void test_pack_HW_PROFILE_INFOW(void)
 
 static void test_pack_LOAD_DLL_DEBUG_INFO(void)
 {
-    /* LOAD_DLL_DEBUG_INFO (pack 4) */
+    /* LOAD_DLL_DEBUG_INFO */
     TEST_TYPE_SIZE   (LOAD_DLL_DEBUG_INFO, 24)
     TEST_TYPE_ALIGN  (LOAD_DLL_DEBUG_INFO, 4)
     TEST_FIELD_SIZE  (LOAD_DLL_DEBUG_INFO, hFile, 4)
@@ -1201,7 +3048,7 @@ static void test_pack_LPWIN32_STREAM_ID(void)
 
 static void test_pack_MEMORYSTATUS(void)
 {
-    /* MEMORYSTATUS (pack 4) */
+    /* MEMORYSTATUS */
     TEST_TYPE_SIZE   (MEMORYSTATUS, 32)
     TEST_TYPE_ALIGN  (MEMORYSTATUS, 4)
     TEST_FIELD_SIZE  (MEMORYSTATUS, dwLength, 4)
@@ -1266,7 +3113,7 @@ static void test_pack_MEMORYSTATUSEX(void)
 
 static void test_pack_OFSTRUCT(void)
 {
-    /* OFSTRUCT (pack 4) */
+    /* OFSTRUCT */
     TEST_TYPE_SIZE   (OFSTRUCT, 136)
     TEST_TYPE_ALIGN  (OFSTRUCT, 2)
     TEST_FIELD_SIZE  (OFSTRUCT, cBytes, 1)
@@ -1291,7 +3138,7 @@ static void test_pack_OFSTRUCT(void)
 
 static void test_pack_OUTPUT_DEBUG_STRING_INFO(void)
 {
-    /* OUTPUT_DEBUG_STRING_INFO (pack 4) */
+    /* OUTPUT_DEBUG_STRING_INFO */
     TEST_TYPE_SIZE   (OUTPUT_DEBUG_STRING_INFO, 8)
     TEST_TYPE_ALIGN  (OUTPUT_DEBUG_STRING_INFO, 4)
     TEST_FIELD_SIZE  (OUTPUT_DEBUG_STRING_INFO, lpDebugStringData, 4)
@@ -1475,7 +3322,7 @@ static void test_pack_PQUERYACTCTXW_FUNC(void)
 
 static void test_pack_PROCESS_HEAP_ENTRY(void)
 {
-    /* PROCESS_HEAP_ENTRY (pack 4) */
+    /* PROCESS_HEAP_ENTRY */
     TEST_FIELD_SIZE  (PROCESS_HEAP_ENTRY, lpData, 4)
     TEST_FIELD_ALIGN (PROCESS_HEAP_ENTRY, lpData, 4)
     TEST_FIELD_OFFSET(PROCESS_HEAP_ENTRY, lpData, 0)
@@ -1495,7 +3342,7 @@ static void test_pack_PROCESS_HEAP_ENTRY(void)
 
 static void test_pack_PROCESS_INFORMATION(void)
 {
-    /* PROCESS_INFORMATION (pack 4) */
+    /* PROCESS_INFORMATION */
     TEST_TYPE_SIZE   (PROCESS_INFORMATION, 16)
     TEST_TYPE_ALIGN  (PROCESS_INFORMATION, 4)
     TEST_FIELD_SIZE  (PROCESS_INFORMATION, hProcess, 4)
@@ -1566,7 +3413,7 @@ static void test_pack_PWIN32_FIND_DATAW(void)
 
 static void test_pack_RIP_INFO(void)
 {
-    /* RIP_INFO (pack 4) */
+    /* RIP_INFO */
     TEST_TYPE_SIZE   (RIP_INFO, 8)
     TEST_TYPE_ALIGN  (RIP_INFO, 4)
     TEST_FIELD_SIZE  (RIP_INFO, dwError, 4)
@@ -1579,7 +3426,7 @@ static void test_pack_RIP_INFO(void)
 
 static void test_pack_SECURITY_ATTRIBUTES(void)
 {
-    /* SECURITY_ATTRIBUTES (pack 4) */
+    /* SECURITY_ATTRIBUTES */
     TEST_TYPE_SIZE   (SECURITY_ATTRIBUTES, 12)
     TEST_TYPE_ALIGN  (SECURITY_ATTRIBUTES, 4)
     TEST_FIELD_SIZE  (SECURITY_ATTRIBUTES, nLength, 4)
@@ -1595,7 +3442,7 @@ static void test_pack_SECURITY_ATTRIBUTES(void)
 
 static void test_pack_STARTUPINFOA(void)
 {
-    /* STARTUPINFOA (pack 4) */
+    /* STARTUPINFOA */
     TEST_TYPE_SIZE   (STARTUPINFOA, 68)
     TEST_TYPE_ALIGN  (STARTUPINFOA, 4)
     TEST_FIELD_SIZE  (STARTUPINFOA, cb, 4)
@@ -1656,7 +3503,7 @@ static void test_pack_STARTUPINFOA(void)
 
 static void test_pack_STARTUPINFOW(void)
 {
-    /* STARTUPINFOW (pack 4) */
+    /* STARTUPINFOW */
     TEST_TYPE_SIZE   (STARTUPINFOW, 68)
     TEST_TYPE_ALIGN  (STARTUPINFOW, 4)
     TEST_FIELD_SIZE  (STARTUPINFOW, cb, 4)
@@ -1717,7 +3564,7 @@ static void test_pack_STARTUPINFOW(void)
 
 static void test_pack_SYSTEMTIME(void)
 {
-    /* SYSTEMTIME (pack 4) */
+    /* SYSTEMTIME */
     TEST_TYPE_SIZE   (SYSTEMTIME, 16)
     TEST_TYPE_ALIGN  (SYSTEMTIME, 2)
     TEST_FIELD_SIZE  (SYSTEMTIME, wYear, 2)
@@ -1748,12 +3595,12 @@ static void test_pack_SYSTEMTIME(void)
 
 static void test_pack_SYSTEM_INFO(void)
 {
-    /* SYSTEM_INFO (pack 4) */
+    /* SYSTEM_INFO */
 }
 
 static void test_pack_SYSTEM_POWER_STATUS(void)
 {
-    /* SYSTEM_POWER_STATUS (pack 4) */
+    /* SYSTEM_POWER_STATUS */
     TEST_TYPE_SIZE   (SYSTEM_POWER_STATUS, 12)
     TEST_TYPE_ALIGN  (SYSTEM_POWER_STATUS, 4)
     TEST_FIELD_SIZE  (SYSTEM_POWER_STATUS, ACLineStatus, 1)
@@ -1778,7 +3625,7 @@ static void test_pack_SYSTEM_POWER_STATUS(void)
 
 static void test_pack_TIME_ZONE_INFORMATION(void)
 {
-    /* TIME_ZONE_INFORMATION (pack 4) */
+    /* TIME_ZONE_INFORMATION */
     TEST_TYPE_SIZE   (TIME_ZONE_INFORMATION, 172)
     TEST_TYPE_ALIGN  (TIME_ZONE_INFORMATION, 4)
     TEST_FIELD_SIZE  (TIME_ZONE_INFORMATION, Bias, 4)
@@ -1806,7 +3653,7 @@ static void test_pack_TIME_ZONE_INFORMATION(void)
 
 static void test_pack_UNLOAD_DLL_DEBUG_INFO(void)
 {
-    /* UNLOAD_DLL_DEBUG_INFO (pack 4) */
+    /* UNLOAD_DLL_DEBUG_INFO */
     TEST_TYPE_SIZE   (UNLOAD_DLL_DEBUG_INFO, 4)
     TEST_TYPE_ALIGN  (UNLOAD_DLL_DEBUG_INFO, 4)
     TEST_FIELD_SIZE  (UNLOAD_DLL_DEBUG_INFO, lpBaseOfDll, 4)
@@ -1823,7 +3670,7 @@ static void test_pack_WAITORTIMERCALLBACK(void)
 
 static void test_pack_WIN32_FILE_ATTRIBUTE_DATA(void)
 {
-    /* WIN32_FILE_ATTRIBUTE_DATA (pack 4) */
+    /* WIN32_FILE_ATTRIBUTE_DATA */
     TEST_TYPE_SIZE   (WIN32_FILE_ATTRIBUTE_DATA, 36)
     TEST_TYPE_ALIGN  (WIN32_FILE_ATTRIBUTE_DATA, 4)
     TEST_FIELD_SIZE  (WIN32_FILE_ATTRIBUTE_DATA, dwFileAttributes, 4)
@@ -1848,7 +3695,7 @@ static void test_pack_WIN32_FILE_ATTRIBUTE_DATA(void)
 
 static void test_pack_WIN32_FIND_DATAA(void)
 {
-    /* WIN32_FIND_DATAA (pack 4) */
+    /* WIN32_FIND_DATAA */
     TEST_TYPE_SIZE   (WIN32_FIND_DATAA, 320)
     TEST_TYPE_ALIGN  (WIN32_FIND_DATAA, 4)
     TEST_FIELD_SIZE  (WIN32_FIND_DATAA, dwFileAttributes, 4)
@@ -1885,7 +3732,7 @@ static void test_pack_WIN32_FIND_DATAA(void)
 
 static void test_pack_WIN32_FIND_DATAW(void)
 {
-    /* WIN32_FIND_DATAW (pack 4) */
+    /* WIN32_FIND_DATAW */
     TEST_TYPE_SIZE   (WIN32_FIND_DATAW, 592)
     TEST_TYPE_ALIGN  (WIN32_FIND_DATAW, 4)
     TEST_FIELD_SIZE  (WIN32_FIND_DATAW, dwFileAttributes, 4)
@@ -1942,6 +3789,8 @@ static void test_pack_WIN32_STREAM_ID(void)
     TEST_FIELD_OFFSET(WIN32_STREAM_ID, cStreamName, 20)
 }
 
+#endif /* _WIN64 */
+
 static void test_pack(void)
 {
     test_pack_ACTCTXA();
@@ -2072,9 +3921,5 @@ static void test_pack(void)
 
 START_TEST(generated)
 {
-#ifdef _WIN64
-    ok(0, "The type size / alignment tests don't support Win64 yet\n");
-#else
     test_pack();
-#endif
 }
index 7c755b9..1d49def 100755 (executable)
@@ -30,7 +30,6 @@
 
 #include "wine/test.h"
 
-
 #define MAGIC_DEAD 0xdeadbeef
 
 /* some undocumented flags (names are made up) */
@@ -531,7 +530,7 @@ static void test_heap_checks( DWORD flags )
             ok( p[15] == 0, "wrong padding %x\n", p[15] );
         }
     }
-    else skip( "realloc in place failed\n ");
+    else skip( "realloc in place failed\n");
 
     ret = HeapFree( GetProcessHeap(), 0, p );
     ok( ret, "HeapFree failed\n" );
index be01948..8232fdf 100755 (executable)
@@ -1017,7 +1017,7 @@ static void test_GetLongPathNameA(void)
     /* Test a normal path with a small buffer size */
     memset(temppath, 0, MAX_PATH);
     length = pGetLongPathNameA(tempfile, temppath, 4);
-    /* We have a failure so length should be the minumum plus the terminating '0'  */
+    /* We have a failure so length should be the minimum plus the terminating '0'  */
     ok(length >= lstrlen(tempfile) + 1, "Wrong length\n");
     ok(temppath[0] == 0, "Buffer should not have been touched\n");
 
index afa6759..4c4e764 100755 (executable)
@@ -814,9 +814,19 @@ static VOID test_thread_processor(void)
    ok(SetThreadAffinityMask(curthread,processMask+1)==0,
       "SetThreadAffinityMask passed for an illegal processor\n");
 /* NOTE: Pre-Vista does not recognize the "all processors" flag (all bits set) */
-   retMask = SetThreadAffinityMask(curthread,~0UL);
+   retMask = SetThreadAffinityMask(curthread,~0);
    ok(broken(retMask==0) || retMask==processMask,
       "SetThreadAffinityMask(thread,-1) failed to request all processors.\n");
+   if (retMask == processMask && sizeof(ULONG_PTR) > sizeof(ULONG))
+   {
+       /* only the low 32-bits matter */
+       retMask = SetThreadAffinityMask(curthread,~(ULONG_PTR)0);
+       ok(retMask == processMask, "SetThreadAffinityMask failed\n");
+       retMask = SetThreadAffinityMask(curthread,~(ULONG_PTR)0 >> 3);
+       ok(retMask == processMask, "SetThreadAffinityMask failed\n");
+       retMask = SetThreadAffinityMask(curthread,~(ULONG_PTR)1);
+       ok(retMask == 0, "SetThreadAffinityMask succeeded\n");
+   }
 /* NOTE: This only works on WinNT/2000/XP) */
    if (pSetThreadIdealProcessor) {
      SetLastError(0xdeadbeef);