/* File generated automatically from tools/winapi/tests.dat; do not edit! */
/* This file can be copied, modified and distributed without restriction. */

/*
 * Unit tests for data structure packing
 */

#define WINVER 0x0501
#define _WIN32_IE 0x0501
#define _WIN32_WINNT 0x0501

#define WINE_NOWINSOCK

#include "windows.h"

#include "wine/test.h"

/***********************************************************************
 * Compatibility macros
 */

#define DWORD_PTR UINT_PTR
#define LONG_PTR INT_PTR
#define ULONG_PTR UINT_PTR

/***********************************************************************
 * Windows API extension
 */

#if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)
# define _TYPE_ALIGNMENT(type) __alignof(type)
#elif defined(__GNUC__)
# define _TYPE_ALIGNMENT(type) __alignof__(type)
#else
/*
 * FIXME: May not be possible without a compiler extension
 *        (if type is not just a name that is, otherwise the normal
 *         TYPE_ALIGNMENT can be used)
 */
#endif

#if defined(TYPE_ALIGNMENT) && defined(_MSC_VER) && _MSC_VER >= 800 && !defined(__cplusplus)
#pragma warning(disable:4116)
#endif

#if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT)
# define TYPE_ALIGNMENT _TYPE_ALIGNMENT
#endif

/***********************************************************************
 * Test helper macros
 */

#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)

#else

# 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);

#endif

#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_LPOSVERSIONINFOA(void)
{
    /* LPOSVERSIONINFOA */
    TEST_TYPE_SIZE   (LPOSVERSIONINFOA, 4)
    TEST_TYPE_ALIGN  (LPOSVERSIONINFOA, 4)
    TEST_TARGET_SIZE (LPOSVERSIONINFOA, 148)
    TEST_TARGET_ALIGN(LPOSVERSIONINFOA, 4)
}

static void test_pack_LPOSVERSIONINFOEXA(void)
{
    /* LPOSVERSIONINFOEXA */
    TEST_TYPE_SIZE   (LPOSVERSIONINFOEXA, 4)
    TEST_TYPE_ALIGN  (LPOSVERSIONINFOEXA, 4)
    TEST_TARGET_SIZE (LPOSVERSIONINFOEXA, 156)
    TEST_TARGET_ALIGN(LPOSVERSIONINFOEXA, 4)
}

static void test_pack_LPOSVERSIONINFOEXW(void)
{
    /* LPOSVERSIONINFOEXW */
    TEST_TYPE_SIZE   (LPOSVERSIONINFOEXW, 4)
    TEST_TYPE_ALIGN  (LPOSVERSIONINFOEXW, 4)
    TEST_TARGET_SIZE (LPOSVERSIONINFOEXW, 284)
    TEST_TARGET_ALIGN(LPOSVERSIONINFOEXW, 4)
}

static void test_pack_LPOSVERSIONINFOW(void)
{
    /* LPOSVERSIONINFOW */
    TEST_TYPE_SIZE   (LPOSVERSIONINFOW, 4)
    TEST_TYPE_ALIGN  (LPOSVERSIONINFOW, 4)
    TEST_TARGET_SIZE (LPOSVERSIONINFOW, 276)
    TEST_TARGET_ALIGN(LPOSVERSIONINFOW, 4)
}

static void test_pack_OSVERSIONINFOA(void)
{
    /* OSVERSIONINFOA (pack 4) */
    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 (pack 4) */
    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 (pack 4) */
    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 (pack 4) */
    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, 4)
    TEST_TYPE_ALIGN  (POSVERSIONINFOA, 4)
    TEST_TARGET_SIZE (POSVERSIONINFOA, 148)
    TEST_TARGET_ALIGN(POSVERSIONINFOA, 4)
}

static void test_pack_POSVERSIONINFOEXA(void)
{
    /* POSVERSIONINFOEXA */
    TEST_TYPE_SIZE   (POSVERSIONINFOEXA, 4)
    TEST_TYPE_ALIGN  (POSVERSIONINFOEXA, 4)
    TEST_TARGET_SIZE (POSVERSIONINFOEXA, 156)
    TEST_TARGET_ALIGN(POSVERSIONINFOEXA, 4)
}

static void test_pack_POSVERSIONINFOEXW(void)
{
    /* POSVERSIONINFOEXW */
    TEST_TYPE_SIZE   (POSVERSIONINFOEXW, 4)
    TEST_TYPE_ALIGN  (POSVERSIONINFOEXW, 4)
    TEST_TARGET_SIZE (POSVERSIONINFOEXW, 284)
    TEST_TARGET_ALIGN(POSVERSIONINFOEXW, 4)
}

static void test_pack_POSVERSIONINFOW(void)
{
    /* POSVERSIONINFOW */
    TEST_TYPE_SIZE   (POSVERSIONINFOW, 4)
    TEST_TYPE_ALIGN  (POSVERSIONINFOW, 4)
    TEST_TARGET_SIZE (POSVERSIONINFOW, 276)
    TEST_TARGET_ALIGN(POSVERSIONINFOW, 4)
}

static void test_pack_LPLONG(void)
{
    /* LPLONG */
    TEST_TYPE_SIZE   (LPLONG, 4)
    TEST_TYPE_ALIGN  (LPLONG, 4)
}

static void test_pack_LPVOID(void)
{
    /* LPVOID */
    TEST_TYPE_SIZE   (LPVOID, 4)
    TEST_TYPE_ALIGN  (LPVOID, 4)
}

static void test_pack_PHKEY(void)
{
    /* PHKEY */
    TEST_TYPE_SIZE   (PHKEY, 4)
    TEST_TYPE_ALIGN  (PHKEY, 4)
}

static void test_pack_ACTCTXA(void)
{
    /* ACTCTXA (pack 4) */
    TEST_TYPE_SIZE   (ACTCTXA, 32)
    TEST_TYPE_ALIGN  (ACTCTXA, 4)
    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, 4)
    TEST_FIELD_ALIGN (ACTCTXA, lpSource, 4)
    TEST_FIELD_OFFSET(ACTCTXA, lpSource, 8)
    TEST_FIELD_SIZE  (ACTCTXA, wProcessorArchitecture, 2)
    TEST_FIELD_ALIGN (ACTCTXA, wProcessorArchitecture, 2)
    TEST_FIELD_OFFSET(ACTCTXA, wProcessorArchitecture, 12)
    TEST_FIELD_SIZE  (ACTCTXA, wLangId, 2)
    TEST_FIELD_ALIGN (ACTCTXA, wLangId, 2)
    TEST_FIELD_OFFSET(ACTCTXA, wLangId, 14)
    TEST_FIELD_SIZE  (ACTCTXA, lpAssemblyDirectory, 4)
    TEST_FIELD_ALIGN (ACTCTXA, lpAssemblyDirectory, 4)
    TEST_FIELD_OFFSET(ACTCTXA, lpAssemblyDirectory, 16)
    TEST_FIELD_SIZE  (ACTCTXA, lpResourceName, 4)
    TEST_FIELD_ALIGN (ACTCTXA, lpResourceName, 4)
    TEST_FIELD_OFFSET(ACTCTXA, lpResourceName, 20)
    TEST_FIELD_SIZE  (ACTCTXA, lpApplicationName, 4)
    TEST_FIELD_ALIGN (ACTCTXA, lpApplicationName, 4)
    TEST_FIELD_OFFSET(ACTCTXA, lpApplicationName, 24)
    TEST_FIELD_SIZE  (ACTCTXA, hModule, 4)
    TEST_FIELD_ALIGN (ACTCTXA, hModule, 4)
    TEST_FIELD_OFFSET(ACTCTXA, hModule, 28)
}

