1 /* File generated automatically from tools/winapi/test.dat; do not edit! */
2 /* This file can be copied, modified and distributed without restriction. */
5 * Unit tests for data structure packing
9 #define _WIN32_WINNT 0x0501
11 #define WINE_NOWINSOCK
15 #include "wine/test.h"
17 /***********************************************************************
21 #define DWORD_PTR UINT_PTR
22 #define LONG_PTR INT_PTR
23 #define ULONG_PTR UINT_PTR
25 /***********************************************************************
26 * Windows API extension
29 #if (_MSC_VER >= 1300) && defined(__cplusplus)
30 # define FIELD_ALIGNMENT(type, field) __alignof(((type*)0)->field)
31 #elif defined(__GNUC__)
32 # define FIELD_ALIGNMENT(type, field) __alignof__(((type*)0)->field)
34 /* FIXME: Not sure if is possible to do without compiler extension */
37 #if (_MSC_VER >= 1300) && defined(__cplusplus)
38 # define _TYPE_ALIGNMENT(type) __alignof(type)
39 #elif defined(__GNUC__)
40 # define _TYPE_ALIGNMENT(type) __alignof__(type)
43 * FIXME: Not sure if is possible to do without compiler extension
44 * (if type is not just a name that is, if so the normal)
45 * TYPE_ALIGNMENT can be used)
49 #if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT)
50 # define TYPE_ALIGNMENT _TYPE_ALIGNMENT
53 /***********************************************************************
57 #ifdef FIELD_ALIGNMENT
58 # define TEST_FIELD_ALIGNMENT(type, field, align) \
59 ok(FIELD_ALIGNMENT(type, field) == align, \
60 "FIELD_ALIGNMENT(" #type ", " #field ") == %d (expected " #align ")", \
61 FIELD_ALIGNMENT(type, field))
63 # define TEST_FIELD_ALIGNMENT(type, field, align) do { } while (0)
66 #define TEST_FIELD_OFFSET(type, field, offset) \
67 ok(FIELD_OFFSET(type, field) == offset, \
68 "FIELD_OFFSET(" #type ", " #field ") == %ld (expected " #offset ")", \
69 FIELD_OFFSET(type, field))
71 #ifdef _TYPE_ALIGNMENT
72 #define TEST__TYPE_ALIGNMENT(type, align) \
73 ok(_TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")", _TYPE_ALIGNMENT(type))
75 # define TEST__TYPE_ALIGNMENT(type, align) do { } while (0)
79 #define TEST_TYPE_ALIGNMENT(type, align) \
80 ok(TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")", TYPE_ALIGNMENT(type))
82 # define TEST_TYPE_ALIGNMENT(type, align) do { } while (0)
85 #define TEST_TYPE_SIZE(type, size) \
86 ok(sizeof(type) == size, "sizeof(" #type ") == %d (expected " #size ")", sizeof(type))
88 /***********************************************************************
92 #define TEST_FIELD(type, field_type, field_name, field_offset, field_size, field_align) \
93 TEST_TYPE_SIZE(field_type, field_size); \
94 TEST_FIELD_ALIGNMENT(type, field_name, field_align); \
95 TEST_FIELD_OFFSET(type, field_name, field_offset); \
97 #define TEST_TYPE(type, size, align) \
98 TEST_TYPE_ALIGNMENT(type, align); \
99 TEST_TYPE_SIZE(type, size)
101 #define TEST_TYPE_POINTER(type, size, align) \
102 TEST__TYPE_ALIGNMENT(*(type)0, align); \
103 TEST_TYPE_SIZE(*(type)0, size)
105 #define TEST_TYPE_SIGNED(type) \
106 ok((type) -1 < 0, "(" #type ") -1 < 0");
108 #define TEST_TYPE_UNSIGNED(type) \
109 ok((type) -1 > 0, "(" #type ") -1 > 0");
113 /* BY_HANDLE_FILE_INFORMATION (pack 4) */
114 TEST_TYPE(BY_HANDLE_FILE_INFORMATION
, 52, 4);
115 TEST_FIELD(BY_HANDLE_FILE_INFORMATION
, DWORD
, dwFileAttributes
, 0, 4, 4);
116 TEST_FIELD(BY_HANDLE_FILE_INFORMATION
, FILETIME
, ftCreationTime
, 4, 8, 4);
117 TEST_FIELD(BY_HANDLE_FILE_INFORMATION
, FILETIME
, ftLastAccessTime
, 12, 8, 4);
118 TEST_FIELD(BY_HANDLE_FILE_INFORMATION
, FILETIME
, ftLastWriteTime
, 20, 8, 4);
119 TEST_FIELD(BY_HANDLE_FILE_INFORMATION
, DWORD
, dwVolumeSerialNumber
, 28, 4, 4);
120 TEST_FIELD(BY_HANDLE_FILE_INFORMATION
, DWORD
, nFileSizeHigh
, 32, 4, 4);
121 TEST_FIELD(BY_HANDLE_FILE_INFORMATION
, DWORD
, nFileSizeLow
, 36, 4, 4);
122 TEST_FIELD(BY_HANDLE_FILE_INFORMATION
, DWORD
, nNumberOfLinks
, 40, 4, 4);
123 TEST_FIELD(BY_HANDLE_FILE_INFORMATION
, DWORD
, nFileIndexHigh
, 44, 4, 4);
124 TEST_FIELD(BY_HANDLE_FILE_INFORMATION
, DWORD
, nFileIndexLow
, 48, 4, 4);
126 /* COMMCONFIG (pack 4) */
127 TEST_FIELD(COMMCONFIG
, DWORD
, dwSize
, 0, 4, 4);
128 TEST_FIELD(COMMCONFIG
, WORD
, wVersion
, 4, 2, 2);
129 TEST_FIELD(COMMCONFIG
, WORD
, wReserved
, 6, 2, 2);
131 /* COMMPROP (pack 4) */
132 TEST_TYPE(COMMPROP
, 64, 4);
133 TEST_FIELD(COMMPROP
, WORD
, wPacketLength
, 0, 2, 2);
134 TEST_FIELD(COMMPROP
, WORD
, wPacketVersion
, 2, 2, 2);
135 TEST_FIELD(COMMPROP
, DWORD
, dwServiceMask
, 4, 4, 4);
136 TEST_FIELD(COMMPROP
, DWORD
, dwReserved1
, 8, 4, 4);
137 TEST_FIELD(COMMPROP
, DWORD
, dwMaxTxQueue
, 12, 4, 4);
138 TEST_FIELD(COMMPROP
, DWORD
, dwMaxRxQueue
, 16, 4, 4);
139 TEST_FIELD(COMMPROP
, DWORD
, dwMaxBaud
, 20, 4, 4);
140 TEST_FIELD(COMMPROP
, DWORD
, dwProvSubType
, 24, 4, 4);
141 TEST_FIELD(COMMPROP
, DWORD
, dwProvCapabilities
, 28, 4, 4);
142 TEST_FIELD(COMMPROP
, DWORD
, dwSettableParams
, 32, 4, 4);
143 TEST_FIELD(COMMPROP
, DWORD
, dwSettableBaud
, 36, 4, 4);
144 TEST_FIELD(COMMPROP
, WORD
, wSettableData
, 40, 2, 2);
145 TEST_FIELD(COMMPROP
, WORD
, wSettableStopParity
, 42, 2, 2);
146 TEST_FIELD(COMMPROP
, DWORD
, dwCurrentTxQueue
, 44, 4, 4);
147 TEST_FIELD(COMMPROP
, DWORD
, dwCurrentRxQueue
, 48, 4, 4);
148 TEST_FIELD(COMMPROP
, DWORD
, dwProvSpec1
, 52, 4, 4);
149 TEST_FIELD(COMMPROP
, DWORD
, dwProvSpec2
, 56, 4, 4);
150 TEST_FIELD(COMMPROP
, WCHAR
[1], wcProvChar
, 60, 2, 2);
152 /* COMMTIMEOUTS (pack 4) */
153 TEST_TYPE(COMMTIMEOUTS
, 20, 4);
154 TEST_FIELD(COMMTIMEOUTS
, DWORD
, ReadIntervalTimeout
, 0, 4, 4);
155 TEST_FIELD(COMMTIMEOUTS
, DWORD
, ReadTotalTimeoutMultiplier
, 4, 4, 4);
156 TEST_FIELD(COMMTIMEOUTS
, DWORD
, ReadTotalTimeoutConstant
, 8, 4, 4);
157 TEST_FIELD(COMMTIMEOUTS
, DWORD
, WriteTotalTimeoutMultiplier
, 12, 4, 4);
158 TEST_FIELD(COMMTIMEOUTS
, DWORD
, WriteTotalTimeoutConstant
, 16, 4, 4);
160 /* COMSTAT (pack 4) */
161 TEST_TYPE(COMSTAT
, 12, 4);
162 TEST_FIELD(COMSTAT
, DWORD
, cbInQue
, 4, 4, 4);
163 TEST_FIELD(COMSTAT
, DWORD
, cbOutQue
, 8, 4, 4);
165 /* CREATE_PROCESS_DEBUG_INFO (pack 4) */
166 TEST_TYPE(CREATE_PROCESS_DEBUG_INFO
, 40, 4);
167 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO
, HANDLE
, hFile
, 0, 4, 4);
168 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO
, HANDLE
, hProcess
, 4, 4, 4);
169 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO
, HANDLE
, hThread
, 8, 4, 4);
170 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO
, LPVOID
, lpBaseOfImage
, 12, 4, 4);
171 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO
, DWORD
, dwDebugInfoFileOffset
, 16, 4, 4);
172 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO
, DWORD
, nDebugInfoSize
, 20, 4, 4);
173 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO
, LPVOID
, lpThreadLocalBase
, 24, 4, 4);
174 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO
, LPTHREAD_START_ROUTINE
, lpStartAddress
, 28, 4, 4);
175 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO
, LPVOID
, lpImageName
, 32, 4, 4);
176 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO
, WORD
, fUnicode
, 36, 2, 2);
178 /* CREATE_THREAD_DEBUG_INFO (pack 4) */
179 TEST_TYPE(CREATE_THREAD_DEBUG_INFO
, 12, 4);
180 TEST_FIELD(CREATE_THREAD_DEBUG_INFO
, HANDLE
, hThread
, 0, 4, 4);
181 TEST_FIELD(CREATE_THREAD_DEBUG_INFO
, LPVOID
, lpThreadLocalBase
, 4, 4, 4);
182 TEST_FIELD(CREATE_THREAD_DEBUG_INFO
, LPTHREAD_START_ROUTINE
, lpStartAddress
, 8, 4, 4);
184 /* CRITICAL_SECTION */
185 TEST_TYPE(CRITICAL_SECTION
, 24, 4);
187 /* CRITICAL_SECTION_DEBUG */
188 TEST_TYPE(CRITICAL_SECTION_DEBUG
, 32, 4);
191 TEST_FIELD(DCB
, DWORD
, DCBlength
, 0, 4, 4);
192 TEST_FIELD(DCB
, DWORD
, BaudRate
, 4, 4, 4);
194 /* DEBUG_EVENT (pack 4) */
195 TEST_FIELD(DEBUG_EVENT
, DWORD
, dwDebugEventCode
, 0, 4, 4);
196 TEST_FIELD(DEBUG_EVENT
, DWORD
, dwProcessId
, 4, 4, 4);
197 TEST_FIELD(DEBUG_EVENT
, DWORD
, dwThreadId
, 8, 4, 4);
199 /* ENUMRESLANGPROCA */
201 /* ENUMRESLANGPROCW */
203 /* ENUMRESNAMEPROCA */
205 /* ENUMRESNAMEPROCW */
207 /* ENUMRESTYPEPROCA */
209 /* ENUMRESTYPEPROCW */
211 /* EXCEPTION_DEBUG_INFO (pack 4) */
212 TEST_TYPE(EXCEPTION_DEBUG_INFO
, 84, 4);
213 TEST_FIELD(EXCEPTION_DEBUG_INFO
, EXCEPTION_RECORD
, ExceptionRecord
, 0, 80, 4);
214 TEST_FIELD(EXCEPTION_DEBUG_INFO
, DWORD
, dwFirstChance
, 80, 4, 4);
216 /* EXIT_PROCESS_DEBUG_INFO (pack 4) */
217 TEST_TYPE(EXIT_PROCESS_DEBUG_INFO
, 4, 4);
218 TEST_FIELD(EXIT_PROCESS_DEBUG_INFO
, DWORD
, dwExitCode
, 0, 4, 4);
220 /* EXIT_THREAD_DEBUG_INFO (pack 4) */
221 TEST_TYPE(EXIT_THREAD_DEBUG_INFO
, 4, 4);
222 TEST_FIELD(EXIT_THREAD_DEBUG_INFO
, DWORD
, dwExitCode
, 0, 4, 4);
224 /* HW_PROFILE_INFOA (pack 4) */
225 TEST_TYPE(HW_PROFILE_INFOA
, 124, 4);
226 TEST_FIELD(HW_PROFILE_INFOA
, DWORD
, dwDockInfo
, 0, 4, 4);
227 TEST_FIELD(HW_PROFILE_INFOA
, CHAR
[HW_PROFILE_GUIDLEN
], szHwProfileGuid
, 4, 39, 1);
228 TEST_FIELD(HW_PROFILE_INFOA
, CHAR
[MAX_PROFILE_LEN
], szHwProfileName
, 43, 80, 1);
230 /* LDT_ENTRY (pack 4) */
231 TEST_FIELD(LDT_ENTRY
, WORD
, LimitLow
, 0, 2, 2);
232 TEST_FIELD(LDT_ENTRY
, WORD
, BaseLow
, 2, 2, 2);
234 /* LOAD_DLL_DEBUG_INFO (pack 4) */
235 TEST_TYPE(LOAD_DLL_DEBUG_INFO
, 24, 4);
236 TEST_FIELD(LOAD_DLL_DEBUG_INFO
, HANDLE
, hFile
, 0, 4, 4);
237 TEST_FIELD(LOAD_DLL_DEBUG_INFO
, LPVOID
, lpBaseOfDll
, 4, 4, 4);
238 TEST_FIELD(LOAD_DLL_DEBUG_INFO
, DWORD
, dwDebugInfoFileOffset
, 8, 4, 4);
239 TEST_FIELD(LOAD_DLL_DEBUG_INFO
, DWORD
, nDebugInfoSize
, 12, 4, 4);
240 TEST_FIELD(LOAD_DLL_DEBUG_INFO
, LPVOID
, lpImageName
, 16, 4, 4);
241 TEST_FIELD(LOAD_DLL_DEBUG_INFO
, WORD
, fUnicode
, 20, 2, 2);
243 /* LPBY_HANDLE_FILE_INFORMATION */
244 TEST_TYPE(LPBY_HANDLE_FILE_INFORMATION
, 4, 4);
245 TEST_TYPE_POINTER(LPBY_HANDLE_FILE_INFORMATION
, 52, 4);
248 TEST_TYPE(LPCOMMCONFIG
, 4, 4);
251 TEST_TYPE(LPCOMMPROP
, 4, 4);
252 TEST_TYPE_POINTER(LPCOMMPROP
, 64, 4);
255 TEST_TYPE(LPCOMMTIMEOUTS
, 4, 4);
256 TEST_TYPE_POINTER(LPCOMMTIMEOUTS
, 20, 4);
259 TEST_TYPE(LPCOMSTAT
, 4, 4);
260 TEST_TYPE_POINTER(LPCOMSTAT
, 12, 4);
263 TEST_TYPE(LPCONTEXT
, 4, 4);
265 /* LPCRITICAL_SECTION */
266 TEST_TYPE(LPCRITICAL_SECTION
, 4, 4);
268 /* LPCRITICAL_SECTION_DEBUG */
269 TEST_TYPE(LPCRITICAL_SECTION_DEBUG
, 4, 4);
272 TEST_TYPE(LPDCB
, 4, 4);
275 TEST_TYPE(LPDEBUG_EVENT
, 4, 4);
277 /* LPEXCEPTION_POINTERS */
278 TEST_TYPE(LPEXCEPTION_POINTERS
, 4, 4);
280 /* LPEXCEPTION_RECORD */
281 TEST_TYPE(LPEXCEPTION_RECORD
, 4, 4);
283 /* LPFIBER_START_ROUTINE */
285 /* LPHW_PROFILE_INFOA */
286 TEST_TYPE(LPHW_PROFILE_INFOA
, 4, 4);
287 TEST_TYPE_POINTER(LPHW_PROFILE_INFOA
, 124, 4);
289 /* LPHW_PROFILE_INFOW */
290 TEST_TYPE(LPHW_PROFILE_INFOW
, 4, 4);
291 TEST_TYPE_POINTER(LPHW_PROFILE_INFOW
, 244, 4);
294 TEST_TYPE(LPLDT_ENTRY
, 4, 4);
297 TEST_TYPE(LPMEMORYSTATUS
, 4, 4);
298 TEST_TYPE_POINTER(LPMEMORYSTATUS
, 32, 4);
301 TEST_TYPE(LPOFSTRUCT
, 4, 4);
302 TEST_TYPE_POINTER(LPOFSTRUCT
, 136, 2);
304 /* LPOSVERSIONINFOA */
305 TEST_TYPE(LPOSVERSIONINFOA
, 4, 4);
306 TEST_TYPE_POINTER(LPOSVERSIONINFOA
, 148, 4);
308 /* LPOSVERSIONINFOEXA */
309 TEST_TYPE(LPOSVERSIONINFOEXA
, 4, 4);
311 /* LPOSVERSIONINFOEXW */
312 TEST_TYPE(LPOSVERSIONINFOEXW
, 4, 4);
314 /* LPOSVERSIONINFOW */
315 TEST_TYPE(LPOSVERSIONINFOW
, 4, 4);
316 TEST_TYPE_POINTER(LPOSVERSIONINFOW
, 276, 4);
319 TEST_TYPE(LPOVERLAPPED
, 4, 4);
320 TEST_TYPE_POINTER(LPOVERLAPPED
, 20, 4);
322 /* LPOVERLAPPED_COMPLETION_ROUTINE */
324 /* LPPROCESS_HEAP_ENTRY */
325 TEST_TYPE(LPPROCESS_HEAP_ENTRY
, 4, 4);
327 /* LPPROCESS_INFORMATION */
328 TEST_TYPE(LPPROCESS_INFORMATION
, 4, 4);
329 TEST_TYPE_POINTER(LPPROCESS_INFORMATION
, 16, 4);
331 /* LPPROGRESS_ROUTINE */
333 /* LPSECURITY_ATTRIBUTES */
334 TEST_TYPE(LPSECURITY_ATTRIBUTES
, 4, 4);
335 TEST_TYPE_POINTER(LPSECURITY_ATTRIBUTES
, 12, 4);
338 TEST_TYPE(LPSTARTUPINFOA
, 4, 4);
339 TEST_TYPE_POINTER(LPSTARTUPINFOA
, 68, 4);
342 TEST_TYPE(LPSTARTUPINFOW
, 4, 4);
343 TEST_TYPE_POINTER(LPSTARTUPINFOW
, 68, 4);
346 TEST_TYPE(LPSYSTEMTIME
, 4, 4);
347 TEST_TYPE_POINTER(LPSYSTEMTIME
, 16, 2);
350 TEST_TYPE(LPSYSTEM_INFO
, 4, 4);
352 /* LPSYSTEM_POWER_STATUS */
353 TEST_TYPE(LPSYSTEM_POWER_STATUS
, 4, 4);
354 TEST_TYPE_POINTER(LPSYSTEM_POWER_STATUS
, 12, 4);
356 /* LPTHREAD_START_ROUTINE */
358 /* LPTIME_ZONE_INFORMATION */
359 TEST_TYPE(LPTIME_ZONE_INFORMATION
, 4, 4);
360 TEST_TYPE_POINTER(LPTIME_ZONE_INFORMATION
, 172, 4);
362 /* LPWIN32_FILE_ATTRIBUTE_DATA */
363 TEST_TYPE(LPWIN32_FILE_ATTRIBUTE_DATA
, 4, 4);
364 TEST_TYPE_POINTER(LPWIN32_FILE_ATTRIBUTE_DATA
, 36, 4);
366 /* LPWIN32_FIND_DATAA */
367 TEST_TYPE(LPWIN32_FIND_DATAA
, 4, 4);
368 TEST_TYPE_POINTER(LPWIN32_FIND_DATAA
, 320, 4);
370 /* LPWIN32_FIND_DATAW */
371 TEST_TYPE(LPWIN32_FIND_DATAW
, 4, 4);
372 TEST_TYPE_POINTER(LPWIN32_FIND_DATAW
, 592, 4);
374 /* LPWIN32_STREAM_ID */
375 TEST_TYPE(LPWIN32_STREAM_ID
, 4, 4);
376 TEST_TYPE_POINTER(LPWIN32_STREAM_ID
, 24, 4);
378 /* MEMORYSTATUS (pack 4) */
379 TEST_TYPE(MEMORYSTATUS
, 32, 4);
380 TEST_FIELD(MEMORYSTATUS
, DWORD
, dwLength
, 0, 4, 4);
381 TEST_FIELD(MEMORYSTATUS
, DWORD
, dwMemoryLoad
, 4, 4, 4);
382 TEST_FIELD(MEMORYSTATUS
, SIZE_T
, dwTotalPhys
, 8, 4, 4);
383 TEST_FIELD(MEMORYSTATUS
, SIZE_T
, dwAvailPhys
, 12, 4, 4);
384 TEST_FIELD(MEMORYSTATUS
, SIZE_T
, dwTotalPageFile
, 16, 4, 4);
385 TEST_FIELD(MEMORYSTATUS
, SIZE_T
, dwAvailPageFile
, 20, 4, 4);
386 TEST_FIELD(MEMORYSTATUS
, SIZE_T
, dwTotalVirtual
, 24, 4, 4);
387 TEST_FIELD(MEMORYSTATUS
, SIZE_T
, dwAvailVirtual
, 28, 4, 4);
389 /* OFSTRUCT (pack 4) */
390 TEST_TYPE(OFSTRUCT
, 136, 2);
391 TEST_FIELD(OFSTRUCT
, BYTE
, cBytes
, 0, 1, 1);
392 TEST_FIELD(OFSTRUCT
, BYTE
, fFixedDisk
, 1, 1, 1);
393 TEST_FIELD(OFSTRUCT
, WORD
, nErrCode
, 2, 2, 2);
394 TEST_FIELD(OFSTRUCT
, WORD
, Reserved1
, 4, 2, 2);
395 TEST_FIELD(OFSTRUCT
, WORD
, Reserved2
, 6, 2, 2);
396 TEST_FIELD(OFSTRUCT
, BYTE
[OFS_MAXPATHNAME
], szPathName
, 8, 128, 1);
398 /* OSVERSIONINFOA (pack 4) */
399 TEST_TYPE(OSVERSIONINFOA
, 148, 4);
400 TEST_FIELD(OSVERSIONINFOA
, DWORD
, dwOSVersionInfoSize
, 0, 4, 4);
401 TEST_FIELD(OSVERSIONINFOA
, DWORD
, dwMajorVersion
, 4, 4, 4);
402 TEST_FIELD(OSVERSIONINFOA
, DWORD
, dwMinorVersion
, 8, 4, 4);
403 TEST_FIELD(OSVERSIONINFOA
, DWORD
, dwBuildNumber
, 12, 4, 4);
404 TEST_FIELD(OSVERSIONINFOA
, DWORD
, dwPlatformId
, 16, 4, 4);
405 TEST_FIELD(OSVERSIONINFOA
, CHAR
[128], szCSDVersion
, 20, 128, 1);
407 /* OSVERSIONINFOEXA (pack 4) */
408 TEST_FIELD(OSVERSIONINFOEXA
, DWORD
, dwOSVersionInfoSize
, 0, 4, 4);
409 TEST_FIELD(OSVERSIONINFOEXA
, DWORD
, dwMajorVersion
, 4, 4, 4);
410 TEST_FIELD(OSVERSIONINFOEXA
, DWORD
, dwMinorVersion
, 8, 4, 4);
411 TEST_FIELD(OSVERSIONINFOEXA
, DWORD
, dwBuildNumber
, 12, 4, 4);
412 TEST_FIELD(OSVERSIONINFOEXA
, DWORD
, dwPlatformId
, 16, 4, 4);
413 TEST_FIELD(OSVERSIONINFOEXA
, CHAR
[128], szCSDVersion
, 20, 128, 1);
414 TEST_FIELD(OSVERSIONINFOEXA
, WORD
, wServicePackMajor
, 148, 2, 2);
415 TEST_FIELD(OSVERSIONINFOEXA
, WORD
, wServicePackMinor
, 150, 2, 2);
417 /* OSVERSIONINFOEXW (pack 4) */
418 TEST_FIELD(OSVERSIONINFOEXW
, DWORD
, dwOSVersionInfoSize
, 0, 4, 4);
419 TEST_FIELD(OSVERSIONINFOEXW
, DWORD
, dwMajorVersion
, 4, 4, 4);
420 TEST_FIELD(OSVERSIONINFOEXW
, DWORD
, dwMinorVersion
, 8, 4, 4);
421 TEST_FIELD(OSVERSIONINFOEXW
, DWORD
, dwBuildNumber
, 12, 4, 4);
422 TEST_FIELD(OSVERSIONINFOEXW
, DWORD
, dwPlatformId
, 16, 4, 4);
423 TEST_FIELD(OSVERSIONINFOEXW
, WCHAR
[128], szCSDVersion
, 20, 256, 2);
424 TEST_FIELD(OSVERSIONINFOEXW
, WORD
, wServicePackMajor
, 276, 2, 2);
425 TEST_FIELD(OSVERSIONINFOEXW
, WORD
, wServicePackMinor
, 278, 2, 2);
427 /* OSVERSIONINFOW (pack 4) */
428 TEST_TYPE(OSVERSIONINFOW
, 276, 4);
429 TEST_FIELD(OSVERSIONINFOW
, DWORD
, dwOSVersionInfoSize
, 0, 4, 4);
430 TEST_FIELD(OSVERSIONINFOW
, DWORD
, dwMajorVersion
, 4, 4, 4);
431 TEST_FIELD(OSVERSIONINFOW
, DWORD
, dwMinorVersion
, 8, 4, 4);
432 TEST_FIELD(OSVERSIONINFOW
, DWORD
, dwBuildNumber
, 12, 4, 4);
433 TEST_FIELD(OSVERSIONINFOW
, DWORD
, dwPlatformId
, 16, 4, 4);
434 TEST_FIELD(OSVERSIONINFOW
, WCHAR
[128], szCSDVersion
, 20, 256, 2);
436 /* OUTPUT_DEBUG_STRING_INFO (pack 4) */
437 TEST_TYPE(OUTPUT_DEBUG_STRING_INFO
, 8, 4);
438 TEST_FIELD(OUTPUT_DEBUG_STRING_INFO
, LPSTR
, lpDebugStringData
, 0, 4, 4);
439 TEST_FIELD(OUTPUT_DEBUG_STRING_INFO
, WORD
, fUnicode
, 4, 2, 2);
440 TEST_FIELD(OUTPUT_DEBUG_STRING_INFO
, WORD
, nDebugStringLength
, 6, 2, 2);
442 /* OVERLAPPED (pack 4) */
443 TEST_TYPE(OVERLAPPED
, 20, 4);
444 TEST_FIELD(OVERLAPPED
, DWORD
, Internal
, 0, 4, 4);
445 TEST_FIELD(OVERLAPPED
, DWORD
, InternalHigh
, 4, 4, 4);
446 TEST_FIELD(OVERLAPPED
, DWORD
, Offset
, 8, 4, 4);
447 TEST_FIELD(OVERLAPPED
, DWORD
, OffsetHigh
, 12, 4, 4);
448 TEST_FIELD(OVERLAPPED
, HANDLE
, hEvent
, 16, 4, 4);
452 /* PBY_HANDLE_FILE_INFORMATION */
453 TEST_TYPE(PBY_HANDLE_FILE_INFORMATION
, 4, 4);
454 TEST_TYPE_POINTER(PBY_HANDLE_FILE_INFORMATION
, 52, 4);
456 /* PCRITICAL_SECTION */
457 TEST_TYPE(PCRITICAL_SECTION
, 4, 4);
459 /* PCRITICAL_SECTION_DEBUG */
460 TEST_TYPE(PCRITICAL_SECTION_DEBUG
, 4, 4);
462 /* PFIBER_START_ROUTINE */
465 TEST_TYPE(POFSTRUCT
, 4, 4);
466 TEST_TYPE_POINTER(POFSTRUCT
, 136, 2);
468 /* POSVERSIONINFOA */
469 TEST_TYPE(POSVERSIONINFOA
, 4, 4);
470 TEST_TYPE_POINTER(POSVERSIONINFOA
, 148, 4);
472 /* POSVERSIONINFOEXA */
473 TEST_TYPE(POSVERSIONINFOEXA
, 4, 4);
475 /* POSVERSIONINFOEXW */
476 TEST_TYPE(POSVERSIONINFOEXW
, 4, 4);
478 /* POSVERSIONINFOW */
479 TEST_TYPE(POSVERSIONINFOW
, 4, 4);
480 TEST_TYPE_POINTER(POSVERSIONINFOW
, 276, 4);
482 /* PPROCESS_HEAP_ENTRY */
483 TEST_TYPE(PPROCESS_HEAP_ENTRY
, 4, 4);
485 /* PPROCESS_INFORMATION */
486 TEST_TYPE(PPROCESS_INFORMATION
, 4, 4);
487 TEST_TYPE_POINTER(PPROCESS_INFORMATION
, 16, 4);
489 /* PROCESS_HEAP_ENTRY (pack 4) */
490 TEST_FIELD(PROCESS_HEAP_ENTRY
, LPVOID
, lpData
, 0, 4, 4);
491 TEST_FIELD(PROCESS_HEAP_ENTRY
, DWORD
, cbData
, 4, 4, 4);
492 TEST_FIELD(PROCESS_HEAP_ENTRY
, BYTE
, cbOverhead
, 8, 1, 1);
493 TEST_FIELD(PROCESS_HEAP_ENTRY
, BYTE
, iRegionIndex
, 9, 1, 1);
494 TEST_FIELD(PROCESS_HEAP_ENTRY
, WORD
, wFlags
, 10, 2, 2);
496 /* PROCESS_INFORMATION (pack 4) */
497 TEST_TYPE(PROCESS_INFORMATION
, 16, 4);
498 TEST_FIELD(PROCESS_INFORMATION
, HANDLE
, hProcess
, 0, 4, 4);
499 TEST_FIELD(PROCESS_INFORMATION
, HANDLE
, hThread
, 4, 4, 4);
500 TEST_FIELD(PROCESS_INFORMATION
, DWORD
, dwProcessId
, 8, 4, 4);
501 TEST_FIELD(PROCESS_INFORMATION
, DWORD
, dwThreadId
, 12, 4, 4);
503 /* PSECURITY_ATTRIBUTES */
504 TEST_TYPE(PSECURITY_ATTRIBUTES
, 4, 4);
505 TEST_TYPE_POINTER(PSECURITY_ATTRIBUTES
, 12, 4);
508 TEST_TYPE(PSYSTEMTIME
, 4, 4);
509 TEST_TYPE_POINTER(PSYSTEMTIME
, 16, 2);
511 /* PTIMERAPCROUTINE */
513 /* PTIME_ZONE_INFORMATION */
514 TEST_TYPE(PTIME_ZONE_INFORMATION
, 4, 4);
515 TEST_TYPE_POINTER(PTIME_ZONE_INFORMATION
, 172, 4);
517 /* PWIN32_FIND_DATAA */
518 TEST_TYPE(PWIN32_FIND_DATAA
, 4, 4);
519 TEST_TYPE_POINTER(PWIN32_FIND_DATAA
, 320, 4);
521 /* PWIN32_FIND_DATAW */
522 TEST_TYPE(PWIN32_FIND_DATAW
, 4, 4);
523 TEST_TYPE_POINTER(PWIN32_FIND_DATAW
, 592, 4);
525 /* RIP_INFO (pack 4) */
526 TEST_TYPE(RIP_INFO
, 8, 4);
527 TEST_FIELD(RIP_INFO
, DWORD
, dwError
, 0, 4, 4);
528 TEST_FIELD(RIP_INFO
, DWORD
, dwType
, 4, 4, 4);
530 /* SECURITY_ATTRIBUTES (pack 4) */
531 TEST_TYPE(SECURITY_ATTRIBUTES
, 12, 4);
532 TEST_FIELD(SECURITY_ATTRIBUTES
, DWORD
, nLength
, 0, 4, 4);
533 TEST_FIELD(SECURITY_ATTRIBUTES
, LPVOID
, lpSecurityDescriptor
, 4, 4, 4);
534 TEST_FIELD(SECURITY_ATTRIBUTES
, BOOL
, bInheritHandle
, 8, 4, 4);
536 /* STARTUPINFOA (pack 4) */
537 TEST_TYPE(STARTUPINFOA
, 68, 4);
538 TEST_FIELD(STARTUPINFOA
, DWORD
, cb
, 0, 4, 4);
539 TEST_FIELD(STARTUPINFOA
, LPSTR
, lpReserved
, 4, 4, 4);
540 TEST_FIELD(STARTUPINFOA
, LPSTR
, lpDesktop
, 8, 4, 4);
541 TEST_FIELD(STARTUPINFOA
, LPSTR
, lpTitle
, 12, 4, 4);
542 TEST_FIELD(STARTUPINFOA
, DWORD
, dwX
, 16, 4, 4);
543 TEST_FIELD(STARTUPINFOA
, DWORD
, dwY
, 20, 4, 4);
544 TEST_FIELD(STARTUPINFOA
, DWORD
, dwXSize
, 24, 4, 4);
545 TEST_FIELD(STARTUPINFOA
, DWORD
, dwYSize
, 28, 4, 4);
546 TEST_FIELD(STARTUPINFOA
, DWORD
, dwXCountChars
, 32, 4, 4);
547 TEST_FIELD(STARTUPINFOA
, DWORD
, dwYCountChars
, 36, 4, 4);
548 TEST_FIELD(STARTUPINFOA
, DWORD
, dwFillAttribute
, 40, 4, 4);
549 TEST_FIELD(STARTUPINFOA
, DWORD
, dwFlags
, 44, 4, 4);
550 TEST_FIELD(STARTUPINFOA
, WORD
, wShowWindow
, 48, 2, 2);
551 TEST_FIELD(STARTUPINFOA
, WORD
, cbReserved2
, 50, 2, 2);
552 TEST_FIELD(STARTUPINFOA
, BYTE
*, lpReserved2
, 52, 4, 4);
553 TEST_FIELD(STARTUPINFOA
, HANDLE
, hStdInput
, 56, 4, 4);
554 TEST_FIELD(STARTUPINFOA
, HANDLE
, hStdOutput
, 60, 4, 4);
555 TEST_FIELD(STARTUPINFOA
, HANDLE
, hStdError
, 64, 4, 4);
557 /* STARTUPINFOW (pack 4) */
558 TEST_TYPE(STARTUPINFOW
, 68, 4);
559 TEST_FIELD(STARTUPINFOW
, DWORD
, cb
, 0, 4, 4);
560 TEST_FIELD(STARTUPINFOW
, LPWSTR
, lpReserved
, 4, 4, 4);
561 TEST_FIELD(STARTUPINFOW
, LPWSTR
, lpDesktop
, 8, 4, 4);
562 TEST_FIELD(STARTUPINFOW
, LPWSTR
, lpTitle
, 12, 4, 4);
563 TEST_FIELD(STARTUPINFOW
, DWORD
, dwX
, 16, 4, 4);
564 TEST_FIELD(STARTUPINFOW
, DWORD
, dwY
, 20, 4, 4);
565 TEST_FIELD(STARTUPINFOW
, DWORD
, dwXSize
, 24, 4, 4);
566 TEST_FIELD(STARTUPINFOW
, DWORD
, dwYSize
, 28, 4, 4);
567 TEST_FIELD(STARTUPINFOW
, DWORD
, dwXCountChars
, 32, 4, 4);
568 TEST_FIELD(STARTUPINFOW
, DWORD
, dwYCountChars
, 36, 4, 4);
569 TEST_FIELD(STARTUPINFOW
, DWORD
, dwFillAttribute
, 40, 4, 4);
570 TEST_FIELD(STARTUPINFOW
, DWORD
, dwFlags
, 44, 4, 4);
571 TEST_FIELD(STARTUPINFOW
, WORD
, wShowWindow
, 48, 2, 2);
572 TEST_FIELD(STARTUPINFOW
, WORD
, cbReserved2
, 50, 2, 2);
573 TEST_FIELD(STARTUPINFOW
, BYTE
*, lpReserved2
, 52, 4, 4);
574 TEST_FIELD(STARTUPINFOW
, HANDLE
, hStdInput
, 56, 4, 4);
575 TEST_FIELD(STARTUPINFOW
, HANDLE
, hStdOutput
, 60, 4, 4);
576 TEST_FIELD(STARTUPINFOW
, HANDLE
, hStdError
, 64, 4, 4);
578 /* SYSTEMTIME (pack 4) */
579 TEST_TYPE(SYSTEMTIME
, 16, 2);
580 TEST_FIELD(SYSTEMTIME
, WORD
, wYear
, 0, 2, 2);
581 TEST_FIELD(SYSTEMTIME
, WORD
, wMonth
, 2, 2, 2);
582 TEST_FIELD(SYSTEMTIME
, WORD
, wDayOfWeek
, 4, 2, 2);
583 TEST_FIELD(SYSTEMTIME
, WORD
, wDay
, 6, 2, 2);
584 TEST_FIELD(SYSTEMTIME
, WORD
, wHour
, 8, 2, 2);
585 TEST_FIELD(SYSTEMTIME
, WORD
, wMinute
, 10, 2, 2);
586 TEST_FIELD(SYSTEMTIME
, WORD
, wSecond
, 12, 2, 2);
587 TEST_FIELD(SYSTEMTIME
, WORD
, wMilliseconds
, 14, 2, 2);
589 /* SYSTEM_POWER_STATUS (pack 4) */
590 TEST_TYPE(SYSTEM_POWER_STATUS
, 12, 4);
591 TEST_FIELD(SYSTEM_POWER_STATUS
, BYTE
, ACLineStatus
, 0, 1, 1);
592 TEST_FIELD(SYSTEM_POWER_STATUS
, BYTE
, BatteryFlag
, 1, 1, 1);
593 TEST_FIELD(SYSTEM_POWER_STATUS
, BYTE
, BatteryLifePercent
, 2, 1, 1);
594 TEST_FIELD(SYSTEM_POWER_STATUS
, BYTE
, Reserved1
, 3, 1, 1);
595 TEST_FIELD(SYSTEM_POWER_STATUS
, DWORD
, BatteryLifeTime
, 4, 4, 4);
596 TEST_FIELD(SYSTEM_POWER_STATUS
, DWORD
, BatteryFullLifeTime
, 8, 4, 4);
598 /* TIME_ZONE_INFORMATION (pack 4) */
599 TEST_TYPE(TIME_ZONE_INFORMATION
, 172, 4);
600 TEST_FIELD(TIME_ZONE_INFORMATION
, LONG
, Bias
, 0, 4, 4);
601 TEST_FIELD(TIME_ZONE_INFORMATION
, WCHAR
[32], StandardName
, 4, 64, 2);
602 TEST_FIELD(TIME_ZONE_INFORMATION
, SYSTEMTIME
, StandardDate
, 68, 16, 2);
603 TEST_FIELD(TIME_ZONE_INFORMATION
, LONG
, StandardBias
, 84, 4, 4);
604 TEST_FIELD(TIME_ZONE_INFORMATION
, WCHAR
[32], DaylightName
, 88, 64, 2);
605 TEST_FIELD(TIME_ZONE_INFORMATION
, SYSTEMTIME
, DaylightDate
, 152, 16, 2);
606 TEST_FIELD(TIME_ZONE_INFORMATION
, LONG
, DaylightBias
, 168, 4, 4);
608 /* UNLOAD_DLL_DEBUG_INFO (pack 4) */
609 TEST_TYPE(UNLOAD_DLL_DEBUG_INFO
, 4, 4);
610 TEST_FIELD(UNLOAD_DLL_DEBUG_INFO
, LPVOID
, lpBaseOfDll
, 0, 4, 4);
612 /* WAITORTIMERCALLBACK */
614 /* WIN32_FILE_ATTRIBUTE_DATA (pack 4) */
615 TEST_TYPE(WIN32_FILE_ATTRIBUTE_DATA
, 36, 4);
616 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA
, DWORD
, dwFileAttributes
, 0, 4, 4);
617 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA
, FILETIME
, ftCreationTime
, 4, 8, 4);
618 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA
, FILETIME
, ftLastAccessTime
, 12, 8, 4);
619 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA
, FILETIME
, ftLastWriteTime
, 20, 8, 4);
620 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA
, DWORD
, nFileSizeHigh
, 28, 4, 4);
621 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA
, DWORD
, nFileSizeLow
, 32, 4, 4);
623 /* WIN32_FIND_DATAA (pack 4) */
624 TEST_TYPE(WIN32_FIND_DATAA
, 320, 4);
625 TEST_FIELD(WIN32_FIND_DATAA
, DWORD
, dwFileAttributes
, 0, 4, 4);
626 TEST_FIELD(WIN32_FIND_DATAA
, FILETIME
, ftCreationTime
, 4, 8, 4);
627 TEST_FIELD(WIN32_FIND_DATAA
, FILETIME
, ftLastAccessTime
, 12, 8, 4);
628 TEST_FIELD(WIN32_FIND_DATAA
, FILETIME
, ftLastWriteTime
, 20, 8, 4);
629 TEST_FIELD(WIN32_FIND_DATAA
, DWORD
, nFileSizeHigh
, 28, 4, 4);
630 TEST_FIELD(WIN32_FIND_DATAA
, DWORD
, nFileSizeLow
, 32, 4, 4);
631 TEST_FIELD(WIN32_FIND_DATAA
, DWORD
, dwReserved0
, 36, 4, 4);
632 TEST_FIELD(WIN32_FIND_DATAA
, DWORD
, dwReserved1
, 40, 4, 4);
633 TEST_FIELD(WIN32_FIND_DATAA
, CHAR
[260], cFileName
, 44, 260, 1);
634 TEST_FIELD(WIN32_FIND_DATAA
, CHAR
[14], cAlternateFileName
, 304, 14, 1);
636 /* WIN32_FIND_DATAW (pack 4) */
637 TEST_TYPE(WIN32_FIND_DATAW
, 592, 4);
638 TEST_FIELD(WIN32_FIND_DATAW
, DWORD
, dwFileAttributes
, 0, 4, 4);
639 TEST_FIELD(WIN32_FIND_DATAW
, FILETIME
, ftCreationTime
, 4, 8, 4);
640 TEST_FIELD(WIN32_FIND_DATAW
, FILETIME
, ftLastAccessTime
, 12, 8, 4);
641 TEST_FIELD(WIN32_FIND_DATAW
, FILETIME
, ftLastWriteTime
, 20, 8, 4);
642 TEST_FIELD(WIN32_FIND_DATAW
, DWORD
, nFileSizeHigh
, 28, 4, 4);
643 TEST_FIELD(WIN32_FIND_DATAW
, DWORD
, nFileSizeLow
, 32, 4, 4);
644 TEST_FIELD(WIN32_FIND_DATAW
, DWORD
, dwReserved0
, 36, 4, 4);
645 TEST_FIELD(WIN32_FIND_DATAW
, DWORD
, dwReserved1
, 40, 4, 4);
646 TEST_FIELD(WIN32_FIND_DATAW
, WCHAR
[260], cFileName
, 44, 520, 2);
647 TEST_FIELD(WIN32_FIND_DATAW
, WCHAR
[14], cAlternateFileName
, 564, 28, 2);
651 START_TEST(generated
)