dmloader: complete rewrite and full implementation.
[wine] / dlls / kernel / tests / generated.c
1 /* File generated automatically from tools/winapi/test.dat; do not edit! */
2 /* This file can be copied, modified and distributed without restriction. */
3
4 /*
5  * Unit tests for data structure packing
6  */
7
8 #define WINVER 0x0501
9 #define _WIN32_IE 0x0501
10 #define _WIN32_WINNT 0x0501
11
12 #define WINE_NOWINSOCK
13
14 #include "windows.h"
15
16 #include "wine/test.h"
17
18 /***********************************************************************
19  * Compability macros
20  */
21
22 #define DWORD_PTR UINT_PTR
23 #define LONG_PTR INT_PTR
24 #define ULONG_PTR UINT_PTR
25
26 /***********************************************************************
27  * Windows API extension
28  */
29
30 #if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)
31 # define FIELD_ALIGNMENT(type, field) __alignof(((type*)0)->field)
32 #elif defined(__GNUC__)
33 # define FIELD_ALIGNMENT(type, field) __alignof__(((type*)0)->field)
34 #else
35 /* FIXME: Not sure if is possible to do without compiler extension */
36 #endif
37
38 #if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)
39 # define _TYPE_ALIGNMENT(type) __alignof(type)
40 #elif defined(__GNUC__)
41 # define _TYPE_ALIGNMENT(type) __alignof__(type)
42 #else
43 /*
44  * FIXME: Not sure if is possible to do without compiler extension
45  *        (if type is not just a name that is, if so the normal)
46  *         TYPE_ALIGNMENT can be used)
47  */
48 #endif
49
50 #if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT)
51 # define TYPE_ALIGNMENT _TYPE_ALIGNMENT
52 #endif
53
54 /***********************************************************************
55  * Test helper macros
56  */
57
58 #ifdef FIELD_ALIGNMENT
59 # define TEST_FIELD_ALIGNMENT(type, field, align) \
60    ok(FIELD_ALIGNMENT(type, field) == align, \
61        "FIELD_ALIGNMENT(" #type ", " #field ") == %d (expected " #align ")\n", \
62            FIELD_ALIGNMENT(type, field))
63 #else
64 # define TEST_FIELD_ALIGNMENT(type, field, align) do { } while (0)
65 #endif
66
67 #define TEST_FIELD_OFFSET(type, field, offset) \
68     ok(FIELD_OFFSET(type, field) == offset, \
69         "FIELD_OFFSET(" #type ", " #field ") == %ld (expected " #offset ")\n", \
70              FIELD_OFFSET(type, field))
71
72 #ifdef _TYPE_ALIGNMENT
73 #define TEST__TYPE_ALIGNMENT(type, align) \
74     ok(_TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")\n", _TYPE_ALIGNMENT(type))
75 #else
76 # define TEST__TYPE_ALIGNMENT(type, align) do { } while (0)
77 #endif
78
79 #ifdef TYPE_ALIGNMENT
80 #define TEST_TYPE_ALIGNMENT(type, align) \
81     ok(TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")\n", TYPE_ALIGNMENT(type))
82 #else
83 # define TEST_TYPE_ALIGNMENT(type, align) do { } while (0)
84 #endif
85
86 #define TEST_TYPE_SIZE(type, size) \
87     ok(sizeof(type) == size, "sizeof(" #type ") == %d (expected " #size ")\n", sizeof(type))
88
89 /***********************************************************************
90  * Test macros
91  */
92
93 #define TEST_FIELD(type, field_type, field_name, field_offset, field_size, field_align) \
94   TEST_TYPE_SIZE(field_type, field_size); \
95   TEST_FIELD_ALIGNMENT(type, field_name, field_align); \
96   TEST_FIELD_OFFSET(type, field_name, field_offset); \
97
98 #define TEST_TYPE(type, size, align) \
99   TEST_TYPE_ALIGNMENT(type, align); \
100   TEST_TYPE_SIZE(type, size)
101
102 #define TEST_TYPE_POINTER(type, size, align) \
103     TEST__TYPE_ALIGNMENT(*(type)0, align); \
104     TEST_TYPE_SIZE(*(type)0, size)
105
106 #define TEST_TYPE_SIGNED(type) \
107     ok((type) -1 < 0, "(" #type ") -1 < 0\n");
108
109 #define TEST_TYPE_UNSIGNED(type) \
110      ok((type) -1 > 0, "(" #type ") -1 > 0\n");
111
112 static void test_pack_LPOSVERSIONINFOA(void)
113 {
114     /* LPOSVERSIONINFOA */
115     TEST_TYPE(LPOSVERSIONINFOA, 4, 4);
116     TEST_TYPE_POINTER(LPOSVERSIONINFOA, 148, 4);
117 }
118
119 static void test_pack_LPOSVERSIONINFOEXA(void)
120 {
121     /* LPOSVERSIONINFOEXA */
122     TEST_TYPE(LPOSVERSIONINFOEXA, 4, 4);
123     TEST_TYPE_POINTER(LPOSVERSIONINFOEXA, 156, 4);
124 }
125
126 static void test_pack_LPOSVERSIONINFOEXW(void)
127 {
128     /* LPOSVERSIONINFOEXW */
129     TEST_TYPE(LPOSVERSIONINFOEXW, 4, 4);
130     TEST_TYPE_POINTER(LPOSVERSIONINFOEXW, 284, 4);
131 }
132
133 static void test_pack_LPOSVERSIONINFOW(void)
134 {
135     /* LPOSVERSIONINFOW */
136     TEST_TYPE(LPOSVERSIONINFOW, 4, 4);
137     TEST_TYPE_POINTER(LPOSVERSIONINFOW, 276, 4);
138 }
139
140 static void test_pack_OSVERSIONINFOA(void)
141 {
142     /* OSVERSIONINFOA (pack 4) */
143     TEST_TYPE(OSVERSIONINFOA, 148, 4);
144     TEST_FIELD(OSVERSIONINFOA, DWORD, dwOSVersionInfoSize, 0, 4, 4);
145     TEST_FIELD(OSVERSIONINFOA, DWORD, dwMajorVersion, 4, 4, 4);
146     TEST_FIELD(OSVERSIONINFOA, DWORD, dwMinorVersion, 8, 4, 4);
147     TEST_FIELD(OSVERSIONINFOA, DWORD, dwBuildNumber, 12, 4, 4);
148     TEST_FIELD(OSVERSIONINFOA, DWORD, dwPlatformId, 16, 4, 4);
149     TEST_FIELD(OSVERSIONINFOA, CHAR[128], szCSDVersion, 20, 128, 1);
150 }
151
152 static void test_pack_OSVERSIONINFOEXA(void)
153 {
154     /* OSVERSIONINFOEXA (pack 4) */
155     TEST_TYPE(OSVERSIONINFOEXA, 156, 4);
156     TEST_FIELD(OSVERSIONINFOEXA, DWORD, dwOSVersionInfoSize, 0, 4, 4);
157     TEST_FIELD(OSVERSIONINFOEXA, DWORD, dwMajorVersion, 4, 4, 4);
158     TEST_FIELD(OSVERSIONINFOEXA, DWORD, dwMinorVersion, 8, 4, 4);
159     TEST_FIELD(OSVERSIONINFOEXA, DWORD, dwBuildNumber, 12, 4, 4);
160     TEST_FIELD(OSVERSIONINFOEXA, DWORD, dwPlatformId, 16, 4, 4);
161     TEST_FIELD(OSVERSIONINFOEXA, CHAR[128], szCSDVersion, 20, 128, 1);
162     TEST_FIELD(OSVERSIONINFOEXA, WORD, wServicePackMajor, 148, 2, 2);
163     TEST_FIELD(OSVERSIONINFOEXA, WORD, wServicePackMinor, 150, 2, 2);
164     TEST_FIELD(OSVERSIONINFOEXA, WORD, wSuiteMask, 152, 2, 2);
165     TEST_FIELD(OSVERSIONINFOEXA, BYTE, wProductType, 154, 1, 1);
166     TEST_FIELD(OSVERSIONINFOEXA, BYTE, wReserved, 155, 1, 1);
167 }
168
169 static void test_pack_OSVERSIONINFOEXW(void)
170 {
171     /* OSVERSIONINFOEXW (pack 4) */
172     TEST_TYPE(OSVERSIONINFOEXW, 284, 4);
173     TEST_FIELD(OSVERSIONINFOEXW, DWORD, dwOSVersionInfoSize, 0, 4, 4);
174     TEST_FIELD(OSVERSIONINFOEXW, DWORD, dwMajorVersion, 4, 4, 4);
175     TEST_FIELD(OSVERSIONINFOEXW, DWORD, dwMinorVersion, 8, 4, 4);
176     TEST_FIELD(OSVERSIONINFOEXW, DWORD, dwBuildNumber, 12, 4, 4);
177     TEST_FIELD(OSVERSIONINFOEXW, DWORD, dwPlatformId, 16, 4, 4);
178     TEST_FIELD(OSVERSIONINFOEXW, WCHAR[128], szCSDVersion, 20, 256, 2);
179     TEST_FIELD(OSVERSIONINFOEXW, WORD, wServicePackMajor, 276, 2, 2);
180     TEST_FIELD(OSVERSIONINFOEXW, WORD, wServicePackMinor, 278, 2, 2);
181     TEST_FIELD(OSVERSIONINFOEXW, WORD, wSuiteMask, 280, 2, 2);
182     TEST_FIELD(OSVERSIONINFOEXW, BYTE, wProductType, 282, 1, 1);
183     TEST_FIELD(OSVERSIONINFOEXW, BYTE, wReserved, 283, 1, 1);
184 }
185
186 static void test_pack_OSVERSIONINFOW(void)
187 {
188     /* OSVERSIONINFOW (pack 4) */
189     TEST_TYPE(OSVERSIONINFOW, 276, 4);
190     TEST_FIELD(OSVERSIONINFOW, DWORD, dwOSVersionInfoSize, 0, 4, 4);
191     TEST_FIELD(OSVERSIONINFOW, DWORD, dwMajorVersion, 4, 4, 4);
192     TEST_FIELD(OSVERSIONINFOW, DWORD, dwMinorVersion, 8, 4, 4);
193     TEST_FIELD(OSVERSIONINFOW, DWORD, dwBuildNumber, 12, 4, 4);
194     TEST_FIELD(OSVERSIONINFOW, DWORD, dwPlatformId, 16, 4, 4);
195     TEST_FIELD(OSVERSIONINFOW, WCHAR[128], szCSDVersion, 20, 256, 2);
196 }
197
198 static void test_pack_POSVERSIONINFOA(void)
199 {
200     /* POSVERSIONINFOA */
201     TEST_TYPE(POSVERSIONINFOA, 4, 4);
202     TEST_TYPE_POINTER(POSVERSIONINFOA, 148, 4);
203 }
204
205 static void test_pack_POSVERSIONINFOEXA(void)
206 {
207     /* POSVERSIONINFOEXA */
208     TEST_TYPE(POSVERSIONINFOEXA, 4, 4);
209     TEST_TYPE_POINTER(POSVERSIONINFOEXA, 156, 4);
210 }
211
212 static void test_pack_POSVERSIONINFOEXW(void)
213 {
214     /* POSVERSIONINFOEXW */
215     TEST_TYPE(POSVERSIONINFOEXW, 4, 4);
216     TEST_TYPE_POINTER(POSVERSIONINFOEXW, 284, 4);
217 }
218
219 static void test_pack_POSVERSIONINFOW(void)
220 {
221     /* POSVERSIONINFOW */
222     TEST_TYPE(POSVERSIONINFOW, 4, 4);
223     TEST_TYPE_POINTER(POSVERSIONINFOW, 276, 4);
224 }
225
226 static void test_pack_LPLONG(void)
227 {
228     /* LPLONG */
229     TEST_TYPE(LPLONG, 4, 4);
230 }
231
232 static void test_pack_LPVOID(void)
233 {
234     /* LPVOID */
235     TEST_TYPE(LPVOID, 4, 4);
236 }
237
238 static void test_pack_PHKEY(void)
239 {
240     /* PHKEY */
241     TEST_TYPE(PHKEY, 4, 4);
242 }
243
244 static void test_pack_ACTCTXA(void)
245 {
246     /* ACTCTXA (pack 4) */
247     TEST_TYPE(ACTCTXA, 32, 4);
248     TEST_FIELD(ACTCTXA, ULONG, cbSize, 0, 4, 4);
249     TEST_FIELD(ACTCTXA, DWORD, dwFlags, 4, 4, 4);
250     TEST_FIELD(ACTCTXA, LPCSTR, lpSource, 8, 4, 4);
251     TEST_FIELD(ACTCTXA, USHORT, wProcessorArchitecture, 12, 2, 2);
252     TEST_FIELD(ACTCTXA, LANGID, wLangId, 14, 2, 2);
253     TEST_FIELD(ACTCTXA, LPCSTR, lpAssemblyDirectory, 16, 4, 4);
254     TEST_FIELD(ACTCTXA, LPCSTR, lpResourceName, 20, 4, 4);
255     TEST_FIELD(ACTCTXA, LPCSTR, lpApplicationName, 24, 4, 4);
256     TEST_FIELD(ACTCTXA, HMODULE, hModule, 28, 4, 4);
257 }
258
259 static void test_pack_ACTCTXW(void)
260 {
261     /* ACTCTXW (pack 4) */
262     TEST_TYPE(ACTCTXW, 32, 4);
263     TEST_FIELD(ACTCTXW, ULONG, cbSize, 0, 4, 4);
264     TEST_FIELD(ACTCTXW, DWORD, dwFlags, 4, 4, 4);
265     TEST_FIELD(ACTCTXW, LPCWSTR, lpSource, 8, 4, 4);
266     TEST_FIELD(ACTCTXW, USHORT, wProcessorArchitecture, 12, 2, 2);
267     TEST_FIELD(ACTCTXW, LANGID, wLangId, 14, 2, 2);
268     TEST_FIELD(ACTCTXW, LPCWSTR, lpAssemblyDirectory, 16, 4, 4);
269     TEST_FIELD(ACTCTXW, LPCWSTR, lpResourceName, 20, 4, 4);
270     TEST_FIELD(ACTCTXW, LPCWSTR, lpApplicationName, 24, 4, 4);
271     TEST_FIELD(ACTCTXW, HMODULE, hModule, 28, 4, 4);
272 }
273
274 static void test_pack_ACTCTX_SECTION_KEYED_DATA(void)
275 {
276     /* ACTCTX_SECTION_KEYED_DATA (pack 4) */
277     TEST_TYPE(ACTCTX_SECTION_KEYED_DATA, 64, 4);
278     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, ULONG, cbSize, 0, 4, 4);
279     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, ULONG, ulDataFormatVersion, 4, 4, 4);
280     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, PVOID, lpData, 8, 4, 4);
281     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, ULONG, ulLength, 12, 4, 4);
282     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, PVOID, lpSectionGlobalData, 16, 4, 4);
283     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, ULONG, ulSectionGlobalDataLength, 20, 4, 4);
284     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, PVOID, lpSectionBase, 24, 4, 4);
285     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, ULONG, ulSectionTotalLength, 28, 4, 4);
286     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, HANDLE, hActCtx, 32, 4, 4);
287     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, ULONG, ulAssemblyRosterIndex, 36, 4, 4);
288     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, ULONG, ulFlags, 40, 4, 4);
289     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, AssemblyMetadata, 44, 20, 4);
290 }
291
292 static void test_pack_ACTCTX_SECTION_KEYED_DATA_2600(void)
293 {
294     /* ACTCTX_SECTION_KEYED_DATA_2600 (pack 4) */
295     TEST_TYPE(ACTCTX_SECTION_KEYED_DATA_2600, 40, 4);
296     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, ULONG, cbSize, 0, 4, 4);
297     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, ULONG, ulDataFormatVersion, 4, 4, 4);
298     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, PVOID, lpData, 8, 4, 4);
299     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, ULONG, ulLength, 12, 4, 4);
300     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, PVOID, lpSectionGlobalData, 16, 4, 4);
301     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, ULONG, ulSectionGlobalDataLength, 20, 4, 4);
302     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, PVOID, lpSectionBase, 24, 4, 4);
303     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, ULONG, ulSectionTotalLength, 28, 4, 4);
304     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, HANDLE, hActCtx, 32, 4, 4);
305     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, ULONG, ulAssemblyRosterIndex, 36, 4, 4);
306 }
307
308 static void test_pack_ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA(void)
309 {
310     /* ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA (pack 4) */
311     TEST_TYPE(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 20, 4);
312     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, PVOID, lpInformation, 0, 4, 4);
313     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, PVOID, lpSectionBase, 4, 4, 4);
314     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, ULONG, ulSectionLength, 8, 4, 4);
315     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, PVOID, lpSectionGlobalDataBase, 12, 4, 4);
316     TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, ULONG, ulSectionGlobalDataLength, 16, 4, 4);
317 }
318
319 static void test_pack_ACTIVATION_CONTEXT_BASIC_INFORMATION(void)
320 {
321     /* ACTIVATION_CONTEXT_BASIC_INFORMATION (pack 4) */
322     TEST_TYPE(ACTIVATION_CONTEXT_BASIC_INFORMATION, 8, 4);
323     TEST_FIELD(ACTIVATION_CONTEXT_BASIC_INFORMATION, HANDLE, hActCtx, 0, 4, 4);
324     TEST_FIELD(ACTIVATION_CONTEXT_BASIC_INFORMATION, DWORD, dwFlags, 4, 4, 4);
325 }
326
327 static void test_pack_BY_HANDLE_FILE_INFORMATION(void)
328 {
329     /* BY_HANDLE_FILE_INFORMATION (pack 4) */
330     TEST_TYPE(BY_HANDLE_FILE_INFORMATION, 52, 4);
331     TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, dwFileAttributes, 0, 4, 4);
332     TEST_FIELD(BY_HANDLE_FILE_INFORMATION, FILETIME, ftCreationTime, 4, 8, 4);
333     TEST_FIELD(BY_HANDLE_FILE_INFORMATION, FILETIME, ftLastAccessTime, 12, 8, 4);
334     TEST_FIELD(BY_HANDLE_FILE_INFORMATION, FILETIME, ftLastWriteTime, 20, 8, 4);
335     TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, dwVolumeSerialNumber, 28, 4, 4);
336     TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, nFileSizeHigh, 32, 4, 4);
337     TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, nFileSizeLow, 36, 4, 4);
338     TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, nNumberOfLinks, 40, 4, 4);
339     TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, nFileIndexHigh, 44, 4, 4);
340     TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, nFileIndexLow, 48, 4, 4);
341 }
342
343 static void test_pack_COMMPROP(void)
344 {
345     /* COMMPROP (pack 4) */
346     TEST_TYPE(COMMPROP, 64, 4);
347     TEST_FIELD(COMMPROP, WORD, wPacketLength, 0, 2, 2);
348     TEST_FIELD(COMMPROP, WORD, wPacketVersion, 2, 2, 2);
349     TEST_FIELD(COMMPROP, DWORD, dwServiceMask, 4, 4, 4);
350     TEST_FIELD(COMMPROP, DWORD, dwReserved1, 8, 4, 4);
351     TEST_FIELD(COMMPROP, DWORD, dwMaxTxQueue, 12, 4, 4);
352     TEST_FIELD(COMMPROP, DWORD, dwMaxRxQueue, 16, 4, 4);
353     TEST_FIELD(COMMPROP, DWORD, dwMaxBaud, 20, 4, 4);
354     TEST_FIELD(COMMPROP, DWORD, dwProvSubType, 24, 4, 4);
355     TEST_FIELD(COMMPROP, DWORD, dwProvCapabilities, 28, 4, 4);
356     TEST_FIELD(COMMPROP, DWORD, dwSettableParams, 32, 4, 4);
357     TEST_FIELD(COMMPROP, DWORD, dwSettableBaud, 36, 4, 4);
358     TEST_FIELD(COMMPROP, WORD, wSettableData, 40, 2, 2);
359     TEST_FIELD(COMMPROP, WORD, wSettableStopParity, 42, 2, 2);
360     TEST_FIELD(COMMPROP, DWORD, dwCurrentTxQueue, 44, 4, 4);
361     TEST_FIELD(COMMPROP, DWORD, dwCurrentRxQueue, 48, 4, 4);
362     TEST_FIELD(COMMPROP, DWORD, dwProvSpec1, 52, 4, 4);
363     TEST_FIELD(COMMPROP, DWORD, dwProvSpec2, 56, 4, 4);
364     TEST_FIELD(COMMPROP, WCHAR[1], wcProvChar, 60, 2, 2);
365 }
366
367 static void test_pack_COMMTIMEOUTS(void)
368 {
369     /* COMMTIMEOUTS (pack 4) */
370     TEST_TYPE(COMMTIMEOUTS, 20, 4);
371     TEST_FIELD(COMMTIMEOUTS, DWORD, ReadIntervalTimeout, 0, 4, 4);
372     TEST_FIELD(COMMTIMEOUTS, DWORD, ReadTotalTimeoutMultiplier, 4, 4, 4);
373     TEST_FIELD(COMMTIMEOUTS, DWORD, ReadTotalTimeoutConstant, 8, 4, 4);
374     TEST_FIELD(COMMTIMEOUTS, DWORD, WriteTotalTimeoutMultiplier, 12, 4, 4);
375     TEST_FIELD(COMMTIMEOUTS, DWORD, WriteTotalTimeoutConstant, 16, 4, 4);
376 }
377
378 static void test_pack_CREATE_PROCESS_DEBUG_INFO(void)
379 {
380     /* CREATE_PROCESS_DEBUG_INFO (pack 4) */
381     TEST_TYPE(CREATE_PROCESS_DEBUG_INFO, 40, 4);
382     TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, HANDLE, hFile, 0, 4, 4);
383     TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, HANDLE, hProcess, 4, 4, 4);
384     TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, HANDLE, hThread, 8, 4, 4);
385     TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, LPVOID, lpBaseOfImage, 12, 4, 4);
386     TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, DWORD, dwDebugInfoFileOffset, 16, 4, 4);
387     TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, DWORD, nDebugInfoSize, 20, 4, 4);
388     TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, LPVOID, lpThreadLocalBase, 24, 4, 4);
389     TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, LPTHREAD_START_ROUTINE, lpStartAddress, 28, 4, 4);
390     TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, LPVOID, lpImageName, 32, 4, 4);
391     TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, WORD, fUnicode, 36, 2, 2);
392 }
393
394 static void test_pack_CREATE_THREAD_DEBUG_INFO(void)
395 {
396     /* CREATE_THREAD_DEBUG_INFO (pack 4) */
397     TEST_TYPE(CREATE_THREAD_DEBUG_INFO, 12, 4);
398     TEST_FIELD(CREATE_THREAD_DEBUG_INFO, HANDLE, hThread, 0, 4, 4);
399     TEST_FIELD(CREATE_THREAD_DEBUG_INFO, LPVOID, lpThreadLocalBase, 4, 4, 4);
400     TEST_FIELD(CREATE_THREAD_DEBUG_INFO, LPTHREAD_START_ROUTINE, lpStartAddress, 8, 4, 4);
401 }
402
403 static void test_pack_CRITICAL_SECTION(void)
404 {
405     /* CRITICAL_SECTION */
406     TEST_TYPE(CRITICAL_SECTION, 24, 4);
407 }
408
409 static void test_pack_CRITICAL_SECTION_DEBUG(void)
410 {
411     /* CRITICAL_SECTION_DEBUG */
412     TEST_TYPE(CRITICAL_SECTION_DEBUG, 32, 4);
413 }
414
415 static void test_pack_ENUMRESLANGPROCA(void)
416 {
417     /* ENUMRESLANGPROCA */
418     TEST_TYPE(ENUMRESLANGPROCA, 4, 4);
419 }
420
421 static void test_pack_ENUMRESLANGPROCW(void)
422 {
423     /* ENUMRESLANGPROCW */
424     TEST_TYPE(ENUMRESLANGPROCW, 4, 4);
425 }
426
427 static void test_pack_ENUMRESNAMEPROCA(void)
428 {
429     /* ENUMRESNAMEPROCA */
430     TEST_TYPE(ENUMRESNAMEPROCA, 4, 4);
431 }
432
433 static void test_pack_ENUMRESNAMEPROCW(void)
434 {
435     /* ENUMRESNAMEPROCW */
436     TEST_TYPE(ENUMRESNAMEPROCW, 4, 4);
437 }
438
439 static void test_pack_ENUMRESTYPEPROCA(void)
440 {
441     /* ENUMRESTYPEPROCA */
442     TEST_TYPE(ENUMRESTYPEPROCA, 4, 4);
443 }
444
445 static void test_pack_ENUMRESTYPEPROCW(void)
446 {
447     /* ENUMRESTYPEPROCW */
448     TEST_TYPE(ENUMRESTYPEPROCW, 4, 4);
449 }
450
451 static void test_pack_EXCEPTION_DEBUG_INFO(void)
452 {
453     /* EXCEPTION_DEBUG_INFO (pack 4) */
454     TEST_TYPE(EXCEPTION_DEBUG_INFO, 84, 4);
455     TEST_FIELD(EXCEPTION_DEBUG_INFO, EXCEPTION_RECORD, ExceptionRecord, 0, 80, 4);
456     TEST_FIELD(EXCEPTION_DEBUG_INFO, DWORD, dwFirstChance, 80, 4, 4);
457 }
458
459 static void test_pack_EXIT_PROCESS_DEBUG_INFO(void)
460 {
461     /* EXIT_PROCESS_DEBUG_INFO (pack 4) */
462     TEST_TYPE(EXIT_PROCESS_DEBUG_INFO, 4, 4);
463     TEST_FIELD(EXIT_PROCESS_DEBUG_INFO, DWORD, dwExitCode, 0, 4, 4);
464 }
465
466 static void test_pack_EXIT_THREAD_DEBUG_INFO(void)
467 {
468     /* EXIT_THREAD_DEBUG_INFO (pack 4) */
469     TEST_TYPE(EXIT_THREAD_DEBUG_INFO, 4, 4);
470     TEST_FIELD(EXIT_THREAD_DEBUG_INFO, DWORD, dwExitCode, 0, 4, 4);
471 }
472
473 static void test_pack_HW_PROFILE_INFOA(void)
474 {
475     /* HW_PROFILE_INFOA (pack 4) */
476     TEST_TYPE(HW_PROFILE_INFOA, 124, 4);
477     TEST_FIELD(HW_PROFILE_INFOA, DWORD, dwDockInfo, 0, 4, 4);
478     TEST_FIELD(HW_PROFILE_INFOA, CHAR[HW_PROFILE_GUIDLEN], szHwProfileGuid, 4, 39, 1);
479     TEST_FIELD(HW_PROFILE_INFOA, CHAR[MAX_PROFILE_LEN], szHwProfileName, 43, 80, 1);
480 }
481
482 static void test_pack_HW_PROFILE_INFOW(void)
483 {
484     /* HW_PROFILE_INFOW (pack 4) */
485     TEST_TYPE(HW_PROFILE_INFOW, 244, 4);
486     TEST_FIELD(HW_PROFILE_INFOW, DWORD, dwDockInfo, 0, 4, 4);
487     TEST_FIELD(HW_PROFILE_INFOW, WCHAR[HW_PROFILE_GUIDLEN], szHwProfileGuid, 4, 78, 2);
488     TEST_FIELD(HW_PROFILE_INFOW, WCHAR[MAX_PROFILE_LEN], szHwProfileName, 82, 160, 2);
489 }
490
491 static void test_pack_LOAD_DLL_DEBUG_INFO(void)
492 {
493     /* LOAD_DLL_DEBUG_INFO (pack 4) */
494     TEST_TYPE(LOAD_DLL_DEBUG_INFO, 24, 4);
495     TEST_FIELD(LOAD_DLL_DEBUG_INFO, HANDLE, hFile, 0, 4, 4);
496     TEST_FIELD(LOAD_DLL_DEBUG_INFO, LPVOID, lpBaseOfDll, 4, 4, 4);
497     TEST_FIELD(LOAD_DLL_DEBUG_INFO, DWORD, dwDebugInfoFileOffset, 8, 4, 4);
498     TEST_FIELD(LOAD_DLL_DEBUG_INFO, DWORD, nDebugInfoSize, 12, 4, 4);
499     TEST_FIELD(LOAD_DLL_DEBUG_INFO, LPVOID, lpImageName, 16, 4, 4);
500     TEST_FIELD(LOAD_DLL_DEBUG_INFO, WORD, fUnicode, 20, 2, 2);
501 }
502
503 static void test_pack_LPBY_HANDLE_FILE_INFORMATION(void)
504 {
505     /* LPBY_HANDLE_FILE_INFORMATION */
506     TEST_TYPE(LPBY_HANDLE_FILE_INFORMATION, 4, 4);
507     TEST_TYPE_POINTER(LPBY_HANDLE_FILE_INFORMATION, 52, 4);
508 }
509
510 static void test_pack_LPCOMMPROP(void)
511 {
512     /* LPCOMMPROP */
513     TEST_TYPE(LPCOMMPROP, 4, 4);
514     TEST_TYPE_POINTER(LPCOMMPROP, 64, 4);
515 }
516
517 static void test_pack_LPCOMMTIMEOUTS(void)
518 {
519     /* LPCOMMTIMEOUTS */
520     TEST_TYPE(LPCOMMTIMEOUTS, 4, 4);
521     TEST_TYPE_POINTER(LPCOMMTIMEOUTS, 20, 4);
522 }
523
524 static void test_pack_LPCRITICAL_SECTION(void)
525 {
526     /* LPCRITICAL_SECTION */
527     TEST_TYPE(LPCRITICAL_SECTION, 4, 4);
528 }
529
530 static void test_pack_LPCRITICAL_SECTION_DEBUG(void)
531 {
532     /* LPCRITICAL_SECTION_DEBUG */
533     TEST_TYPE(LPCRITICAL_SECTION_DEBUG, 4, 4);
534 }
535
536 static void test_pack_LPEXCEPTION_POINTERS(void)
537 {
538     /* LPEXCEPTION_POINTERS */
539     TEST_TYPE(LPEXCEPTION_POINTERS, 4, 4);
540 }
541
542 static void test_pack_LPEXCEPTION_RECORD(void)
543 {
544     /* LPEXCEPTION_RECORD */
545     TEST_TYPE(LPEXCEPTION_RECORD, 4, 4);
546 }
547
548 static void test_pack_LPFIBER_START_ROUTINE(void)
549 {
550     /* LPFIBER_START_ROUTINE */
551     TEST_TYPE(LPFIBER_START_ROUTINE, 4, 4);
552 }
553
554 static void test_pack_LPHW_PROFILE_INFOA(void)
555 {
556     /* LPHW_PROFILE_INFOA */
557     TEST_TYPE(LPHW_PROFILE_INFOA, 4, 4);
558     TEST_TYPE_POINTER(LPHW_PROFILE_INFOA, 124, 4);
559 }
560
561 static void test_pack_LPHW_PROFILE_INFOW(void)
562 {
563     /* LPHW_PROFILE_INFOW */
564     TEST_TYPE(LPHW_PROFILE_INFOW, 4, 4);
565     TEST_TYPE_POINTER(LPHW_PROFILE_INFOW, 244, 4);
566 }
567
568 static void test_pack_LPMEMORYSTATUS(void)
569 {
570     /* LPMEMORYSTATUS */
571     TEST_TYPE(LPMEMORYSTATUS, 4, 4);
572     TEST_TYPE_POINTER(LPMEMORYSTATUS, 32, 4);
573 }
574
575 static void test_pack_LPOFSTRUCT(void)
576 {
577     /* LPOFSTRUCT */
578     TEST_TYPE(LPOFSTRUCT, 4, 4);
579     TEST_TYPE_POINTER(LPOFSTRUCT, 136, 2);
580 }
581
582 static void test_pack_LPOVERLAPPED(void)
583 {
584     /* LPOVERLAPPED */
585     TEST_TYPE(LPOVERLAPPED, 4, 4);
586     TEST_TYPE_POINTER(LPOVERLAPPED, 20, 4);
587 }
588
589 static void test_pack_LPOVERLAPPED_COMPLETION_ROUTINE(void)
590 {
591     /* LPOVERLAPPED_COMPLETION_ROUTINE */
592     TEST_TYPE(LPOVERLAPPED_COMPLETION_ROUTINE, 4, 4);
593 }
594
595 static void test_pack_LPPROCESS_INFORMATION(void)
596 {
597     /* LPPROCESS_INFORMATION */
598     TEST_TYPE(LPPROCESS_INFORMATION, 4, 4);
599     TEST_TYPE_POINTER(LPPROCESS_INFORMATION, 16, 4);
600 }
601
602 static void test_pack_LPPROGRESS_ROUTINE(void)
603 {
604     /* LPPROGRESS_ROUTINE */
605     TEST_TYPE(LPPROGRESS_ROUTINE, 4, 4);
606 }
607
608 static void test_pack_LPSECURITY_ATTRIBUTES(void)
609 {
610     /* LPSECURITY_ATTRIBUTES */
611     TEST_TYPE(LPSECURITY_ATTRIBUTES, 4, 4);
612     TEST_TYPE_POINTER(LPSECURITY_ATTRIBUTES, 12, 4);
613 }
614
615 static void test_pack_LPSTARTUPINFOA(void)
616 {
617     /* LPSTARTUPINFOA */
618     TEST_TYPE(LPSTARTUPINFOA, 4, 4);
619     TEST_TYPE_POINTER(LPSTARTUPINFOA, 68, 4);
620 }
621
622 static void test_pack_LPSTARTUPINFOW(void)
623 {
624     /* LPSTARTUPINFOW */
625     TEST_TYPE(LPSTARTUPINFOW, 4, 4);
626     TEST_TYPE_POINTER(LPSTARTUPINFOW, 68, 4);
627 }
628
629 static void test_pack_LPSYSTEMTIME(void)
630 {
631     /* LPSYSTEMTIME */
632     TEST_TYPE(LPSYSTEMTIME, 4, 4);
633     TEST_TYPE_POINTER(LPSYSTEMTIME, 16, 2);
634 }
635
636 static void test_pack_LPSYSTEM_POWER_STATUS(void)
637 {
638     /* LPSYSTEM_POWER_STATUS */
639     TEST_TYPE(LPSYSTEM_POWER_STATUS, 4, 4);
640     TEST_TYPE_POINTER(LPSYSTEM_POWER_STATUS, 12, 4);
641 }
642
643 static void test_pack_LPTHREAD_START_ROUTINE(void)
644 {
645     /* LPTHREAD_START_ROUTINE */
646     TEST_TYPE(LPTHREAD_START_ROUTINE, 4, 4);
647 }
648
649 static void test_pack_LPTIME_ZONE_INFORMATION(void)
650 {
651     /* LPTIME_ZONE_INFORMATION */
652     TEST_TYPE(LPTIME_ZONE_INFORMATION, 4, 4);
653     TEST_TYPE_POINTER(LPTIME_ZONE_INFORMATION, 172, 4);
654 }
655
656 static void test_pack_LPWIN32_FILE_ATTRIBUTE_DATA(void)
657 {
658     /* LPWIN32_FILE_ATTRIBUTE_DATA */
659     TEST_TYPE(LPWIN32_FILE_ATTRIBUTE_DATA, 4, 4);
660     TEST_TYPE_POINTER(LPWIN32_FILE_ATTRIBUTE_DATA, 36, 4);
661 }
662
663 static void test_pack_LPWIN32_FIND_DATAA(void)
664 {
665     /* LPWIN32_FIND_DATAA */
666     TEST_TYPE(LPWIN32_FIND_DATAA, 4, 4);
667     TEST_TYPE_POINTER(LPWIN32_FIND_DATAA, 320, 4);
668 }
669
670 static void test_pack_LPWIN32_FIND_DATAW(void)
671 {
672     /* LPWIN32_FIND_DATAW */
673     TEST_TYPE(LPWIN32_FIND_DATAW, 4, 4);
674     TEST_TYPE_POINTER(LPWIN32_FIND_DATAW, 592, 4);
675 }
676
677 static void test_pack_MEMORYSTATUS(void)
678 {
679     /* MEMORYSTATUS (pack 4) */
680     TEST_TYPE(MEMORYSTATUS, 32, 4);
681     TEST_FIELD(MEMORYSTATUS, DWORD, dwLength, 0, 4, 4);
682     TEST_FIELD(MEMORYSTATUS, DWORD, dwMemoryLoad, 4, 4, 4);
683     TEST_FIELD(MEMORYSTATUS, SIZE_T, dwTotalPhys, 8, 4, 4);
684     TEST_FIELD(MEMORYSTATUS, SIZE_T, dwAvailPhys, 12, 4, 4);
685     TEST_FIELD(MEMORYSTATUS, SIZE_T, dwTotalPageFile, 16, 4, 4);
686     TEST_FIELD(MEMORYSTATUS, SIZE_T, dwAvailPageFile, 20, 4, 4);
687     TEST_FIELD(MEMORYSTATUS, SIZE_T, dwTotalVirtual, 24, 4, 4);
688     TEST_FIELD(MEMORYSTATUS, SIZE_T, dwAvailVirtual, 28, 4, 4);
689 }
690
691 static void test_pack_OFSTRUCT(void)
692 {
693     /* OFSTRUCT (pack 4) */
694     TEST_TYPE(OFSTRUCT, 136, 2);
695     TEST_FIELD(OFSTRUCT, BYTE, cBytes, 0, 1, 1);
696     TEST_FIELD(OFSTRUCT, BYTE, fFixedDisk, 1, 1, 1);
697     TEST_FIELD(OFSTRUCT, WORD, nErrCode, 2, 2, 2);
698     TEST_FIELD(OFSTRUCT, WORD, Reserved1, 4, 2, 2);
699     TEST_FIELD(OFSTRUCT, WORD, Reserved2, 6, 2, 2);
700     TEST_FIELD(OFSTRUCT, BYTE[OFS_MAXPATHNAME], szPathName, 8, 128, 1);
701 }
702
703 static void test_pack_OUTPUT_DEBUG_STRING_INFO(void)
704 {
705     /* OUTPUT_DEBUG_STRING_INFO (pack 4) */
706     TEST_TYPE(OUTPUT_DEBUG_STRING_INFO, 8, 4);
707     TEST_FIELD(OUTPUT_DEBUG_STRING_INFO, LPSTR, lpDebugStringData, 0, 4, 4);
708     TEST_FIELD(OUTPUT_DEBUG_STRING_INFO, WORD, fUnicode, 4, 2, 2);
709     TEST_FIELD(OUTPUT_DEBUG_STRING_INFO, WORD, nDebugStringLength, 6, 2, 2);
710 }
711
712 static void test_pack_OVERLAPPED(void)
713 {
714     /* OVERLAPPED (pack 4) */
715     TEST_TYPE(OVERLAPPED, 20, 4);
716     TEST_FIELD(OVERLAPPED, DWORD, Internal, 0, 4, 4);
717     TEST_FIELD(OVERLAPPED, DWORD, InternalHigh, 4, 4, 4);
718     TEST_FIELD(OVERLAPPED, DWORD, Offset, 8, 4, 4);
719     TEST_FIELD(OVERLAPPED, DWORD, OffsetHigh, 12, 4, 4);
720     TEST_FIELD(OVERLAPPED, HANDLE, hEvent, 16, 4, 4);
721 }
722
723 static void test_pack_PACTCTXA(void)
724 {
725     /* PACTCTXA */
726     TEST_TYPE(PACTCTXA, 4, 4);
727     TEST_TYPE_POINTER(PACTCTXA, 32, 4);
728 }
729
730 static void test_pack_PACTCTXW(void)
731 {
732     /* PACTCTXW */
733     TEST_TYPE(PACTCTXW, 4, 4);
734     TEST_TYPE_POINTER(PACTCTXW, 32, 4);
735 }
736
737 static void test_pack_PACTCTX_SECTION_KEYED_DATA(void)
738 {
739     /* PACTCTX_SECTION_KEYED_DATA */
740     TEST_TYPE(PACTCTX_SECTION_KEYED_DATA, 4, 4);
741     TEST_TYPE_POINTER(PACTCTX_SECTION_KEYED_DATA, 64, 4);
742 }
743
744 static void test_pack_PACTCTX_SECTION_KEYED_DATA_2600(void)
745 {
746     /* PACTCTX_SECTION_KEYED_DATA_2600 */
747     TEST_TYPE(PACTCTX_SECTION_KEYED_DATA_2600, 4, 4);
748     TEST_TYPE_POINTER(PACTCTX_SECTION_KEYED_DATA_2600, 40, 4);
749 }
750
751 static void test_pack_PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA(void)
752 {
753     /* PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA */
754     TEST_TYPE(PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 4, 4);
755     TEST_TYPE_POINTER(PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 20, 4);
756 }
757
758 static void test_pack_PACTIVATION_CONTEXT_BASIC_INFORMATION(void)
759 {
760     /* PACTIVATION_CONTEXT_BASIC_INFORMATION */
761     TEST_TYPE(PACTIVATION_CONTEXT_BASIC_INFORMATION, 4, 4);
762     TEST_TYPE_POINTER(PACTIVATION_CONTEXT_BASIC_INFORMATION, 8, 4);
763 }
764
765 static void test_pack_PAPCFUNC(void)
766 {
767     /* PAPCFUNC */
768     TEST_TYPE(PAPCFUNC, 4, 4);
769 }
770
771 static void test_pack_PBY_HANDLE_FILE_INFORMATION(void)
772 {
773     /* PBY_HANDLE_FILE_INFORMATION */
774     TEST_TYPE(PBY_HANDLE_FILE_INFORMATION, 4, 4);
775     TEST_TYPE_POINTER(PBY_HANDLE_FILE_INFORMATION, 52, 4);
776 }
777
778 static void test_pack_PCACTCTXA(void)
779 {
780     /* PCACTCTXA */
781     TEST_TYPE(PCACTCTXA, 4, 4);
782     TEST_TYPE_POINTER(PCACTCTXA, 32, 4);
783 }
784
785 static void test_pack_PCACTCTXW(void)
786 {
787     /* PCACTCTXW */
788     TEST_TYPE(PCACTCTXW, 4, 4);
789     TEST_TYPE_POINTER(PCACTCTXW, 32, 4);
790 }
791
792 static void test_pack_PCACTCTX_SECTION_KEYED_DATA(void)
793 {
794     /* PCACTCTX_SECTION_KEYED_DATA */
795     TEST_TYPE(PCACTCTX_SECTION_KEYED_DATA, 4, 4);
796     TEST_TYPE_POINTER(PCACTCTX_SECTION_KEYED_DATA, 64, 4);
797 }
798
799 static void test_pack_PCACTCTX_SECTION_KEYED_DATA_2600(void)
800 {
801     /* PCACTCTX_SECTION_KEYED_DATA_2600 */
802     TEST_TYPE(PCACTCTX_SECTION_KEYED_DATA_2600, 4, 4);
803     TEST_TYPE_POINTER(PCACTCTX_SECTION_KEYED_DATA_2600, 40, 4);
804 }
805
806 static void test_pack_PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA(void)
807 {
808     /* PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA */
809     TEST_TYPE(PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 4, 4);
810     TEST_TYPE_POINTER(PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 20, 4);
811 }
812
813 static void test_pack_PCRITICAL_SECTION(void)
814 {
815     /* PCRITICAL_SECTION */
816     TEST_TYPE(PCRITICAL_SECTION, 4, 4);
817 }
818
819 static void test_pack_PCRITICAL_SECTION_DEBUG(void)
820 {
821     /* PCRITICAL_SECTION_DEBUG */
822     TEST_TYPE(PCRITICAL_SECTION_DEBUG, 4, 4);
823 }
824
825 static void test_pack_PFIBER_START_ROUTINE(void)
826 {
827     /* PFIBER_START_ROUTINE */
828     TEST_TYPE(PFIBER_START_ROUTINE, 4, 4);
829 }
830
831 static void test_pack_POFSTRUCT(void)
832 {
833     /* POFSTRUCT */
834     TEST_TYPE(POFSTRUCT, 4, 4);
835     TEST_TYPE_POINTER(POFSTRUCT, 136, 2);
836 }
837
838 static void test_pack_PPROCESS_INFORMATION(void)
839 {
840     /* PPROCESS_INFORMATION */
841     TEST_TYPE(PPROCESS_INFORMATION, 4, 4);
842     TEST_TYPE_POINTER(PPROCESS_INFORMATION, 16, 4);
843 }
844
845 static void test_pack_PQUERYACTCTXW_FUNC(void)
846 {
847     /* PQUERYACTCTXW_FUNC */
848     TEST_TYPE(PQUERYACTCTXW_FUNC, 4, 4);
849 }
850
851 static void test_pack_PROCESS_INFORMATION(void)
852 {
853     /* PROCESS_INFORMATION (pack 4) */
854     TEST_TYPE(PROCESS_INFORMATION, 16, 4);
855     TEST_FIELD(PROCESS_INFORMATION, HANDLE, hProcess, 0, 4, 4);
856     TEST_FIELD(PROCESS_INFORMATION, HANDLE, hThread, 4, 4, 4);
857     TEST_FIELD(PROCESS_INFORMATION, DWORD, dwProcessId, 8, 4, 4);
858     TEST_FIELD(PROCESS_INFORMATION, DWORD, dwThreadId, 12, 4, 4);
859 }
860
861 static void test_pack_PSECURITY_ATTRIBUTES(void)
862 {
863     /* PSECURITY_ATTRIBUTES */
864     TEST_TYPE(PSECURITY_ATTRIBUTES, 4, 4);
865     TEST_TYPE_POINTER(PSECURITY_ATTRIBUTES, 12, 4);
866 }
867
868 static void test_pack_PSYSTEMTIME(void)
869 {
870     /* PSYSTEMTIME */
871     TEST_TYPE(PSYSTEMTIME, 4, 4);
872     TEST_TYPE_POINTER(PSYSTEMTIME, 16, 2);
873 }
874
875 static void test_pack_PTIMERAPCROUTINE(void)
876 {
877     /* PTIMERAPCROUTINE */
878     TEST_TYPE(PTIMERAPCROUTINE, 4, 4);
879 }
880
881 static void test_pack_PTIME_ZONE_INFORMATION(void)
882 {
883     /* PTIME_ZONE_INFORMATION */
884     TEST_TYPE(PTIME_ZONE_INFORMATION, 4, 4);
885     TEST_TYPE_POINTER(PTIME_ZONE_INFORMATION, 172, 4);
886 }
887
888 static void test_pack_PWIN32_FIND_DATAA(void)
889 {
890     /* PWIN32_FIND_DATAA */
891     TEST_TYPE(PWIN32_FIND_DATAA, 4, 4);
892     TEST_TYPE_POINTER(PWIN32_FIND_DATAA, 320, 4);
893 }
894
895 static void test_pack_PWIN32_FIND_DATAW(void)
896 {
897     /* PWIN32_FIND_DATAW */
898     TEST_TYPE(PWIN32_FIND_DATAW, 4, 4);
899     TEST_TYPE_POINTER(PWIN32_FIND_DATAW, 592, 4);
900 }
901
902 static void test_pack_RIP_INFO(void)
903 {
904     /* RIP_INFO (pack 4) */
905     TEST_TYPE(RIP_INFO, 8, 4);
906     TEST_FIELD(RIP_INFO, DWORD, dwError, 0, 4, 4);
907     TEST_FIELD(RIP_INFO, DWORD, dwType, 4, 4, 4);
908 }
909
910 static void test_pack_SECURITY_ATTRIBUTES(void)
911 {
912     /* SECURITY_ATTRIBUTES (pack 4) */
913     TEST_TYPE(SECURITY_ATTRIBUTES, 12, 4);
914     TEST_FIELD(SECURITY_ATTRIBUTES, DWORD, nLength, 0, 4, 4);
915     TEST_FIELD(SECURITY_ATTRIBUTES, LPVOID, lpSecurityDescriptor, 4, 4, 4);
916     TEST_FIELD(SECURITY_ATTRIBUTES, BOOL, bInheritHandle, 8, 4, 4);
917 }
918
919 static void test_pack_STARTUPINFOA(void)
920 {
921     /* STARTUPINFOA (pack 4) */
922     TEST_TYPE(STARTUPINFOA, 68, 4);
923     TEST_FIELD(STARTUPINFOA, DWORD, cb, 0, 4, 4);
924     TEST_FIELD(STARTUPINFOA, LPSTR, lpReserved, 4, 4, 4);
925     TEST_FIELD(STARTUPINFOA, LPSTR, lpDesktop, 8, 4, 4);
926     TEST_FIELD(STARTUPINFOA, LPSTR, lpTitle, 12, 4, 4);
927     TEST_FIELD(STARTUPINFOA, DWORD, dwX, 16, 4, 4);
928     TEST_FIELD(STARTUPINFOA, DWORD, dwY, 20, 4, 4);
929     TEST_FIELD(STARTUPINFOA, DWORD, dwXSize, 24, 4, 4);
930     TEST_FIELD(STARTUPINFOA, DWORD, dwYSize, 28, 4, 4);
931     TEST_FIELD(STARTUPINFOA, DWORD, dwXCountChars, 32, 4, 4);
932     TEST_FIELD(STARTUPINFOA, DWORD, dwYCountChars, 36, 4, 4);
933     TEST_FIELD(STARTUPINFOA, DWORD, dwFillAttribute, 40, 4, 4);
934     TEST_FIELD(STARTUPINFOA, DWORD, dwFlags, 44, 4, 4);
935     TEST_FIELD(STARTUPINFOA, WORD, wShowWindow, 48, 2, 2);
936     TEST_FIELD(STARTUPINFOA, WORD, cbReserved2, 50, 2, 2);
937     TEST_FIELD(STARTUPINFOA, BYTE *, lpReserved2, 52, 4, 4);
938     TEST_FIELD(STARTUPINFOA, HANDLE, hStdInput, 56, 4, 4);
939     TEST_FIELD(STARTUPINFOA, HANDLE, hStdOutput, 60, 4, 4);
940     TEST_FIELD(STARTUPINFOA, HANDLE, hStdError, 64, 4, 4);
941 }
942
943 static void test_pack_STARTUPINFOW(void)
944 {
945     /* STARTUPINFOW (pack 4) */
946     TEST_TYPE(STARTUPINFOW, 68, 4);
947     TEST_FIELD(STARTUPINFOW, DWORD, cb, 0, 4, 4);
948     TEST_FIELD(STARTUPINFOW, LPWSTR, lpReserved, 4, 4, 4);
949     TEST_FIELD(STARTUPINFOW, LPWSTR, lpDesktop, 8, 4, 4);
950     TEST_FIELD(STARTUPINFOW, LPWSTR, lpTitle, 12, 4, 4);
951     TEST_FIELD(STARTUPINFOW, DWORD, dwX, 16, 4, 4);
952     TEST_FIELD(STARTUPINFOW, DWORD, dwY, 20, 4, 4);
953     TEST_FIELD(STARTUPINFOW, DWORD, dwXSize, 24, 4, 4);
954     TEST_FIELD(STARTUPINFOW, DWORD, dwYSize, 28, 4, 4);
955     TEST_FIELD(STARTUPINFOW, DWORD, dwXCountChars, 32, 4, 4);
956     TEST_FIELD(STARTUPINFOW, DWORD, dwYCountChars, 36, 4, 4);
957     TEST_FIELD(STARTUPINFOW, DWORD, dwFillAttribute, 40, 4, 4);
958     TEST_FIELD(STARTUPINFOW, DWORD, dwFlags, 44, 4, 4);
959     TEST_FIELD(STARTUPINFOW, WORD, wShowWindow, 48, 2, 2);
960     TEST_FIELD(STARTUPINFOW, WORD, cbReserved2, 50, 2, 2);
961     TEST_FIELD(STARTUPINFOW, BYTE *, lpReserved2, 52, 4, 4);
962     TEST_FIELD(STARTUPINFOW, HANDLE, hStdInput, 56, 4, 4);
963     TEST_FIELD(STARTUPINFOW, HANDLE, hStdOutput, 60, 4, 4);
964     TEST_FIELD(STARTUPINFOW, HANDLE, hStdError, 64, 4, 4);
965 }
966
967 static void test_pack_SYSLEVEL(void)
968 {
969     /* SYSLEVEL (pack 4) */
970     TEST_TYPE(SYSLEVEL, 28, 4);
971     TEST_FIELD(SYSLEVEL, CRITICAL_SECTION, crst, 0, 24, 4);
972     TEST_FIELD(SYSLEVEL, INT, level, 24, 4, 4);
973 }
974
975 static void test_pack_SYSTEMTIME(void)
976 {
977     /* SYSTEMTIME (pack 4) */
978     TEST_TYPE(SYSTEMTIME, 16, 2);
979     TEST_FIELD(SYSTEMTIME, WORD, wYear, 0, 2, 2);
980     TEST_FIELD(SYSTEMTIME, WORD, wMonth, 2, 2, 2);
981     TEST_FIELD(SYSTEMTIME, WORD, wDayOfWeek, 4, 2, 2);
982     TEST_FIELD(SYSTEMTIME, WORD, wDay, 6, 2, 2);
983     TEST_FIELD(SYSTEMTIME, WORD, wHour, 8, 2, 2);
984     TEST_FIELD(SYSTEMTIME, WORD, wMinute, 10, 2, 2);
985     TEST_FIELD(SYSTEMTIME, WORD, wSecond, 12, 2, 2);
986     TEST_FIELD(SYSTEMTIME, WORD, wMilliseconds, 14, 2, 2);
987 }
988
989 static void test_pack_SYSTEM_POWER_STATUS(void)
990 {
991     /* SYSTEM_POWER_STATUS (pack 4) */
992     TEST_TYPE(SYSTEM_POWER_STATUS, 12, 4);
993     TEST_FIELD(SYSTEM_POWER_STATUS, BYTE, ACLineStatus, 0, 1, 1);
994     TEST_FIELD(SYSTEM_POWER_STATUS, BYTE, BatteryFlag, 1, 1, 1);
995     TEST_FIELD(SYSTEM_POWER_STATUS, BYTE, BatteryLifePercent, 2, 1, 1);
996     TEST_FIELD(SYSTEM_POWER_STATUS, BYTE, Reserved1, 3, 1, 1);
997     TEST_FIELD(SYSTEM_POWER_STATUS, DWORD, BatteryLifeTime, 4, 4, 4);
998     TEST_FIELD(SYSTEM_POWER_STATUS, DWORD, BatteryFullLifeTime, 8, 4, 4);
999 }
1000
1001 static void test_pack_TIME_ZONE_INFORMATION(void)
1002 {
1003     /* TIME_ZONE_INFORMATION (pack 4) */
1004     TEST_TYPE(TIME_ZONE_INFORMATION, 172, 4);
1005     TEST_FIELD(TIME_ZONE_INFORMATION, LONG, Bias, 0, 4, 4);
1006     TEST_FIELD(TIME_ZONE_INFORMATION, WCHAR[32], StandardName, 4, 64, 2);
1007     TEST_FIELD(TIME_ZONE_INFORMATION, SYSTEMTIME, StandardDate, 68, 16, 2);
1008     TEST_FIELD(TIME_ZONE_INFORMATION, LONG, StandardBias, 84, 4, 4);
1009     TEST_FIELD(TIME_ZONE_INFORMATION, WCHAR[32], DaylightName, 88, 64, 2);
1010     TEST_FIELD(TIME_ZONE_INFORMATION, SYSTEMTIME, DaylightDate, 152, 16, 2);
1011     TEST_FIELD(TIME_ZONE_INFORMATION, LONG, DaylightBias, 168, 4, 4);
1012 }
1013
1014 static void test_pack_UNLOAD_DLL_DEBUG_INFO(void)
1015 {
1016     /* UNLOAD_DLL_DEBUG_INFO (pack 4) */
1017     TEST_TYPE(UNLOAD_DLL_DEBUG_INFO, 4, 4);
1018     TEST_FIELD(UNLOAD_DLL_DEBUG_INFO, LPVOID, lpBaseOfDll, 0, 4, 4);
1019 }
1020
1021 static void test_pack_WAITORTIMERCALLBACK(void)
1022 {
1023     /* WAITORTIMERCALLBACK */
1024     TEST_TYPE(WAITORTIMERCALLBACK, 4, 4);
1025 }
1026
1027 static void test_pack_WIN32_FILE_ATTRIBUTE_DATA(void)
1028 {
1029     /* WIN32_FILE_ATTRIBUTE_DATA (pack 4) */
1030     TEST_TYPE(WIN32_FILE_ATTRIBUTE_DATA, 36, 4);
1031     TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, DWORD, dwFileAttributes, 0, 4, 4);
1032     TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, FILETIME, ftCreationTime, 4, 8, 4);
1033     TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, FILETIME, ftLastAccessTime, 12, 8, 4);
1034     TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, FILETIME, ftLastWriteTime, 20, 8, 4);
1035     TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, DWORD, nFileSizeHigh, 28, 4, 4);
1036     TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, DWORD, nFileSizeLow, 32, 4, 4);
1037 }
1038
1039 static void test_pack_WIN32_FIND_DATAA(void)
1040 {
1041     /* WIN32_FIND_DATAA (pack 4) */
1042     TEST_TYPE(WIN32_FIND_DATAA, 320, 4);
1043     TEST_FIELD(WIN32_FIND_DATAA, DWORD, dwFileAttributes, 0, 4, 4);
1044     TEST_FIELD(WIN32_FIND_DATAA, FILETIME, ftCreationTime, 4, 8, 4);
1045     TEST_FIELD(WIN32_FIND_DATAA, FILETIME, ftLastAccessTime, 12, 8, 4);
1046     TEST_FIELD(WIN32_FIND_DATAA, FILETIME, ftLastWriteTime, 20, 8, 4);
1047     TEST_FIELD(WIN32_FIND_DATAA, DWORD, nFileSizeHigh, 28, 4, 4);
1048     TEST_FIELD(WIN32_FIND_DATAA, DWORD, nFileSizeLow, 32, 4, 4);
1049     TEST_FIELD(WIN32_FIND_DATAA, DWORD, dwReserved0, 36, 4, 4);
1050     TEST_FIELD(WIN32_FIND_DATAA, DWORD, dwReserved1, 40, 4, 4);
1051     TEST_FIELD(WIN32_FIND_DATAA, CHAR[260], cFileName, 44, 260, 1);
1052     TEST_FIELD(WIN32_FIND_DATAA, CHAR[14], cAlternateFileName, 304, 14, 1);
1053 }
1054
1055 static void test_pack_WIN32_FIND_DATAW(void)
1056 {
1057     /* WIN32_FIND_DATAW (pack 4) */
1058     TEST_TYPE(WIN32_FIND_DATAW, 592, 4);
1059     TEST_FIELD(WIN32_FIND_DATAW, DWORD, dwFileAttributes, 0, 4, 4);
1060     TEST_FIELD(WIN32_FIND_DATAW, FILETIME, ftCreationTime, 4, 8, 4);
1061     TEST_FIELD(WIN32_FIND_DATAW, FILETIME, ftLastAccessTime, 12, 8, 4);
1062     TEST_FIELD(WIN32_FIND_DATAW, FILETIME, ftLastWriteTime, 20, 8, 4);
1063     TEST_FIELD(WIN32_FIND_DATAW, DWORD, nFileSizeHigh, 28, 4, 4);
1064     TEST_FIELD(WIN32_FIND_DATAW, DWORD, nFileSizeLow, 32, 4, 4);
1065     TEST_FIELD(WIN32_FIND_DATAW, DWORD, dwReserved0, 36, 4, 4);
1066     TEST_FIELD(WIN32_FIND_DATAW, DWORD, dwReserved1, 40, 4, 4);
1067     TEST_FIELD(WIN32_FIND_DATAW, WCHAR[260], cFileName, 44, 520, 2);
1068     TEST_FIELD(WIN32_FIND_DATAW, WCHAR[14], cAlternateFileName, 564, 28, 2);
1069 }
1070
1071 static void test_pack(void)
1072 {
1073     test_pack_ACTCTXA();
1074     test_pack_ACTCTXW();
1075     test_pack_ACTCTX_SECTION_KEYED_DATA();
1076     test_pack_ACTCTX_SECTION_KEYED_DATA_2600();
1077     test_pack_ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA();
1078     test_pack_ACTIVATION_CONTEXT_BASIC_INFORMATION();
1079     test_pack_BY_HANDLE_FILE_INFORMATION();
1080     test_pack_COMMPROP();
1081     test_pack_COMMTIMEOUTS();
1082     test_pack_CREATE_PROCESS_DEBUG_INFO();
1083     test_pack_CREATE_THREAD_DEBUG_INFO();
1084     test_pack_CRITICAL_SECTION();
1085     test_pack_CRITICAL_SECTION_DEBUG();
1086     test_pack_ENUMRESLANGPROCA();
1087     test_pack_ENUMRESLANGPROCW();
1088     test_pack_ENUMRESNAMEPROCA();
1089     test_pack_ENUMRESNAMEPROCW();
1090     test_pack_ENUMRESTYPEPROCA();
1091     test_pack_ENUMRESTYPEPROCW();
1092     test_pack_EXCEPTION_DEBUG_INFO();
1093     test_pack_EXIT_PROCESS_DEBUG_INFO();
1094     test_pack_EXIT_THREAD_DEBUG_INFO();
1095     test_pack_HW_PROFILE_INFOA();
1096     test_pack_HW_PROFILE_INFOW();
1097     test_pack_LOAD_DLL_DEBUG_INFO();
1098     test_pack_LPBY_HANDLE_FILE_INFORMATION();
1099     test_pack_LPCOMMPROP();
1100     test_pack_LPCOMMTIMEOUTS();
1101     test_pack_LPCRITICAL_SECTION();
1102     test_pack_LPCRITICAL_SECTION_DEBUG();
1103     test_pack_LPEXCEPTION_POINTERS();
1104     test_pack_LPEXCEPTION_RECORD();
1105     test_pack_LPFIBER_START_ROUTINE();
1106     test_pack_LPHW_PROFILE_INFOA();
1107     test_pack_LPHW_PROFILE_INFOW();
1108     test_pack_LPLONG();
1109     test_pack_LPMEMORYSTATUS();
1110     test_pack_LPOFSTRUCT();
1111     test_pack_LPOSVERSIONINFOA();
1112     test_pack_LPOSVERSIONINFOEXA();
1113     test_pack_LPOSVERSIONINFOEXW();
1114     test_pack_LPOSVERSIONINFOW();
1115     test_pack_LPOVERLAPPED();
1116     test_pack_LPOVERLAPPED_COMPLETION_ROUTINE();
1117     test_pack_LPPROCESS_INFORMATION();
1118     test_pack_LPPROGRESS_ROUTINE();
1119     test_pack_LPSECURITY_ATTRIBUTES();
1120     test_pack_LPSTARTUPINFOA();
1121     test_pack_LPSTARTUPINFOW();
1122     test_pack_LPSYSTEMTIME();
1123     test_pack_LPSYSTEM_POWER_STATUS();
1124     test_pack_LPTHREAD_START_ROUTINE();
1125     test_pack_LPTIME_ZONE_INFORMATION();
1126     test_pack_LPVOID();
1127     test_pack_LPWIN32_FILE_ATTRIBUTE_DATA();
1128     test_pack_LPWIN32_FIND_DATAA();
1129     test_pack_LPWIN32_FIND_DATAW();
1130     test_pack_MEMORYSTATUS();
1131     test_pack_OFSTRUCT();
1132     test_pack_OSVERSIONINFOA();
1133     test_pack_OSVERSIONINFOEXA();
1134     test_pack_OSVERSIONINFOEXW();
1135     test_pack_OSVERSIONINFOW();
1136     test_pack_OUTPUT_DEBUG_STRING_INFO();
1137     test_pack_OVERLAPPED();
1138     test_pack_PACTCTXA();
1139     test_pack_PACTCTXW();
1140     test_pack_PACTCTX_SECTION_KEYED_DATA();
1141     test_pack_PACTCTX_SECTION_KEYED_DATA_2600();
1142     test_pack_PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA();
1143     test_pack_PACTIVATION_CONTEXT_BASIC_INFORMATION();
1144     test_pack_PAPCFUNC();
1145     test_pack_PBY_HANDLE_FILE_INFORMATION();
1146     test_pack_PCACTCTXA();
1147     test_pack_PCACTCTXW();
1148     test_pack_PCACTCTX_SECTION_KEYED_DATA();
1149     test_pack_PCACTCTX_SECTION_KEYED_DATA_2600();
1150     test_pack_PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA();
1151     test_pack_PCRITICAL_SECTION();
1152     test_pack_PCRITICAL_SECTION_DEBUG();
1153     test_pack_PFIBER_START_ROUTINE();
1154     test_pack_PHKEY();
1155     test_pack_POFSTRUCT();
1156     test_pack_POSVERSIONINFOA();
1157     test_pack_POSVERSIONINFOEXA();
1158     test_pack_POSVERSIONINFOEXW();
1159     test_pack_POSVERSIONINFOW();
1160     test_pack_PPROCESS_INFORMATION();
1161     test_pack_PQUERYACTCTXW_FUNC();
1162     test_pack_PROCESS_INFORMATION();
1163     test_pack_PSECURITY_ATTRIBUTES();
1164     test_pack_PSYSTEMTIME();
1165     test_pack_PTIMERAPCROUTINE();
1166     test_pack_PTIME_ZONE_INFORMATION();
1167     test_pack_PWIN32_FIND_DATAA();
1168     test_pack_PWIN32_FIND_DATAW();
1169     test_pack_RIP_INFO();
1170     test_pack_SECURITY_ATTRIBUTES();
1171     test_pack_STARTUPINFOA();
1172     test_pack_STARTUPINFOW();
1173     test_pack_SYSLEVEL();
1174     test_pack_SYSTEMTIME();
1175     test_pack_SYSTEM_POWER_STATUS();
1176     test_pack_TIME_ZONE_INFORMATION();
1177     test_pack_UNLOAD_DLL_DEBUG_INFO();
1178     test_pack_WAITORTIMERCALLBACK();
1179     test_pack_WIN32_FILE_ATTRIBUTE_DATA();
1180     test_pack_WIN32_FIND_DATAA();
1181     test_pack_WIN32_FIND_DATAW();
1182 }
1183
1184 START_TEST(generated)
1185 {
1186     test_pack();
1187 }