static void test_pack_ACTCTXW(void)
{
    /* ACTCTXW (pack 4) */
    TEST_TYPE_SIZE   (ACTCTXW, 32)
    TEST_TYPE_ALIGN  (ACTCTXW, 4)
    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, 4)
    TEST_FIELD_ALIGN (ACTCTXW, lpSource, 4)
    TEST_FIELD_OFFSET(ACTCTXW, lpSource, 8)
    TEST_FIELD_SIZE  (ACTCTXW, wProcessorArchitecture, 2)
    TEST_FIELD_ALIGN (ACTCTXW, wProcessorArchitecture, 2)
    TEST_FIELD_OFFSET(ACTCTXW, wProcessorArchitecture, 12)
    TEST_FIELD_SIZE  (ACTCTXW, wLangId, 2)
    TEST_FIELD_ALIGN (ACTCTXW, wLangId, 2)
    TEST_FIELD_OFFSET(ACTCTXW, wLangId, 14)
    TEST_FIELD_SIZE  (ACTCTXW, lpAssemblyDirectory, 4)
    TEST_FIELD_ALIGN (ACTCTXW, lpAssemblyDirectory, 4)
    TEST_FIELD_OFFSET(ACTCTXW, lpAssemblyDirectory, 16)
    TEST_FIELD_SIZE  (ACTCTXW, lpResourceName, 4)
    TEST_FIELD_ALIGN (ACTCTXW, lpResourceName, 4)
    TEST_FIELD_OFFSET(ACTCTXW, lpResourceName, 20)
    TEST_FIELD_SIZE  (ACTCTXW, lpApplicationName, 4)
    TEST_FIELD_ALIGN (ACTCTXW, lpApplicationName, 4)
    TEST_FIELD_OFFSET(ACTCTXW, lpApplicationName, 24)
    TEST_FIELD_SIZE  (ACTCTXW, hModule, 4)
    TEST_FIELD_ALIGN (ACTCTXW, hModule, 4)
    TEST_FIELD_OFFSET(ACTCTXW, hModule, 28)
}

static void test_pack_ACTCTX_SECTION_KEYED_DATA(void)
{
    /* ACTCTX_SECTION_KEYED_DATA (pack 4) */
    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)
    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, 4)
    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA, lpData, 4)
    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, 12)
    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA, lpSectionGlobalData, 4)
    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA, lpSectionGlobalData, 4)
    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, lpSectionGlobalData, 16)
    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, 20)
    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA, lpSectionBase, 4)
    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA, lpSectionBase, 4)
    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, lpSectionBase, 24)
    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, 28)
    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA, hActCtx, 4)
    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA, hActCtx, 4)
    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, hActCtx, 32)
    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, 36)
    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, 40)
    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA, AssemblyMetadata, 20)
    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA, AssemblyMetadata, 4)
    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA, AssemblyMetadata, 44)
}

static void test_pack_ACTCTX_SECTION_KEYED_DATA_2600(void)
{
    /* ACTCTX_SECTION_KEYED_DATA_2600 (pack 4) */
    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)
    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, 4)
    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_2600, lpData, 4)
    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, 12)
    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_2600, lpSectionGlobalData, 4)
    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_2600, lpSectionGlobalData, 4)
    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_2600, lpSectionGlobalData, 16)
    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, 20)
    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_2600, lpSectionBase, 4)
    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_2600, lpSectionBase, 4)
    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_2600, lpSectionBase, 24)
    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, 28)
    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_2600, hActCtx, 4)
    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_2600, hActCtx, 4)
    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_2600, hActCtx, 32)
    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, 36)
}

static void test_pack_ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA(void)
{
    /* ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA (pack 4) */
    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)
    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpInformation, 4)
    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpInformation, 0)
    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpSectionBase, 4)
    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpSectionBase, 4)
    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpSectionBase, 4)
    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, 8)
    TEST_FIELD_SIZE  (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpSectionGlobalDataBase, 4)
    TEST_FIELD_ALIGN (ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpSectionGlobalDataBase, 4)
    TEST_FIELD_OFFSET(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, lpSectionGlobalDataBase, 12)
    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, 16)
}

static void test_pack_ACTIVATION_CONTEXT_BASIC_INFORMATION(void)
{
    /* ACTIVATION_CONTEXT_BASIC_INFORMATION (pack 4) */
    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)
    TEST_FIELD_ALIGN (ACTIVATION_CONTEXT_BASIC_INFORMATION, hActCtx, 4)
    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, 4)
}

static void test_pack_BY_HANDLE_FILE_INFORMATION(void)
{
    /* BY_HANDLE_FILE_INFORMATION (pack 4) */
    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 (pack 4) */
    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 (pack 4) */
    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 (pack 4) */
    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 (pack 4) */
    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 (pack 4) */
    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)
    TEST_FIELD_ALIGN (CREATE_PROCESS_DEBUG_INFO, hFile, 4)
    TEST_FIELD_OFFSET(CREATE_PROCESS_DEBUG_INFO, hFile, 0)
    TEST_FIELD_SIZE  (CREATE_PROCESS_DEBUG_INFO, hProcess, 4)
    TEST_FIELD_ALIGN (CREATE_PROCESS_DEBUG_INFO, hProcess, 4)
    TEST_FIELD_OFFSET(CREATE_PROCESS_DEBUG_INFO, hProcess, 4)
    TEST_FIELD_SIZE  (CREATE_PROCESS_DEBUG_INFO, hThread, 4)
    TEST_FIELD_ALIGN (CREATE_PROCESS_DEBUG_INFO, hThread, 4)
    TEST_FIELD_OFFSET(CREATE_PROCESS_DEBUG_INFO, hThread, 8)
    TEST_FIELD_SIZE  (CREATE_PROCESS_DEBUG_INFO, lpBaseOfImage, 4)
    TEST_FIELD_ALIGN (CREATE_PROCESS_DEBUG_INFO, lpBaseOfImage, 4)
    TEST_FIELD_OFFSET(CREATE_PROCESS_DEBUG_INFO, lpBaseOfImage, 12)
    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, 16)
    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, 20)
    TEST_FIELD_SIZE  (CREATE_PROCESS_DEBUG_INFO, lpThreadLocalBase, 4)
    TEST_FIELD_ALIGN (CREATE_PROCESS_DEBUG_INFO, lpThreadLocalBase, 4)
    TEST_FIELD_OFFSET(CREATE_PROCESS_DEBUG_INFO, lpThreadLocalBase, 24)
    TEST_FIELD_SIZE  (CREATE_PROCESS_DEBUG_INFO, lpStartAddress, 4)
    TEST_FIELD_ALIGN (CREATE_PROCESS_DEBUG_INFO, lpStartAddress, 4)
    TEST_FIELD_OFFSET(CREATE_PROCESS_DEBUG_INFO, lpStartAddress, 28)
    TEST_FIELD_SIZE  (CREATE_PROCESS_DEBUG_INFO, lpImageName, 4)
    TEST_FIELD_ALIGN (CREATE_PROCESS_DEBUG_INFO, lpImageName, 4)
    TEST_FIELD_OFFSET(CREATE_PROCESS_DEBUG_INFO, lpImageName, 32)
    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, 36)
}

static void test_pack_CREATE_THREAD_DEBUG_INFO(void)
{
    /* CREATE_THREAD_DEBUG_INFO (pack 4) */
    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)
    TEST_FIELD_ALIGN (CREATE_THREAD_DEBUG_INFO, hThread, 4)
    TEST_FIELD_OFFSET(CREATE_THREAD_DEBUG_INFO, hThread, 0)
    TEST_FIELD_SIZE  (CREATE_THREAD_DEBUG_INFO, lpThreadLocalBase, 4)
    TEST_FIELD_ALIGN (CREATE_THREAD_DEBUG_INFO, lpThreadLocalBase, 4)
    TEST_FIELD_OFFSET(CREATE_THREAD_DEBUG_INFO, lpThreadLocalBase, 4)
    TEST_FIELD_SIZE  (CREATE_THREAD_DEBUG_INFO, lpStartAddress, 4)
    TEST_FIELD_ALIGN (CREATE_THREAD_DEBUG_INFO, lpStartAddress, 4)
    TEST_FIELD_OFFSET(CREATE_THREAD_DEBUG_INFO, lpStartAddress, 8)
}

static void test_pack_CRITICAL_SECTION(void)
{
    /* CRITICAL_SECTION */
    TEST_TYPE_SIZE   (CRITICAL_SECTION, 24)
    TEST_TYPE_ALIGN  (CRITICAL_SECTION, 4)
}

static void test_pack_CRITICAL_SECTION_DEBUG(void)
{
    /* CRITICAL_SECTION_DEBUG */
}

static void test_pack_DCB(void)
{
    /* DCB (pack 4) */
    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 (pack 4) */
    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, 4)
    TEST_TYPE_ALIGN  (ENUMRESLANGPROCA, 4)
}

static void test_pack_ENUMRESLANGPROCW(void)
{
    /* ENUMRESLANGPROCW */
    TEST_TYPE_SIZE   (ENUMRESLANGPROCW, 4)
    TEST_TYPE_ALIGN  (ENUMRESLANGPROCW, 4)
}

static void test_pack_ENUMRESNAMEPROCA(void)
{
    /* ENUMRESNAMEPROCA */
    TEST_TYPE_SIZE   (ENUMRESNAMEPROCA, 4)
    TEST_TYPE_ALIGN  (ENUMRESNAMEPROCA, 4)
}

static void test_pack_ENUMRESNAMEPROCW(void)
{
    /* ENUMRESNAMEPROCW */
    TEST_TYPE_SIZE   (ENUMRESNAMEPROCW, 4)
    TEST_TYPE_ALIGN  (ENUMRESNAMEPROCW, 4)
}

static void test_pack_ENUMRESTYPEPROCA(void)
{
    /* ENUMRESTYPEPROCA */
    TEST_TYPE_SIZE   (ENUMRESTYPEPROCA, 4)
    TEST_TYPE_ALIGN  (ENUMRESTYPEPROCA, 4)
}

static void test_pack_ENUMRESTYPEPROCW(void)
{
    /* ENUMRESTYPEPROCW */
    TEST_TYPE_SIZE   (ENUMRESTYPEPROCW, 4)
    TEST_TYPE_ALIGN  (ENUMRESTYPEPROCW, 4)
}

static void test_pack_EXCEPTION_DEBUG_INFO(void)
{
    /* EXCEPTION_DEBUG_INFO (pack 4) */
    TEST_TYPE_SIZE   (EXCEPTION_DEBUG_INFO, 84)
    TEST_TYPE_ALIGN  (EXCEPTION_DEBUG_INFO, 4)
    TEST_FIELD_SIZE  (EXCEPTION_DEBUG_INFO, ExceptionRecord, 80)
    TEST_FIELD_ALIGN (EXCEPTION_DEBUG_INFO, ExceptionRecord, 4)
    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, 80)
}

static void test_pack_EXIT_PROCESS_DEBUG_INFO(void)
{
    /* EXIT_PROCESS_DEBUG_INFO (pack 4) */
    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 (pack 4) */
    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 (pack 4) */
    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 (pack 4) */
    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 (pack 4) */
    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)
    TEST_FIELD_ALIGN (LOAD_DLL_DEBUG_INFO, hFile, 4)
    TEST_FIELD_OFFSET(LOAD_DLL_DEBUG_INFO, hFile, 0)
    TEST_FIELD_SIZE  (LOAD_DLL_DEBUG_INFO, lpBaseOfDll, 4)
    TEST_FIELD_ALIGN (LOAD_DLL_DEBUG_INFO, lpBaseOfDll, 4)
    TEST_FIELD_OFFSET(LOAD_DLL_DEBUG_INFO, lpBaseOfDll, 4)
    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, 8)
    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, 12)
    TEST_FIELD_SIZE  (LOAD_DLL_DEBUG_INFO, lpImageName, 4)
    TEST_FIELD_ALIGN (LOAD_DLL_DEBUG_INFO, lpImageName, 4)
    TEST_FIELD_OFFSET(LOAD_DLL_DEBUG_INFO, lpImageName, 16)
    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, 20)
}

static void test_pack_LPBY_HANDLE_FILE_INFORMATION(void)
{
    /* LPBY_HANDLE_FILE_INFORMATION */
    TEST_TYPE_SIZE   (LPBY_HANDLE_FILE_INFORMATION, 4)
    TEST_TYPE_ALIGN  (LPBY_HANDLE_FILE_INFORMATION, 4)
    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, 4)
    TEST_TYPE_ALIGN  (LPCOMMCONFIG, 4)
    TEST_TARGET_SIZE (LPCOMMCONFIG, 52)
    TEST_TARGET_ALIGN(LPCOMMCONFIG, 4)
}

static void test_pack_LPCOMMPROP(void)
{
    /* LPCOMMPROP */
    TEST_TYPE_SIZE   (LPCOMMPROP, 4)
    TEST_TYPE_ALIGN  (LPCOMMPROP, 4)
    TEST_TARGET_SIZE (LPCOMMPROP, 64)
    TEST_TARGET_ALIGN(LPCOMMPROP, 4)
}

static void test_pack_LPCOMMTIMEOUTS(void)
{
    /* LPCOMMTIMEOUTS */
    TEST_TYPE_SIZE   (LPCOMMTIMEOUTS, 4)
    TEST_TYPE_ALIGN  (LPCOMMTIMEOUTS, 4)
    TEST_TARGET_SIZE (LPCOMMTIMEOUTS, 20)
    TEST_TARGET_ALIGN(LPCOMMTIMEOUTS, 4)
}

static void test_pack_LPCOMSTAT(void)
{
    /* LPCOMSTAT */
    TEST_TYPE_SIZE   (LPCOMSTAT, 4)
    TEST_TYPE_ALIGN  (LPCOMSTAT, 4)
    TEST_TARGET_SIZE (LPCOMSTAT, 12)
    TEST_TARGET_ALIGN(LPCOMSTAT, 4)
}

static void test_pack_LPCRITICAL_SECTION(void)
{
    /* LPCRITICAL_SECTION */
    TEST_TYPE_SIZE   (LPCRITICAL_SECTION, 4)
    TEST_TYPE_ALIGN  (LPCRITICAL_SECTION, 4)
}

static void test_pack_LPCRITICAL_SECTION_DEBUG(void)
{
    /* LPCRITICAL_SECTION_DEBUG */
    TEST_TYPE_SIZE   (LPCRITICAL_SECTION_DEBUG, 4)
    TEST_TYPE_ALIGN  (LPCRITICAL_SECTION_DEBUG, 4)
}

static void test_pack_LPDCB(void)
{
    /* LPDCB */
    TEST_TYPE_SIZE   (LPDCB, 4)
    TEST_TYPE_ALIGN  (LPDCB, 4)
    TEST_TARGET_SIZE (LPDCB, 28)
    TEST_TARGET_ALIGN(LPDCB, 4)
}

static void test_pack_LPDEBUG_EVENT(void)
{
    /* LPDEBUG_EVENT */
    TEST_TYPE_SIZE   (LPDEBUG_EVENT, 4)
    TEST_TYPE_ALIGN  (LPDEBUG_EVENT, 4)
}

static void test_pack_LPEXCEPTION_POINTERS(void)
{
    /* LPEXCEPTION_POINTERS */
    TEST_TYPE_SIZE   (LPEXCEPTION_POINTERS, 4)
    TEST_TYPE_ALIGN  (LPEXCEPTION_POINTERS, 4)
}

static void test_pack_LPEXCEPTION_RECORD(void)
{
    /* LPEXCEPTION_RECORD */
    TEST_TYPE_SIZE   (LPEXCEPTION_RECORD, 4)
    TEST_TYPE_ALIGN  (LPEXCEPTION_RECORD, 4)
}

static void test_pack_LPFIBER_START_ROUTINE(void)
{
    /* LPFIBER_START_ROUTINE */
    TEST_TYPE_SIZE   (LPFIBER_START_ROUTINE, 4)
    TEST_TYPE_ALIGN  (LPFIBER_START_ROUTINE, 4)
}

static void test_pack_LPHW_PROFILE_INFOA(void)
{
    /* LPHW_PROFILE_INFOA */
    TEST_TYPE_SIZE   (LPHW_PROFILE_INFOA, 4)
    TEST_TYPE_ALIGN  (LPHW_PROFILE_INFOA, 4)
    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, 4)
    TEST_TYPE_ALIGN  (LPHW_PROFILE_INFOW, 4)
    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, 4)
    TEST_TYPE_ALIGN  (LPMEMORYSTATUS, 4)
    TEST_TARGET_SIZE (LPMEMORYSTATUS, 32)
    TEST_TARGET_ALIGN(LPMEMORYSTATUS, 4)
}

static void test_pack_LPMEMORYSTATUSEX(void)
{
    /* LPMEMORYSTATUSEX */
    TEST_TYPE_SIZE   (LPMEMORYSTATUSEX, 4)
    TEST_TYPE_ALIGN  (LPMEMORYSTATUSEX, 4)
    TEST_TARGET_SIZE (LPMEMORYSTATUSEX, 64)
    TEST_TARGET_ALIGN(LPMEMORYSTATUSEX, 8)
}

static void test_pack_LPOFSTRUCT(void)
{
    /* LPOFSTRUCT */
    TEST_TYPE_SIZE   (LPOFSTRUCT, 4)
    TEST_TYPE_ALIGN  (LPOFSTRUCT, 4)
    TEST_TARGET_SIZE (LPOFSTRUCT, 136)
    TEST_TARGET_ALIGN(LPOFSTRUCT, 2)
}

static void test_pack_LPOVERLAPPED(void)
{
    /* LPOVERLAPPED */
    TEST_TYPE_SIZE   (LPOVERLAPPED, 4)
    TEST_TYPE_ALIGN  (LPOVERLAPPED, 4)
}

static void test_pack_LPOVERLAPPED_COMPLETION_ROUTINE(void)
{
    /* LPOVERLAPPED_COMPLETION_ROUTINE */
    TEST_TYPE_SIZE   (LPOVERLAPPED_COMPLETION_ROUTINE, 4)
    TEST_TYPE_ALIGN  (LPOVERLAPPED_COMPLETION_ROUTINE, 4)
}

static void test_pack_LPPROCESS_HEAP_ENTRY(void)
{
    /* LPPROCESS_HEAP_ENTRY */
    TEST_TYPE_SIZE   (LPPROCESS_HEAP_ENTRY, 4)
    TEST_TYPE_ALIGN  (LPPROCESS_HEAP_ENTRY, 4)
}

static void test_pack_LPPROCESS_INFORMATION(void)
{
    /* LPPROCESS_INFORMATION */
    TEST_TYPE_SIZE   (LPPROCESS_INFORMATION, 4)
    TEST_TYPE_ALIGN  (LPPROCESS_INFORMATION, 4)
    TEST_TARGET_SIZE (LPPROCESS_INFORMATION, 16)
    TEST_TARGET_ALIGN(LPPROCESS_INFORMATION, 4)
}

static void test_pack_LPPROGRESS_ROUTINE(void)
{
    /* LPPROGRESS_ROUTINE */
    TEST_TYPE_SIZE   (LPPROGRESS_ROUTINE, 4)
    TEST_TYPE_ALIGN  (LPPROGRESS_ROUTINE, 4)
}

static void test_pack_LPSECURITY_ATTRIBUTES(void)
{
    /* LPSECURITY_ATTRIBUTES */
    TEST_TYPE_SIZE   (LPSECURITY_ATTRIBUTES, 4)
    TEST_TYPE_ALIGN  (LPSECURITY_ATTRIBUTES, 4)
    TEST_TARGET_SIZE (LPSECURITY_ATTRIBUTES, 12)
    TEST_TARGET_ALIGN(LPSECURITY_ATTRIBUTES, 4)
}

static void test_pack_LPSTARTUPINFOA(void)
{
    /* LPSTARTUPINFOA */
    TEST_TYPE_SIZE   (LPSTARTUPINFOA, 4)
    TEST_TYPE_ALIGN  (LPSTARTUPINFOA, 4)
    TEST_TARGET_SIZE (LPSTARTUPINFOA, 68)
    TEST_TARGET_ALIGN(LPSTARTUPINFOA, 4)
}

static void test_pack_LPSTARTUPINFOW(void)
{
    /* LPSTARTUPINFOW */
    TEST_TYPE_SIZE   (LPSTARTUPINFOW, 4)
    TEST_TYPE_ALIGN  (LPSTARTUPINFOW, 4)
    TEST_TARGET_SIZE (LPSTARTUPINFOW, 68)
    TEST_TARGET_ALIGN(LPSTARTUPINFOW, 4)
}

static void test_pack_LPSYSTEMTIME(void)
{
    /* LPSYSTEMTIME */
    TEST_TYPE_SIZE   (LPSYSTEMTIME, 4)
    TEST_TYPE_ALIGN  (LPSYSTEMTIME, 4)
    TEST_TARGET_SIZE (LPSYSTEMTIME, 16)
    TEST_TARGET_ALIGN(LPSYSTEMTIME, 2)
}

static void test_pack_LPSYSTEM_INFO(void)
{
    /* LPSYSTEM_INFO */
    TEST_TYPE_SIZE   (LPSYSTEM_INFO, 4)
    TEST_TYPE_ALIGN  (LPSYSTEM_INFO, 4)
}

static void test_pack_LPSYSTEM_POWER_STATUS(void)
{
    /* LPSYSTEM_POWER_STATUS */
    TEST_TYPE_SIZE   (LPSYSTEM_POWER_STATUS, 4)
    TEST_TYPE_ALIGN  (LPSYSTEM_POWER_STATUS, 4)
    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, 4)
    TEST_TYPE_ALIGN  (LPTHREAD_START_ROUTINE, 4)
}

static void test_pack_LPTIME_ZONE_INFORMATION(void)
{
    /* LPTIME_ZONE_INFORMATION */
    TEST_TYPE_SIZE   (LPTIME_ZONE_INFORMATION, 4)
    TEST_TYPE_ALIGN  (LPTIME_ZONE_INFORMATION, 4)
    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, 4)
    TEST_TYPE_ALIGN  (LPWIN32_FILE_ATTRIBUTE_DATA, 4)
    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, 4)
    TEST_TYPE_ALIGN  (LPWIN32_FIND_DATAA, 4)
    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, 4)
    TEST_TYPE_ALIGN  (LPWIN32_FIND_DATAW, 4)
    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, 4)
    TEST_TYPE_ALIGN  (LPWIN32_STREAM_ID, 4)
    TEST_TARGET_SIZE (LPWIN32_STREAM_ID, 24)
    TEST_TARGET_ALIGN(LPWIN32_STREAM_ID, 8)
}

static void test_pack_MEMORYSTATUS(void)
{
    /* MEMORYSTATUS (pack 4) */
    TEST_TYPE_SIZE   (MEMORYSTATUS, 32)
    TEST_TYPE_ALIGN  (MEMORYSTATUS, 4)
    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, 4)
    TEST_FIELD_ALIGN (MEMORYSTATUS, dwTotalPhys, 4)
    TEST_FIELD_OFFSET(MEMORYSTATUS, dwTotalPhys, 8)
    TEST_FIELD_SIZE  (MEMORYSTATUS, dwAvailPhys, 4)
    TEST_FIELD_ALIGN (MEMORYSTATUS, dwAvailPhys, 4)
    TEST_FIELD_OFFSET(MEMORYSTATUS, dwAvailPhys, 12)
    TEST_FIELD_SIZE  (MEMORYSTATUS, dwTotalPageFile, 4)
    TEST_FIELD_ALIGN (MEMORYSTATUS, dwTotalPageFile, 4)
    TEST_FIELD_OFFSET(MEMORYSTATUS, dwTotalPageFile, 16)
    TEST_FIELD_SIZE  (MEMORYSTATUS, dwAvailPageFile, 4)
    TEST_FIELD_ALIGN (MEMORYSTATUS, dwAvailPageFile, 4)
    TEST_FIELD_OFFSET(MEMORYSTATUS, dwAvailPageFile, 20)
    TEST_FIELD_SIZE  (MEMORYSTATUS, dwTotalVirtual, 4)
    TEST_FIELD_ALIGN (MEMORYSTATUS, dwTotalVirtual, 4)
    TEST_FIELD_OFFSET(MEMORYSTATUS, dwTotalVirtual, 24)
    TEST_FIELD_SIZE  (MEMORYSTATUS, dwAvailVirtual, 4)
    TEST_FIELD_ALIGN (MEMORYSTATUS, dwAvailVirtual, 4)
    TEST_FIELD_OFFSET(MEMORYSTATUS, dwAvailVirtual, 28)
}

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 (pack 4) */
    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 (pack 4) */
    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)
    TEST_FIELD_ALIGN (OUTPUT_DEBUG_STRING_INFO, lpDebugStringData, 4)
    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, 4)
    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, 6)
}

static void test_pack_PACTCTXA(void)
{
    /* PACTCTXA */
    TEST_TYPE_SIZE   (PACTCTXA, 4)
    TEST_TYPE_ALIGN  (PACTCTXA, 4)
    TEST_TARGET_SIZE (PACTCTXA, 32)
    TEST_TARGET_ALIGN(PACTCTXA, 4)
}

static void test_pack_PACTCTXW(void)
{
    /* PACTCTXW */
    TEST_TYPE_SIZE   (PACTCTXW, 4)
    TEST_TYPE_ALIGN  (PACTCTXW, 4)
    TEST_TARGET_SIZE (PACTCTXW, 32)
    TEST_TARGET_ALIGN(PACTCTXW, 4)
}

static void test_pack_PACTCTX_SECTION_KEYED_DATA(void)
{
    /* PACTCTX_SECTION_KEYED_DATA */
    TEST_TYPE_SIZE   (PACTCTX_SECTION_KEYED_DATA, 4)
    TEST_TYPE_ALIGN  (PACTCTX_SECTION_KEYED_DATA, 4)
    TEST_TARGET_SIZE (PACTCTX_SECTION_KEYED_DATA, 64)
    TEST_TARGET_ALIGN(PACTCTX_SECTION_KEYED_DATA, 4)
}

static void test_pack_PACTCTX_SECTION_KEYED_DATA_2600(void)
{
    /* PACTCTX_SECTION_KEYED_DATA_2600 */
    TEST_TYPE_SIZE   (PACTCTX_SECTION_KEYED_DATA_2600, 4)
    TEST_TYPE_ALIGN  (PACTCTX_SECTION_KEYED_DATA_2600, 4)
    TEST_TARGET_SIZE (PACTCTX_SECTION_KEYED_DATA_2600, 40)
    TEST_TARGET_ALIGN(PACTCTX_SECTION_KEYED_DATA_2600, 4)
}

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, 4)
    TEST_TYPE_ALIGN  (PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 4)
    TEST_TARGET_SIZE (PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 20)
    TEST_TARGET_ALIGN(PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 4)
}

static void test_pack_PACTIVATION_CONTEXT_BASIC_INFORMATION(void)
{
    /* PACTIVATION_CONTEXT_BASIC_INFORMATION */
    TEST_TYPE_SIZE   (PACTIVATION_CONTEXT_BASIC_INFORMATION, 4)
    TEST_TYPE_ALIGN  (PACTIVATION_CONTEXT_BASIC_INFORMATION, 4)
    TEST_TARGET_SIZE (PACTIVATION_CONTEXT_BASIC_INFORMATION, 8)
    TEST_TARGET_ALIGN(PACTIVATION_CONTEXT_BASIC_INFORMATION, 4)
}

static void test_pack_PAPCFUNC(void)
{
    /* PAPCFUNC */
    TEST_TYPE_SIZE   (PAPCFUNC, 4)
    TEST_TYPE_ALIGN  (PAPCFUNC, 4)
}

static void test_pack_PBY_HANDLE_FILE_INFORMATION(void)
{
    /* PBY_HANDLE_FILE_INFORMATION */
    TEST_TYPE_SIZE   (PBY_HANDLE_FILE_INFORMATION, 4)
    TEST_TYPE_ALIGN  (PBY_HANDLE_FILE_INFORMATION, 4)
    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, 4)
    TEST_TYPE_ALIGN  (PCACTCTXA, 4)
    TEST_TARGET_SIZE (PCACTCTXA, 32)
    TEST_TARGET_ALIGN(PCACTCTXA, 4)
}

static void test_pack_PCACTCTXW(void)
{
    /* PCACTCTXW */
    TEST_TYPE_SIZE   (PCACTCTXW, 4)
    TEST_TYPE_ALIGN  (PCACTCTXW, 4)
    TEST_TARGET_SIZE (PCACTCTXW, 32)
    TEST_TARGET_ALIGN(PCACTCTXW, 4)
}

static void test_pack_PCACTCTX_SECTION_KEYED_DATA(void)
{
    /* PCACTCTX_SECTION_KEYED_DATA */
    TEST_TYPE_SIZE   (PCACTCTX_SECTION_KEYED_DATA, 4)
    TEST_TYPE_ALIGN  (PCACTCTX_SECTION_KEYED_DATA, 4)
    TEST_TARGET_SIZE (PCACTCTX_SECTION_KEYED_DATA, 64)
    TEST_TARGET_ALIGN(PCACTCTX_SECTION_KEYED_DATA, 4)
}

static void test_pack_PCACTCTX_SECTION_KEYED_DATA_2600(void)
{
    /* PCACTCTX_SECTION_KEYED_DATA_2600 */
    TEST_TYPE_SIZE   (PCACTCTX_SECTION_KEYED_DATA_2600, 4)
    TEST_TYPE_ALIGN  (PCACTCTX_SECTION_KEYED_DATA_2600, 4)
    TEST_TARGET_SIZE (PCACTCTX_SECTION_KEYED_DATA_2600, 40)
    TEST_TARGET_ALIGN(PCACTCTX_SECTION_KEYED_DATA_2600, 4)
}

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, 4)
    TEST_TYPE_ALIGN  (PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 4)
    TEST_TARGET_SIZE (PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 20)
    TEST_TARGET_ALIGN(PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 4)
}

static void test_pack_PCRITICAL_SECTION(void)
{
    /* PCRITICAL_SECTION */
    TEST_TYPE_SIZE   (PCRITICAL_SECTION, 4)
    TEST_TYPE_ALIGN  (PCRITICAL_SECTION, 4)
}

static void test_pack_PCRITICAL_SECTION_DEBUG(void)
{
    /* PCRITICAL_SECTION_DEBUG */
    TEST_TYPE_SIZE   (PCRITICAL_SECTION_DEBUG, 4)
    TEST_TYPE_ALIGN  (PCRITICAL_SECTION_DEBUG, 4)
}

static void test_pack_PFIBER_START_ROUTINE(void)
{
    /* PFIBER_START_ROUTINE */
    TEST_TYPE_SIZE   (PFIBER_START_ROUTINE, 4)
    TEST_TYPE_ALIGN  (PFIBER_START_ROUTINE, 4)
}

static void test_pack_POFSTRUCT(void)
{
    /* POFSTRUCT */
    TEST_TYPE_SIZE   (POFSTRUCT, 4)
    TEST_TYPE_ALIGN  (POFSTRUCT, 4)
    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, 4)
    TEST_TYPE_ALIGN  (PPROCESS_HEAP_ENTRY, 4)
}

static void test_pack_PPROCESS_INFORMATION(void)
{
    /* PPROCESS_INFORMATION */
    TEST_TYPE_SIZE   (PPROCESS_INFORMATION, 4)
    TEST_TYPE_ALIGN  (PPROCESS_INFORMATION, 4)
    TEST_TARGET_SIZE (PPROCESS_INFORMATION, 16)
    TEST_TARGET_ALIGN(PPROCESS_INFORMATION, 4)
}

static void test_pack_PQUERYACTCTXW_FUNC(void)
{
    /* PQUERYACTCTXW_FUNC */
    TEST_TYPE_SIZE   (PQUERYACTCTXW_FUNC, 4)
    TEST_TYPE_ALIGN  (PQUERYACTCTXW_FUNC, 4)
}

static void test_pack_PROCESS_HEAP_ENTRY(void)
{
    /* PROCESS_HEAP_ENTRY (pack 4) */
    TEST_FIELD_SIZE  (PROCESS_HEAP_ENTRY, lpData, 4)
    TEST_FIELD_ALIGN (PROCESS_HEAP_ENTRY, lpData, 4)
    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, 4)
    TEST_FIELD_SIZE  (PROCESS_HEAP_ENTRY, cbOverhead, 1)
    TEST_FIELD_ALIGN (PROCESS_HEAP_ENTRY, cbOverhead, 1)
    TEST_FIELD_OFFSET(PROCESS_HEAP_ENTRY, cbOverhead, 8)
    TEST_FIELD_SIZE  (PROCESS_HEAP_ENTRY, iRegionIndex, 1)
    TEST_FIELD_ALIGN (PROCESS_HEAP_ENTRY, iRegionIndex, 1)
    TEST_FIELD_OFFSET(PROCESS_HEAP_ENTRY, iRegionIndex, 9)
    TEST_FIELD_SIZE  (PROCESS_HEAP_ENTRY, wFlags, 2)
    TEST_FIELD_ALIGN (PROCESS_HEAP_ENTRY, wFlags, 2)
    TEST_FIELD_OFFSET(PROCESS_HEAP_ENTRY, wFlags, 10)
}

static void test_pack_PROCESS_INFORMATION(void)
{
    /* PROCESS_INFORMATION (pack 4) */
    TEST_TYPE_SIZE   (PROCESS_INFORMATION, 16)
    TEST_TYPE_ALIGN  (PROCESS_INFORMATION, 4)
    TEST_FIELD_SIZE  (PROCESS_INFORMATION, hProcess, 4)
    TEST_FIELD_ALIGN (PROCESS_INFORMATION, hProcess, 4)
    TEST_FIELD_OFFSET(PROCESS_INFORMATION, hProcess, 0)
    TEST_FIELD_SIZE  (PROCESS_INFORMATION, hThread, 4)
    TEST_FIELD_ALIGN (PROCESS_INFORMATION, hThread, 4)
    TEST_FIELD_OFFSET(PROCESS_INFORMATION, hThread, 4)
    TEST_FIELD_SIZE  (PROCESS_INFORMATION, dwProcessId, 4)
    TEST_FIELD_ALIGN (PROCESS_INFORMATION, dwProcessId, 4)
    TEST_FIELD_OFFSET(PROCESS_INFORMATION, dwProcessId, 8)
    TEST_FIELD_SIZE  (PROCESS_INFORMATION, dwThreadId, 4)
    TEST_FIELD_ALIGN (PROCESS_INFORMATION, dwThreadId, 4)
    TEST_FIELD_OFFSET(PROCESS_INFORMATION, dwThreadId, 12)
}

static void test_pack_PSECURITY_ATTRIBUTES(void)
{
    /* PSECURITY_ATTRIBUTES */
    TEST_TYPE_SIZE   (PSECURITY_ATTRIBUTES, 4)
    TEST_TYPE_ALIGN  (PSECURITY_ATTRIBUTES, 4)
    TEST_TARGET_SIZE (PSECURITY_ATTRIBUTES, 12)
    TEST_TARGET_ALIGN(PSECURITY_ATTRIBUTES, 4)
}

static void test_pack_PSYSTEMTIME(void)
{
    /* PSYSTEMTIME */
    TEST_TYPE_SIZE   (PSYSTEMTIME, 4)
    TEST_TYPE_ALIGN  (PSYSTEMTIME, 4)
    TEST_TARGET_SIZE (PSYSTEMTIME, 16)
    TEST_TARGET_ALIGN(PSYSTEMTIME, 2)
}

static void test_pack_PTIMERAPCROUTINE(void)
{
    /* PTIMERAPCROUTINE */
    TEST_TYPE_SIZE   (PTIMERAPCROUTINE, 4)
    TEST_TYPE_ALIGN  (PTIMERAPCROUTINE, 4)
}

static void test_pack_PTIME_ZONE_INFORMATION(void)
{
    /* PTIME_ZONE_INFORMATION */
    TEST_TYPE_SIZE   (PTIME_ZONE_INFORMATION, 4)
    TEST_TYPE_ALIGN  (PTIME_ZONE_INFORMATION, 4)
    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, 4)
    TEST_TYPE_ALIGN  (PWIN32_FIND_DATAA, 4)
    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, 4)
    TEST_TYPE_ALIGN  (PWIN32_FIND_DATAW, 4)
    TEST_TARGET_SIZE (PWIN32_FIND_DATAW, 592)
    TEST_TARGET_ALIGN(PWIN32_FIND_DATAW, 4)
}

static void test_pack_RIP_INFO(void)
{
    /* RIP_INFO (pack 4) */
    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 (pack 4) */
    TEST_TYPE_SIZE   (SECURITY_ATTRIBUTES, 12)
    TEST_TYPE_ALIGN  (SECURITY_ATTRIBUTES, 4)
    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, 4)
    TEST_FIELD_ALIGN (SECURITY_ATTRIBUTES, lpSecurityDescriptor, 4)
    TEST_FIELD_OFFSET(SECURITY_ATTRIBUTES, lpSecurityDescriptor, 4)
    TEST_FIELD_SIZE  (SECURITY_ATTRIBUTES, bInheritHandle, 4)
    TEST_FIELD_ALIGN (SECURITY_ATTRIBUTES, bInheritHandle, 4)
    TEST_FIELD_OFFSET(SECURITY_ATTRIBUTES, bInheritHandle, 8)
}

static void test_pack_STARTUPINFOA(void)
{
    /* STARTUPINFOA (pack 4) */
    TEST_TYPE_SIZE   (STARTUPINFOA, 68)
    TEST_TYPE_ALIGN  (STARTUPINFOA, 4)
    TEST_FIELD_SIZE  (STARTUPINFOA, cb, 4)
    TEST_FIELD_ALIGN (STARTUPINFOA, cb, 4)
    TEST_FIELD_OFFSET(STARTUPINFOA, cb, 0)
    TEST_FIELD_SIZE  (STARTUPINFOA, lpReserved, 4)
    TEST_FIELD_ALIGN (STARTUPINFOA, lpReserved, 4)
    TEST_FIELD_OFFSET(STARTUPINFOA, lpReserved, 4)
    TEST_FIELD_SIZE  (STARTUPINFOA, lpDesktop, 4)
    TEST_FIELD_ALIGN (STARTUPINFOA, lpDesktop, 4)
    TEST_FIELD_OFFSET(STARTUPINFOA, lpDesktop, 8)
    TEST_FIELD_SIZE  (STARTUPINFOA, lpTitle, 4)
    TEST_FIELD_ALIGN (STARTUPINFOA, lpTitle, 4)
    TEST_FIELD_OFFSET(STARTUPINFOA, lpTitle, 12)
    TEST_FIELD_SIZE  (STARTUPINFOA, dwX, 4)
    TEST_FIELD_ALIGN (STARTUPINFOA, dwX, 4)
    TEST_FIELD_OFFSET(STARTUPINFOA, dwX, 16)
    TEST_FIELD_SIZE  (STARTUPINFOA, dwY, 4)
    TEST_FIELD_ALIGN (STARTUPINFOA, dwY, 4)
    TEST_FIELD_OFFSET(STARTUPINFOA, dwY, 20)
    TEST_FIELD_SIZE  (STARTUPINFOA, dwXSize, 4)
    TEST_FIELD_ALIGN (STARTUPINFOA, dwXSize, 4)
    TEST_FIELD_OFFSET(STARTUPINFOA, dwXSize, 24)
    TEST_FIELD_SIZE  (STARTUPINFOA, dwYSize, 4)
    TEST_FIELD_ALIGN (STARTUPINFOA, dwYSize, 4)
    TEST_FIELD_OFFSET(STARTUPINFOA, dwYSize, 28)
    TEST_FIELD_SIZE  (STARTUPINFOA, dwXCountChars, 4)
    TEST_FIELD_ALIGN (STARTUPINFOA, dwXCountChars, 4)
    TEST_FIELD_OFFSET(STARTUPINFOA, dwXCountChars, 32)
    TEST_FIELD_SIZE  (STARTUPINFOA, dwYCountChars, 4)
    TEST_FIELD_ALIGN (STARTUPINFOA, dwYCountChars, 4)
    TEST_FIELD_OFFSET(STARTUPINFOA, dwYCountChars, 36)
    TEST_FIELD_SIZE  (STARTUPINFOA, dwFillAttribute, 4)
    TEST_FIELD_ALIGN (STARTUPINFOA, dwFillAttribute, 4)
    TEST_FIELD_OFFSET(STARTUPINFOA, dwFillAttribute, 40)
    TEST_FIELD_SIZE  (STARTUPINFOA, dwFlags, 4)
    TEST_FIELD_ALIGN (STARTUPINFOA, dwFlags, 4)
    TEST_FIELD_OFFSET(STARTUPINFOA, dwFlags, 44)
    TEST_FIELD_SIZE  (STARTUPINFOA, wShowWindow, 2)
    TEST_FIELD_ALIGN (STARTUPINFOA, wShowWindow, 2)
    TEST_FIELD_OFFSET(STARTUPINFOA, wShowWindow, 48)
    TEST_FIELD_SIZE  (STARTUPINFOA, cbReserved2, 2)
    TEST_FIELD_ALIGN (STARTUPINFOA, cbReserved2, 2)
    TEST_FIELD_OFFSET(STARTUPINFOA, cbReserved2, 50)
    TEST_FIELD_SIZE  (STARTUPINFOA, lpReserved2, 4)
    TEST_FIELD_ALIGN (STARTUPINFOA, lpReserved2, 4)
    TEST_FIELD_OFFSET(STARTUPINFOA, lpReserved2, 52)
    TEST_FIELD_SIZE  (STARTUPINFOA, hStdInput, 4)
    TEST_FIELD_ALIGN (STARTUPINFOA, hStdInput, 4)
    TEST_FIELD_OFFSET(STARTUPINFOA, hStdInput, 56)
    TEST_FIELD_SIZE  (STARTUPINFOA, hStdOutput, 4)
    TEST_FIELD_ALIGN (STARTUPINFOA, hStdOutput, 4)
    TEST_FIELD_OFFSET(STARTUPINFOA, hStdOutput, 60)
    TEST_FIELD_SIZE  (STARTUPINFOA, hStdError, 4)
    TEST_FIELD_ALIGN (STARTUPINFOA, hStdError, 4)
    TEST_FIELD_OFFSET(STARTUPINFOA, hStdError, 64)
}

static void test_pack_STARTUPINFOW(void)
{
    /* STARTUPINFOW (pack 4) */
    TEST_TYPE_SIZE   (STARTUPINFOW, 68)
    TEST_TYPE_ALIGN  (STARTUPINFOW, 4)
    TEST_FIELD_SIZE  (STARTUPINFOW, cb, 4)
    TEST_FIELD_ALIGN (STARTUPINFOW, cb, 4)
    TEST_FIELD_OFFSET(STARTUPINFOW, cb, 0)
    TEST_FIELD_SIZE  (STARTUPINFOW, lpReserved, 4)
    TEST_FIELD_ALIGN (STARTUPINFOW, lpReserved, 4)
    TEST_FIELD_OFFSET(STARTUPINFOW, lpReserved, 4)
    TEST_FIELD_SIZE  (STARTUPINFOW, lpDesktop, 4)
    TEST_FIELD_ALIGN (STARTUPINFOW, lpDesktop, 4)
    TEST_FIELD_OFFSET(STARTUPINFOW, lpDesktop, 8)
    TEST_FIELD_SIZE  (STARTUPINFOW, lpTitle, 4)
    TEST_FIELD_ALIGN (STARTUPINFOW, lpTitle, 4)
    TEST_FIELD_OFFSET(STARTUPINFOW, lpTitle, 12)
    TEST_FIELD_SIZE  (STARTUPINFOW, dwX, 4)
    TEST_FIELD_ALIGN (STARTUPINFOW, dwX, 4)
    TEST_FIELD_OFFSET(STARTUPINFOW, dwX, 16)
    TEST_FIELD_SIZE  (STARTUPINFOW, dwY, 4)
    TEST_FIELD_ALIGN (STARTUPINFOW, dwY, 4)
    TEST_FIELD_OFFSET(STARTUPINFOW, dwY, 20)
    TEST_FIELD_SIZE  (STARTUPINFOW, dwXSize, 4)
    TEST_FIELD_ALIGN (STARTUPINFOW, dwXSize, 4)
    TEST_FIELD_OFFSET(STARTUPINFOW, dwXSize, 24)
    TEST_FIELD_SIZE  (STARTUPINFOW, dwYSize, 4)
    TEST_FIELD_ALIGN (STARTUPINFOW, dwYSize, 4)
    TEST_FIELD_OFFSET(STARTUPINFOW, dwYSize, 28)
    TEST_FIELD_SIZE  (STARTUPINFOW, dwXCountChars, 4)
    TEST_FIELD_ALIGN (STARTUPINFOW, dwXCountChars, 4)
    TEST_FIELD_OFFSET(STARTUPINFOW, dwXCountChars, 32)
    TEST_FIELD_SIZE  (STARTUPINFOW, dwYCountChars, 4)
    TEST_FIELD_ALIGN (STARTUPINFOW, dwYCountChars, 4)
    TEST_FIELD_OFFSET(STARTUPINFOW, dwYCountChars, 36)
    TEST_FIELD_SIZE  (STARTUPINFOW, dwFillAttribute, 4)
    TEST_FIELD_ALIGN (STARTUPINFOW, dwFillAttribute, 4)
    TEST_FIELD_OFFSET(STARTUPINFOW, dwFillAttribute, 40)
    TEST_FIELD_SIZE  (STARTUPINFOW, dwFlags, 4)
    TEST_FIELD_ALIGN (STARTUPINFOW, dwFlags, 4)
    TEST_FIELD_OFFSET(STARTUPINFOW, dwFlags, 44)
    TEST_FIELD_SIZE  (STARTUPINFOW, wShowWindow, 2)
    TEST_FIELD_ALIGN (STARTUPINFOW, wShowWindow, 2)
    TEST_FIELD_OFFSET(STARTUPINFOW, wShowWindow, 48)
    TEST_FIELD_SIZE  (STARTUPINFOW, cbReserved2, 2)
    TEST_FIELD_ALIGN (STARTUPINFOW, cbReserved2, 2)
    TEST_FIELD_OFFSET(STARTUPINFOW, cbReserved2, 50)
    TEST_FIELD_SIZE  (STARTUPINFOW, lpReserved2, 4)
    TEST_FIELD_ALIGN (STARTUPINFOW, lpReserved2, 4)
    TEST_FIELD_OFFSET(STARTUPINFOW, lpReserved2, 52)
    TEST_FIELD_SIZE  (STARTUPINFOW, hStdInput, 4)
    TEST_FIELD_ALIGN (STARTUPINFOW, hStdInput, 4)
    TEST_FIELD_OFFSET(STARTUPINFOW, hStdInput, 56)
    TEST_FIELD_SIZE  (STARTUPINFOW, hStdOutput, 4)
    TEST_FIELD_ALIGN (STARTUPINFOW, hStdOutput, 4)
    TEST_FIELD_OFFSET(STARTUPINFOW, hStdOutput, 60)
    TEST_FIELD_SIZE  (STARTUPINFOW, hStdError, 4)
    TEST_FIELD_ALIGN (STARTUPINFOW, hStdError, 4)
    TEST_FIELD_OFFSET(STARTUPINFOW, hStdError, 64)
}

static void test_pack_SYSTEMTIME(void)
{
    /* SYSTEMTIME (pack 4) */
    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)
}

static void test_pack_SYSTEM_INFO(void)
{
    /* SYSTEM_INFO (pack 4) */
}

static void test_pack_SYSTEM_POWER_STATUS(void)
{
    /* SYSTEM_POWER_STATUS (pack 4) */
    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)
}

static void test_pack_TIME_ZONE_INFORMATION(void)
{
    /* TIME_ZONE_INFORMATION (pack 4) */
    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)
}

static void test_pack_UNLOAD_DLL_DEBUG_INFO(void)
{
    /* UNLOAD_DLL_DEBUG_INFO (pack 4) */
    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)
    TEST_FIELD_ALIGN (UNLOAD_DLL_DEBUG_INFO, lpBaseOfDll, 4)
    TEST_FIELD_OFFSET(UNLOAD_DLL_DEBUG_INFO, lpBaseOfDll, 0)
}

static void test_pack_WAITORTIMERCALLBACK(void)
{
    /* WAITORTIMERCALLBACK */
    TEST_TYPE_SIZE   (WAITORTIMERCALLBACK, 4)
    TEST_TYPE_ALIGN  (WAITORTIMERCALLBACK, 4)
}

static void test_pack_WIN32_FILE_ATTRIBUTE_DATA(void)
{
    /* WIN32_FILE_ATTRIBUTE_DATA (pack 4) */
    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 (pack 4) */
    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 (pack 4) */
    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)
}

static void test_pack(void)
{
    test_pack_ACTCTXA();
    test_pack_ACTCTXW();
    test_pack_ACTCTX_SECTION_KEYED_DATA();
    test_pack_ACTCTX_SECTION_KEYED_DATA_2600();
    test_pack_ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA();
    test_pack_ACTIVATION_CONTEXT_BASIC_INFORMATION();
    test_pack_BY_HANDLE_FILE_INFORMATION();
    test_pack_COMMCONFIG();
    test_pack_COMMPROP();
    test_pack_COMMTIMEOUTS();
    test_pack_COMSTAT();
    test_pack_CREATE_PROCESS_DEBUG_INFO();
    test_pack_CREATE_THREAD_DEBUG_INFO();
    test_pack_CRITICAL_SECTION();
    test_pack_CRITICAL_SECTION_DEBUG();
    test_pack_DCB();
    test_pack_DEBUG_EVENT();
    test_pack_ENUMRESLANGPROCA();
    test_pack_ENUMRESLANGPROCW();
    test_pack_ENUMRESNAMEPROCA();
    test_pack_ENUMRESNAMEPROCW();
    test_pack_ENUMRESTYPEPROCA();
    test_pack_ENUMRESTYPEPROCW();
    test_pack_EXCEPTION_DEBUG_INFO();
    test_pack_EXIT_PROCESS_DEBUG_INFO();
    test_pack_EXIT_THREAD_DEBUG_INFO();
    test_pack_HW_PROFILE_INFOA();
    test_pack_HW_PROFILE_INFOW();
    test_pack_LOAD_DLL_DEBUG_INFO();
    test_pack_LPBY_HANDLE_FILE_INFORMATION();
    test_pack_LPCOMMCONFIG();
    test_pack_LPCOMMPROP();
    test_pack_LPCOMMTIMEOUTS();
    test_pack_LPCOMSTAT();
    test_pack_LPCRITICAL_SECTION();
    test_pack_LPCRITICAL_SECTION_DEBUG();
    test_pack_LPDCB();
    test_pack_LPDEBUG_EVENT();
    test_pack_LPEXCEPTION_POINTERS();
    test_pack_LPEXCEPTION_RECORD();
    test_pack_LPFIBER_START_ROUTINE();
    test_pack_LPHW_PROFILE_INFOA();
    test_pack_LPHW_PROFILE_INFOW();
    test_pack_LPLONG();
    test_pack_LPMEMORYSTATUS();
    test_pack_LPMEMORYSTATUSEX();
    test_pack_LPOFSTRUCT();
    test_pack_LPOSVERSIONINFOA();
    test_pack_LPOSVERSIONINFOEXA();
    test_pack_LPOSVERSIONINFOEXW();
    test_pack_LPOSVERSIONINFOW();
    test_pack_LPOVERLAPPED();
    test_pack_LPOVERLAPPED_COMPLETION_ROUTINE();
    test_pack_LPPROCESS_HEAP_ENTRY();
    test_pack_LPPROCESS_INFORMATION();
    test_pack_LPPROGRESS_ROUTINE();
    test_pack_LPSECURITY_ATTRIBUTES();
    test_pack_LPSTARTUPINFOA();
    test_pack_LPSTARTUPINFOW();
    test_pack_LPSYSTEMTIME();
    test_pack_LPSYSTEM_INFO();
    test_pack_LPSYSTEM_POWER_STATUS();
    test_pack_LPTHREAD_START_ROUTINE();
    test_pack_LPTIME_ZONE_INFORMATION();
    test_pack_LPVOID();
    test_pack_LPWIN32_FILE_ATTRIBUTE_DATA();
    test_pack_LPWIN32_FIND_DATAA();
    test_pack_LPWIN32_FIND_DATAW();
    test_pack_LPWIN32_STREAM_ID();
    test_pack_MEMORYSTATUS();
    test_pack_MEMORYSTATUSEX();
    test_pack_OFSTRUCT();
    test_pack_OSVERSIONINFOA();
    test_pack_OSVERSIONINFOEXA();
    test_pack_OSVERSIONINFOEXW();
    test_pack_OSVERSIONINFOW();
    test_pack_OUTPUT_DEBUG_STRING_INFO();
    test_pack_PACTCTXA();
    test_pack_PACTCTXW();
    test_pack_PACTCTX_SECTION_KEYED_DATA();
    test_pack_PACTCTX_SECTION_KEYED_DATA_2600();
    test_pack_PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA();
    test_pack_PACTIVATION_CONTEXT_BASIC_INFORMATION();
    test_pack_PAPCFUNC();
    test_pack_PBY_HANDLE_FILE_INFORMATION();
    test_pack_PCACTCTXA();
    test_pack_PCACTCTXW();
    test_pack_PCACTCTX_SECTION_KEYED_DATA();
    test_pack_PCACTCTX_SECTION_KEYED_DATA_2600();
    test_pack_PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA();
    test_pack_PCRITICAL_SECTION();
    test_pack_PCRITICAL_SECTION_DEBUG();
    test_pack_PFIBER_START_ROUTINE();
    test_pack_PHKEY();
    test_pack_POFSTRUCT();
    test_pack_POSVERSIONINFOA();
    test_pack_POSVERSIONINFOEXA();
    test_pack_POSVERSIONINFOEXW();
    test_pack_POSVERSIONINFOW();
    test_pack_PPROCESS_HEAP_ENTRY();
    test_pack_PPROCESS_INFORMATION();
    test_pack_PQUERYACTCTXW_FUNC();
    test_pack_PROCESS_HEAP_ENTRY();
    test_pack_PROCESS_INFORMATION();
    test_pack_PSECURITY_ATTRIBUTES();
    test_pack_PSYSTEMTIME();
    test_pack_PTIMERAPCROUTINE();
    test_pack_PTIME_ZONE_INFORMATION();
    test_pack_PWIN32_FIND_DATAA();
    test_pack_PWIN32_FIND_DATAW();
    test_pack_RIP_INFO();
    test_pack_SECURITY_ATTRIBUTES();
    test_pack_STARTUPINFOA();
    test_pack_STARTUPINFOW();
    test_pack_SYSTEMTIME();
    test_pack_SYSTEM_INFO();
    test_pack_SYSTEM_POWER_STATUS();
    test_pack_TIME_ZONE_INFORMATION();
    test_pack_UNLOAD_DLL_DEBUG_INFO();
    test_pack_WAITORTIMERCALLBACK();
    test_pack_WIN32_FILE_ATTRIBUTE_DATA();
    test_pack_WIN32_FIND_DATAA();
    test_pack_WIN32_FIND_DATAW();
    test_pack_WIN32_STREAM_ID();
}

START_TEST(generated)
{
#ifdef _WIN64
    ok(0, "The type size / alignment tests don't support Win64 yet\n");
#else
    test_pack();
#endif
}
