/*++ BUILD Version: 0002
 *
 *  WOW v1.0
 *
 *  Copyright (c) 1991, Microsoft Corporation
 *
 *  WOWKRN.H
 *  16-bit Kernel API argument structures
 *
 *  History:
 *  Created 02-Feb-1991 by Jeff Parsons (jeffpar)
 *  01-May-91 Matt Felton (mattfe) added Private Callback CHECKLOADMODULEDRV
--*/


/* Kernel API IDs -- loosely based on kernel export ordinals, attempting to keep the table size
 * down.
 */

#define FUN_FATALEXIT                    1   //
#define FUN_EXITKERNEL                   2   // Internal
#define FUN_WRITEOUTPROFILES             3   // really 315 export 3 GetVersion not thunked
#define FUN_MAPSL                        4   // really 357 export 4 LocalInit not thunked
#define FUN_MAPLS                        5   // really 358 export 5 LocalAlloc not thunked
#define FUN_UNMAPLS                      6   // really 359 export 6 LocalReAlloc not thunked
#define FUN_OPENFILEEX                   7   // really 360 export 7 LocalFree not thunked
#define FUN_FASTANDDIRTYGLOBALFIX        8   // really 365 export 8 LocalLock not thunked
#define FUN_WRITEPRIVATEPROFILESTRUCT    9   // really 406 export 9 LocalUnlock not thunked
#define FUN_GETPRIVATEPROFILESTRUCT      10  // really 407 export 10 LocalSize not thunked
#define FUN_GETCURRENTDIRECTORY          11  // really 411 export 11 LocalHandle not thunked
#define FUN_SETCURRENTDIRECTORY          12  // really 412 export 12 LocalFlags not thunked
#define FUN_FINDFIRSTFILE                13  // really 413 export 13 LocalCompact not thunked
#define FUN_FINDNEXTFILE                 14  // really 414 export 14 LocalNotify not thunked
#define FUN_FINDCLOSE                    15  // really 415 export 15 GlobalAlloc not thunked
#define FUN_WRITEPRIVATEPROFILESECTION   16  // really 416 export 16 GlobalReAlloc not thunked
#define FUN_WRITEPROFILESECTION          17  // really 417 export 17 GlobalFree not thunked
#define FUN_GETPRIVATEPROFILESECTION     18  // really 418 export 18 GlobalLock not thunked
#define FUN_GETPROFILESECTION            19  // really 419 export 19 GlobalUnlock not thunked
#define FUN_GETFILEATTRIBUTES            20  // really 420 export 20 GlobalSize not thunked
#define FUN_SETFILEATTRIBUTES            21  // really 421 export 21 GlobalHandle not thunked
#define FUN_GETDISKFREESPACE             22  // really 422 export 22 GlobalFlags not thunked
#define FUN_ISPEFORMAT                   23  // really 431 export 23 LockSegment not thunked
#define FUN_FILETIMETOLOCALFILETIME      24  // really 432 export 24 UnlockSegment not thunked
#define FUN_UNITOANSI                    25  // really 434 export 25 GlobalCompact not thunked
#define FUN_GETVDMPOINTER32W             26  // really 516 export 26 GlobalFreeAll not thunked
#define FUN_CREATETHREAD                 27  // really 441 export 27 GetModuleName not thunked
#define FUN_ICALLPROC32W                 28  // really 517 export 28 GlobalMasterHandle not thunked
#define FUN_YIELD                        29  //
#define FUN_WAITEVENT                    30  // Internal
#define FUN_POSTEVENT                    31  // Internal
#define FUN_SETPRIORITY                  32  // Internal
#define FUN_LOCKCURRENTTASK              33  // Internal
#define FUN_LEAVEENTERWIN16LOCK          34  // really 447 export 34 formerly SetTaskQueue
#define FUN_REGLOADKEY32                 35  // really 232 export 35 GetTaskQueue not thunked
#define FUN_REGUNLOADKEY32               36  // really 233 export 36 GetCurrentTask not thunked
#define FUN_REGSAVEKEY32                 37  // really 234 export 37 GetCurrentPDB not thunked
#define FUN_GETWIN16LOCK                 38  // really 449 export 38 formerly SetTaskSignalProc
#define FUN_LOADLIBRARY32                39  // really 452 export 39 formerly SetTaskSwitchProc
#define FUN_GETPROCADDRESS32             40  // really 453 export 40 formerly SetTaskInterchange
#define FUN_WOWFINDFIRST                 41  // WOW internal export 41 EnableDOS not thunked
#define FUN_WOWFINDNEXT                  42  // WOW internal export 42 DisableDOS not thunked
#define FUN_CREATEWIN32EVENT             43  // really 457 export 43 formerly IsScreenGrab
#define FUN_SETWIN32EVENT                44  // really 458 export 44 formerly BuildPDB
#define FUN_WOWLOADMODULE                45  // reusing LoadModule export, not thunked to wow32
#define FUN_RESETWIN32EVENT              46  // really 459 export 46 FreeModule not thunked
#define FUN_GETMODULEHANDLE              47  //
#define FUN_WAITFORSINGLEOBJECT          48  // really 460 export 48 GetModuleUsage not thunked
#define FUN_GETMODULEFILENAME            49  //
#define FUN_WAITFORMULTIPLEOBJECTS       50  // really 461 export 50 GetProcAddress not thunked
#define FUN_GETCURRENTTHREADID           51  // really 462 export 51 MakeProcInstance not thunked
#define FUN_SETTHREADQUEUE               52  // really 463 export 52 FreeProcInstance not thunked
#define FUN_CONVERTTOGLOBALHANDLE        53  // really 476 export 53 CallProcInstance not thunked
#define FUN_GETTHREADQUEUE               54  // really 464 export 54 GetInstanceData not thunked
#define FUN_NUKEPROCESS                  55  // really 465 export 55 Catch not thunked
#define FUN_EXITPROCESS                  56  // really 466 export 56 Throw not thunked
#define FUN_GETPROFILEINT                57  //
#define FUN_GETPROFILESTRING             58  //
#define FUN_WRITEPROFILESTRING           59  //
#define FUN_GETCURRENTPROCESSID          60  // really 471 export 60 FindResource not thunked
#define FUN_MAPHINSTLS                   61  // really 472 export 61 LoadResource not thunked
#define FUN_MAPHINSTSL                   62  // really 473 export 62 LockResource not thunked
#define FUN_CLOSEWIN32HANDLE             63  // really 474 export 63 FreeResource not thunked
#define FUN_LOADSYSTEMLIBRARY32          64  // really 482 export 64 AccessResource not thunked
#define FUN_FREELIBRARY32                65  // really 486 export 65 ...Resource not thunked
#define FUN_GETMODULEFILENAME32          66  // really 487 export 66 AllocResource not thunked
#define FUN_GETMODULEHANDLE32            67  // really 488 export 67 SetResourceHandler not thunked
#define FUN_REGISTERSERVICEPROCESS       68  // really 491 export 68 InitAtomTable not thunked
#define FUN_CHANGEALLOCFIXEDBEHAVIOUR    69  // really 501 export 69 FindAtom not thunked
#define FUN_INITCB                       70  // really 560 export 70 AddAtom not thunked
#define FUN_GETSTDCBLS                   71  // really 561 export 71 DeleteAtom not thunked
#define FUN_GETSTDCBSL                   72  // really 562 export 72 GetAtomName not thunked
#define FUN_GETEXISTINGSTDCBLS           73  // really 563 export 73 GetAtomHandle not thunked
#define FUN_GETEXISTINGSTDCBSL           74  // really 564 export 74 OpenFile not thunked
#define FUN_GETFLEXCBSL                  75  // really 566 export 75 OpenPathName not thunked
#define FUN_GETSTDCBLSEX                 76  // really 567 export 76 DeletePathName not thunked
#define FUN_GETSTDCBSLEX                 77  // really 568 export 77 AnsiNext not thunked
#define FUN_CALLBACK2                    78  // really 802 export 78 AnsiPrev not thunked
#define FUN_CALLBACK4                    79  // really 804 export 79 AnsiUpper not thunked
#define FUN_CALLBACK6                    80  // really 806 export 80 AnsiLower not thunked
#define FUN_CALLBACK8                    81  // really 808 export 81 _lclose not thunked
#define FUN_CALLBACK10                   82  // really 810 export 82 _lread not thunked
#define FUN_CALLBACK12                   83  // really 812 export 83 _lcreat not thunked
#define FUN_CALLBACK14                   84  // really 814 export 84 _lseek not thunked
#define FUN_CALLBACK16                   85  // really 816 export 85 _lopen not thunked
#define FUN_CALLBACK18                   86  // really 818 export 86 _lwrite not thunked
#define FUN_CALLBACK20                   87  // really 820 export 87 lstroriginal not thunked
#define FUN_CALLBACK22                   88  // really 822 export 88 lstrcpy not thunked
#define FUN_CALLBACK24                   89  // really 824 export 89 lstrcat not thunked
#define FUN_CALLBACK26                   90  // really 826 export 90 lstrlen not thunked
#define FUN_CALLBACK28                   91  // really 828 export 91 InitTask not thunked
#define FUN_CALLBACK30                   92  // really 830 export 92 GetTempDrive not thunked
#define FUN_CALLBACK32                   93  // really 832 export 93 GetCodeHandle not thunked
#define FUN_CALLBACK34                   94  // really 834 export 94 DefineHandleTable not thunked
#define FUN_CALLBACK36                   95  // really 836 export 95 LoadLibrary not thunked
#define FUN_CALLBACK38                   96  // really 838 export 96 FreeLibrary not thunked
#define FUN_CALLBACK40                   97  // really 840 export 97 GetTempFilename not thunked
#define FUN_CALLBACK42                   98  // really 842 export 98 GetLastDiskChange not thunked
#define FUN_CALLBACK44                   99  // really 844 export 99 GetLPErrMode not thunked
#define FUN_CALLBACK46                   100 // really 846 export 100 ValidateCodeSegments not thunked
#define FUN_CALLBACK48                   101 // really 848 export 101 NoHookDosCall not thunked
#define FUN_CALLBACK50                   102 // really 850 export 102 Dos3Call not thunked
#define FUN_CALLBACK52                   103 // really 852 export 103 NetBiosCall not thunked
#define FUN_CALLBACK54                   104 // really 854 export 104 GetCodeInfo not thunked
#define FUN_CALLBACK56                   105 // really 856 export 105 GetExeVersion not thunked
#define FUN_CALLBACK58                   106 // really 858 export 106 SetSwapAreaSize not thunked
#define FUN_CALLBACK60                   107 // really 860 export 107 SetErrorMode not thunked
#define FUN_CALLBACK62                   108 // really 862 export 108 SwitchStackTo not thunked
#define FUN_CALLBACK64                   109 // really 864 export 109 SwitchStackBack not thunked
#define FUN_WOWKILLTASK                  110 // WOW internal export 110 PatchCodeHandle not thunked
#define FUN_WOWFILEWRITE                 111 // WOW internal export 111 GlobalWire not thunked
#define FUN_WOWGETNEXTVDMCOMMAND         112 // really 502 export 112 GlobalUnWire not thunked
#define FUN_WOWFILELOCK                  113 // WOW internal export 113 is data __AHSHIFT
#define FUN_WOWFREERESOURCE              114 // WOW internal export 114 is data __AHINCR
#define FUN_WOWOUTPUTDEBUGSTRING         115 // export 115 is OutputDebugString, not directly thunked.
#define FUN_WOWINITTASK                  116 // WOW internal export 116 InitLib not thunked
#define FUN_OLDYIELD                     117 //
#define FUN_WOWFILESETDATETIME           118 // WOW internal export 118 GetTaskQueueDS no longer exported
#define FUN_WOWFILECREATE                119 // WOW internal export 119 GetTaskQueueES no longer exported
#define FUN_WOWDOSWOWINIT                120 // WOW internal export 120 UndefDynLink not thunked
#define FUN_WOWCHECKUSERGDI              121 // WOW internal export 121 LocalShrink not thunked
#define FUN_WOWPARTYBYNUMBER             122 // really 273 export 122 IsTaskLocked not thunked
#define FUN_GETSHORTPATHNAME             123 // really 274 export 123 KbdRst not thunked
#define FUN_FINDANDRELEASEDIB            124 // WOW internal export 124 EnableKernel not thunked
#define FUN_WOWRESERVEHTASK              125 // WOW internal export 125 DisableKernel not thunked
#define FUN_WOWFILESETATTRIBUTES         126 // WOW internal export 126 MemoryFreed not thunked
#define FUN_GETPRIVATEPROFILEINT         127 //
#define FUN_GETPRIVATEPROFILESTRING      128 //
#define FUN_WRITEPRIVATEPROFILESTRING    129 //
#define FUN_WOWSETCURRENTDIRECTORY       130 // WOW internal export 130 FileCDR not thunked
#define FUN_WOWWAITFORMSGANDEVENT        131 // really 262 export 131 GetDosEnvironment not thunked
#define FUN_WOWMSGBOX                    132 // really 263 export 132 GetWinFlags not thunked
#define FUN_WOWGETFLATADDRESSARRAY       133 // WOW internal export 133 GetExePtr not thunked
#define FUN_WOWGETCURRENTDATE            134 // WOW internal export 134 GetWindowsDirectory not thunked
#define FUN_WOWDEVICEIOCTL               135 // WOW internal export 135 GetSystemDirectory not thunked
#define FUN_GETDRIVETYPE                 136 //
#define FUN_WOWFILEGETDATETIME           137 // WOW internal export 137 FatalAppExit not thunked
#define FUN_SETAPPCOMPATFLAGS            138 // WOW internal export 138 GetHeapSpaces not thunked
#define FUN_WOWREGISTERSHELLWINDOWHANDLE 139 // really 251 export 139 DoSignal not thunked
#define FUN_FREELIBRARY32W               140 // really 514 export 140 SetSigHandler not thunked
#define FUN_GETPROCADDRESS32W            141 // really 515 export 141 InitTask1 not thunked
#define FUN_GETPROFILESECTIONNAMES       142 //
#define FUN_GETPRIVATEPROFILESECTIONNAMES 143 //
#define FUN_CREATEDIRECTORY              144 //
#define FUN_REMOVEDIRECTORY              145 //
#define FUN_DELETEFILE                   146 //
#define FUN_SETLASTERROR                 147 //
#define FUN_GETLASTERROR                 148 //
#define FUN_GETVERSIONEX                 149 //
#define FUN_DIRECTEDYIELD                150 //
#define FUN_WOWFILEREAD                  151 // WOW internal export 151 WinOldApCall not thunked
#define FUN_WOWFILELSEEK                 152 // WOW internal export 152 GetNumTasks not thunked
#define FUN_WOWKERNELTRACE               153 // WOW internal export 153 DiscardCodeSegment no longer exported
#define FUN_LOADLIBRARYEX32W             154 // really 513 export 154 GlobalNotify not thunked
#define FUN_WOWQUERYPERFORMANCECOUNTER   155 // really 505 export 155 GetTaskDS not thunked
#define FUN_WOWCURSORICONOP              156 // really 507 export 156 LimitEMSPages not thunked
#define FUN_WOWFAILEDEXEC                157 // WOW internal export 157 GetCurPID not thunked
#define FUN_WOWGETFASTADDRESS            158 // WOW internal export 158 IsWinOldApTask not thunked
#define FUN_WOWCLOSECOMPORT              159 // really 509 export 159 GlobalHandleNoRIP not thunked
#define FUN_LOCAL32INIT                  160 // really 208 export 160 EMSCopy not thunked
#define FUN_LOCAL32ALLOC                 161 // really 209 export 161 LocalCountFree not thunked
#define FUN_LOCAL32REALLOC               162 // really 210 export 162 LocalHeapSize not thunked
#define FUN_LOCAL32FREE                  163 // really 211 export 163 GlobalLRUOldest not thunked
#define FUN_LOCAL32TRANSLATE             164 // really 213 export 164 GlobalLRUNewest not thunked
#define FUN_LOCAL32SIZE                  165 // really 214 export 165 A20Proc not thunked
#define FUN_LOCAL32VALIDHANDLE           166 // really 215 export 166 WinExec not thunked
#define FUN_REGENUMKEY32                 167 // really 216 export 167 GetExpWinVer not thunked
#define FUN_REGOPENKEY32                 168 // really 217 export 168 DirectResAlloc not thunked
#define FUN_REGCREATEKEY32               169 // really 218 export 169 GetFreeSpace not thunked
#define FUN_REGDELETEKEY32               170 // really 219 export 170 AllocCStoDSAlias not thunked
#define FUN_REGCLOSEKEY32                171 // really 220 export 171 AllocDStoCSAlias not thunked
#define FUN_REGSETVALUE32                172 // really 221 export 172 AllocAlias not thunked
#define FUN_REGDELETEVALUE32             173 // really 222 export 173 is data __ROMBIOS
#define FUN_REGENUMVALUE32               174 // really 223 export 174 is data __A000h
#define FUN_REGQUERYVALUE32              175 // really 224 export 175 AllocSelector not thunked
#define FUN_REGQUERYVALUEEX32            176 // really 225 export 176 FreeSelector not thunked
#define FUN_REGSETVALUEEX32              177 // really 226 export 177 PrestoChangoSelector not thunked
#define FUN_REGFLUSHKEY32                178 // really 227 export 178 is data __WINFLAGS
#define FUN_COMPUTEOBJECTOWNER           179 // really 228 export 179 is data __D000h
#define FUN_LOCAL32GETSEL                180 // really 229 export 180 LongPtrAdd not thunked
#define FUN_MAPPROCESSHANDLE             181 // really 483 export 181 is data __B000h
#define FUN_INVALIDATENLSCACHE           182 // really 235 export 182 is data __B800h
#define FUN_WOWDELFILE                   183 // WOW internal export 183 is data __0000h
#ifdef  RENAMEVIRTUAL
#define FUN_WOWVIRTUALALLOC              184 // WOW internal export 184 GlobalDOSAlloc not thunked
#define FUN_WOWVIRTUALFREE               185 // WOW internal export 185 GlobalDOSFree not thunked
#else   // RENAMEVIRTUAL
#define FUN_VIRTUALALLOC              184 // WOW internal export 184 GlobalDOSAlloc not thunked
#define FUN_VIRTUALFREE               185 // WOW internal export 185 GlobalDOSFree not thunked
#endif  // else RENAMEVIRTUAL
#define FUN_VIRTUALLOCK                  186 // WOW internal export 186 GetSelectorBase not thunked
#define FUN_VIRTUALUNLOCK                187 // WOW internal export 187 SetSelectorBase not thunked
#define FUN_GLOBALMEMORYSTATUS           188 // WOW internal export 188 GetSelectorLimit not thunked
#define FUN_WOWGETFASTCBRETADDRESS       189 // WOW internal export 189 SetSelectorLimit not thunked
#define FUN_WOWGETTABLEOFFSETS           190 // WOW internal export 190 is data __E000h
#define FUN_WOWKILLREMOTETASK            191 // really 511 export 191 GlobalPageLock not thunked
#define FUN_WOWNOTIFYWOW32               192 // WOW internal export 192 GlobalPageUnlock not thunked
#define FUN_WOWFILEOPEN                  193 // WOW internal export 193 is data __0040h
#define FUN_WOWFILECLOSE                 194 // WOW internal export 194 is data __F000h
#define FUN_WOWSETIDLEHOOK               195 // WOW internal export 195 is data __C000h
#define FUN_KSYSERRORBOX                 196 // WOW internal export 196 SelectorAccessRights not thunked
#define FUN_WOWISKNOWNDLL                197 // WOW internal export 197 GlobalFix not thunked
#define FUN_WOWDDEFREEHANDLE             198 // WOW internal export 198 GlobalUnfix not thunked
#define FUN_WOWFILEGETATTRIBUTES         199 // WOW internal export 199 SetHandleCount not thunked
#define FUN_WOWSETDEFAULTDRIVE           200 // WOW internal export 200 ValidateFreeSpaces not thunked
#define FUN_WOWGETCURRENTDIRECTORY       201 // WOW internal export 201 ReplaceInst not thunked
#define FUN_GETPRODUCTNAME               202 // really 236 export 202 RegisterPTrace not thunked
#define FUN_ISSAFEMODE                   203 // really 237 export 203 DebugBreak not thunked
#define FUN_WOWLFNENTRY                  204 // WOW internal export 204 SwapRecording not thunked
#define FUN_WOWSHUTDOWNTIMER             205 // WOW internal export 205 CVWBreak not thunked
#define FUN_WOWTRIMWORKINGSET            206 // WOW internal export 206 AllocSelectorArray not thunked

#ifdef FE_SB
#define FUN_GETSYSTEMDEFAULTLANGID       207 // really 521 export 207 ISDBCSLEADBYTE not thunked
#endif
#define FUN_TERMSRVGETWINDOWSDIR         208 // internal

// #define FUN_WOWGETCURRENTDIRECTORYLONG   209 // WOW internal export
#define FUN_WOWPASSENVIRONMENT           209 // internal pass_environment
//#define FUN_WOWLOADKERNEL32              210 // internal kernel loading
#define FUN_WOWSYNCTASK                  210 // internal parent/child sync
#define FUN_WOWVWIN32                    211 // internal VWIN32 mapper
#define FUN_WOWVXDCALL                   212 // internal VxDCall mapper
#define FUN_WOWINT2f                     213 // internal Int2f parser


//
// Note the following "special" FUN_ identifiers are not used as offsets
// in a thunk table, but rather as arguments to some WOW private APIs,
// WowCursorIconOp and FindAndReleaseDib.
//

#define FUN_GLOBALFREE                   1000
#define FUN_GLOBALREALLOC                1001
#define FUN_GLOBALLOCK                   1002
#define FUN_GLOBALUNLOCK                 1003


/* XLATOFF */
#pragma pack(2)
/* XLATON */


/* NOTE that the tag (like "/* k1 * /") on each typedef line is used by
 * h2inc when building wowkrn.inc, as a prefix for that structures
 * members, since our assembler has only a single flat namespace. */


typedef struct _FATALEXIT16 {                              /* k1 */
    SHORT f1;
} FATALEXIT16;
typedef FATALEXIT16 UNALIGNED *PFATALEXIT16;

typedef struct _EXITKERNEL16 {                             /* k2 */
    WORD wExitCode;
} EXITKERNEL16;
typedef EXITKERNEL16 UNALIGNED *PEXITKERNEL16;

#ifdef NULLSTRUCT
typedef struct _WRITEOUTPROFILES16 {                       /* k3 */
} WRITEOUTPROFILES16;
typedef WRITEOUTPROFILES16 UNALIGNED *PWRITEOUTPROFILES16;
#endif

typedef struct _MAPSL16 {                                  /* k4 */
    DWORD vp;
} MAPSL16;
typedef MAPSL16 UNALIGNED *PMAPSL16;

typedef struct _MAPLS16 {                                  /* k5 */
    PVOID p;
} MAPLS16;
typedef MAPLS16 UNALIGNED *PMAPLS16;

typedef struct _UNMAPLS16 {                                /* k6 */
    PVOID vp;
} UNMAPLS16;
typedef UNMAPLS16 UNALIGNED *PUNMAPLS16;

typedef struct _OPENFILEEX16 {                             /* k7 */
    WORD  wFlags;
    DWORD lpOFStructEx;
    DWORD lpSrcFile;
} OPENFILEEX16;
typedef OPENFILEEX16 UNALIGNED *POPENFILEEX16;

typedef struct _FASTANDDIRTYGLOBALFIX16 {                  /* k8 */
    WORD  selFix;
    WORD  wAction;
} FASTANDDIRTYGLOBALFIX16;
typedef FASTANDDIRTYGLOBALFIX16 UNALIGNED *PFASTANDDIRTYGLOBALFIX16;

typedef struct _WRITEPRIVATEPROFILESTRUCT16 {              /* k9 */
    DWORD lpszFile;
    WORD  cbStruct;
    DWORD lpStruct;
    DWORD lpszKey;
    DWORD lpszSection;
} WRITEPRIVATEPROFILESTRUCT16;
typedef WRITEPRIVATEPROFILESTRUCT16 UNALIGNED *PWRITEPRIVATEPROFILESTRUCT16;

typedef struct _GETPRIVATEPROFILESTRUCT16 {                /* k10 */
    DWORD lpszFile;
    WORD  cbStruct;
    DWORD lpStruct;
    DWORD lpszKey;
    DWORD lpszSection;
} GETPRIVATEPROFILESTRUCT16;
typedef GETPRIVATEPROFILESTRUCT16 UNALIGNED *PGETPRIVATEPROFILESTRUCT16;

typedef struct _GETCURRENTDIRECTORY16 {                    /* k11 */
    DWORD lpszDir;
    DWORD cchDir;
} GETCURRENTDIRECTORY16;
typedef GETCURRENTDIRECTORY16 UNALIGNED *PGETCURRENTDIRECTORY16;

typedef struct _SETCURRENTDIRECTORY16 {                    /* k12 */
    DWORD lpszDir;
} SETCURRENTDIRECTORY16;
typedef SETCURRENTDIRECTORY16 UNALIGNED *PSETCURRENTDIRECTORY16;

typedef struct _FINDFIRSTFILE16 {                          /* k13 */
    DWORD lpFindData;
    DWORD lpszSearchFile;
} FINDFIRSTFILE16;
typedef FINDFIRSTFILE16 UNALIGNED *PFINDFIRSTFILE16;

typedef struct _FINDNEXTFILE16 {                           /* k14 */
    DWORD lpFindData;
    DWORD hFindFile;
} FINDNEXTFILE16;
typedef FINDNEXTFILE16 UNALIGNED *PFINDNEXTFILE16;

typedef struct _FINDCLOSE16 {                              /* k15 */
    DWORD hFindFile;
} FINDCLOSE16;
typedef FINDCLOSE16 UNALIGNED *PFINDCLOSE16;

typedef struct _WRITEPRIVATEPROFILESECTION16 {             /* k16 */
    DWORD lpszFile;
    DWORD lpKeysAndValues;
    DWORD lpszSection;
} WRITEPRIVATEPROFILESECTION16;
typedef WRITEPRIVATEPROFILESECTION16 UNALIGNED *PWRITEPRIVATEPROFILESECTION16;

typedef struct _WRITEPROFILESECTION16 {                    /* k17 */
    DWORD lpKeysAndValues;
    DWORD lpszSection;
} WRITEPROFILESECTION16;
typedef WRITEPROFILESECTION16 UNALIGNED *PWRITEPROFILESECTION16;

typedef struct _GETPRIVATEPROFILESECTION16 {               /* k18 */
    DWORD lpszFile;
    WORD  cchResult;
    DWORD lpResult;
    DWORD lpszSection;
} GETPRIVATEPROFILESECTION16;
typedef GETPRIVATEPROFILESECTION16 UNALIGNED *PGETPRIVATEPROFILESECTION16;

typedef struct _GETPROFILESECTION16 {                      /* k19 */
    WORD  cchResult;
    DWORD lpResult;
    DWORD lpszSection;
} GETPROFILESECTION16;
typedef GETPROFILESECTION16 UNALIGNED *PGETPROFILESECTION16;

typedef struct _GETFILEATTRIBUTES16 {                      /* k20 */
    DWORD lpszFile;
} GETFILEATTRIBUTES16;
typedef GETFILEATTRIBUTES16 UNALIGNED *PGETFILEATTRIBUTES16;

typedef struct _SETFILEATTRIBUTES16 {                      /* k21 */
    DWORD dwFileAttributes;
    DWORD lpszFile;
} SETFILEATTRIBUTES16;
typedef SETFILEATTRIBUTES16 UNALIGNED *PSETFILEATTRIBUTES16;

typedef struct _GETDISKFREESPACE16 {                       /* k22 */
    DWORD lpdwClusters;
    DWORD lpdwFreeClusters;
    DWORD lpdwBytesPerSector;
    DWORD lpdwSectorsPerCluster;
    DWORD lpszRootPathName;
} GETDISKFREESPACE16;
typedef GETDISKFREESPACE16 UNALIGNED *PGETDISKFREESPACE16;

typedef struct _ISPEFORMAT16 {                             /* k23 */
    WORD  hFile;
    DWORD lpszFile;
} ISPEFORMAT16;
typedef ISPEFORMAT16 UNALIGNED *PISPEFORMAT16;

typedef struct _FILETIMETOLOCALFILETIME16 {                /* k24 */
    DWORD lpLocalFileTime;
    DWORD lpUTCFileTime;
} FILETIMETOLOCALFILETIME16;
typedef FILETIMETOLOCALFILETIME16 UNALIGNED *PFILETIMETOLOCALFILETIME16;

typedef struct _UNITOANSI16 {                              /* k25 */
    WORD  cch;
    DWORD pchDst;
    DWORD pchSrc;
} UNITOANSI16;
typedef UNITOANSI16 UNALIGNED *PUNITOANSI16;

typedef struct _GETVDMPOINTER32W16 {                       /* k26 */
    SHORT  fMode;
    VPVOID lpAddress;
} GETVDMPOINTER32W16;
typedef GETVDMPOINTER32W16 UNALIGNED *PGETVDMPOINTER32W16;

typedef struct _CREATETHREAD16 {                           /* k27 */
    DWORD lpThreadID;
    DWORD dwCreateFlags;
    DWORD lpParameter;
    DWORD lpStartAddress;
    DWORD dwStackSize;
    DWORD lpSecurityAttributes;
} CREATETHREAD16;
typedef CREATETHREAD16 UNALIGNED *PCREATETHREAD16;

typedef struct _ICALLPROC32W16 {                           /* k28 */
    WORD  rbp;
    DWORD retaddr;
    DWORD cParams;
    DWORD fAddressConvert;
    DWORD lpProcAddress;
    DWORD p1;
    DWORD p2;
    DWORD p3;
    DWORD p4;
    DWORD p5;
    DWORD p6;
    DWORD p7;
    DWORD p8;
    DWORD p9;
    DWORD p10;
    DWORD p11;
    DWORD p12;
    DWORD p13;
    DWORD p14;
    DWORD p15;
    DWORD p16;
    DWORD p17;
    DWORD p18;
    DWORD p19;
    DWORD p20;
    DWORD p21;
    DWORD p22;
    DWORD p23;
    DWORD p24;
    DWORD p25;
    DWORD p26;
    DWORD p27;
    DWORD p28;
    DWORD p29;
    DWORD p30;
    DWORD p31;
    DWORD p32;
} ICALLPROC32W16;
typedef ICALLPROC32W16 UNALIGNED *PICALLPROC32W16;

#define CPEX32_DEST_CDECL   0x8000L
#define CPEX32_SOURCE_CDECL 0x4000L

#ifdef NULLSTRUCT
typedef struct _YIELD16 {                                  /* k29 */
} YIELD16;
typedef YIELD16 UNALIGNED *PYIELD16;
#endif

typedef struct _WAITEVENT16 {                              /* k30 */
    WORD    wTaskID;
} WAITEVENT16;
typedef WAITEVENT16 UNALIGNED *PWAITEVENT16;

typedef struct _POSTEVENT16 {                              /* k31 */
    WORD    hTask16;
} POSTEVENT16;
typedef POSTEVENT16 UNALIGNED *PPOSTEVENT16;

typedef struct _SETPRIORITY16 {                            /* k32 */
    WORD    wPriority;
    WORD    hTask16;
} SETPRIORITY16;
typedef SETPRIORITY16 UNALIGNED *PSETPRIORITY16;

typedef struct _LOCKCURRENTTASK16 {                        /* k33 */
    WORD    fLock;
} LOCKCURRENTTASK16;
typedef LOCKCURRENTTASK16 UNALIGNED *PLOCKCURRENTTASK16;

#ifdef NULLSTRUCT
typedef struct _LEAVEENTERWIN16LOCK {                      /* k34 */
} LEAVEENTERWIN16LOCK;
typedef LEAVEENTERWIN16LOCK UNALIGNED *PLEAVEENTERWIN16LOCK;
#endif

typedef struct _REGLOADKEY3216 {                           /* k35 */
    VPSTR lpszFileName;
    VPSTR lpszSubkey;
    DWORD hKey;
} REGLOADKEY3216;
typedef REGLOADKEY3216 UNALIGNED *PREGLOADKEY3216;

typedef struct _REGUNLOADKEY3216 {                         /* k36 */
    VPSTR lpszSubkey;
    DWORD hKey;
} REGUNLOADKEY3216;
typedef REGUNLOADKEY3216 UNALIGNED *PREGUNLOADKEY3216;

typedef struct _REGSAVEKEY3216 {                           /* k37 */
    VPVOID lpSA;
    VPSTR  lpszSubkey;
    DWORD  hKey;
} REGSAVEKEY3216;
typedef REGSAVEKEY3216 UNALIGNED *PREGSAVEKEY3216;

#ifdef NULLSTRUCT
typedef struct _GETWIN16LOCK16 {                           /* k38 */
} GETWIN16LOCK16;
typedef GETWIN16LOCK16 UNALIGNED *PGETWIN16LOCK16;
#endif

typedef struct _LOADLIBRARY3216 {                          /* k39 */
    DWORD lpszLibrary;
} LOADLIBRARY3216;
typedef LOADLIBRARY3216 UNALIGNED *PLOADLIBRARY3216;

typedef struct _GETPROCADDRESS3216 {                       /* k40 */
    DWORD lpszProc;
    DWORD hLib;
} GETPROCADDRESS3216;
typedef GETPROCADDRESS3216 UNALIGNED *PGETPROCADDRESS3216;

typedef struct _WOWFINDFIRST16 {                           /* k41 */
    DWORD lpDTA;
    WORD  pszPathOffset;
    WORD  pszPathSegment;
    WORD  wAttributes;
} WOWFINDFIRST16;
typedef WOWFINDFIRST16 UNALIGNED *PWOWFINDFIRST16;

typedef struct _WOWFINDNEXT16 {                            /* k42 */
    DWORD lpDTA;
} WOWFINDNEXT16;
typedef WOWFINDNEXT16 UNALIGNED *PWOWFINDNEXT16;

typedef struct _CREATEWIN32EVENT16 {                       /* k43 */
    DWORD bInitialState;
    DWORD bManualReset;
} CREATEWIN32EVENT16;
typedef CREATEWIN32EVENT16 UNALIGNED *PCREATEWIN32EVENT16;

typedef struct _SETWIN32EVENT16 {                          /* k44 */
    DWORD hEvent;
} SETWIN32EVENT16;
typedef SETWIN32EVENT16 UNALIGNED *PSETWIN32EVENT16;

typedef struct _WOWLOADMODULE16 {                          /* k45 */
    VPSTR  lpWinOldAppCmd;
    VPVOID lpParameterBlock;
    VPSTR  lpModuleName;
} WOWLOADMODULE16;
typedef WOWLOADMODULE16 UNALIGNED *PWOWLOADMODULE16;

typedef struct _PARAMETERBLOCK16 {                         /* k45_2 */
    WORD    wEnvSeg;
    VPVOID  lpCmdLine;
    VPVOID  lpCmdShow;
    DWORD   dwReserved;
} PARAMETERBLOCK16;
typedef PARAMETERBLOCK16 UNALIGNED *PPARAMETERBLOCK16;

typedef struct _RESETWIN32EVENT16 {                        /* k46 */
    DWORD hEvent;
} RESETWIN32EVENT16;
typedef RESETWIN32EVENT16 UNALIGNED *PRESETWIN32EVENT16;

typedef struct _WOWGETMODULEHANDLE16 {                     /* k47 */
    VPSTR lpszModuleName;
} WOWGETMODULEHANDLE16;
typedef WOWGETMODULEHANDLE16 UNALIGNED *PWOWGETMODULEHANDLE16;

typedef struct _WAITFORSINGLEOBJECT16 {                    /* k48 */
    DWORD dwTimeout;
    DWORD h;
} WAITFORSINGLEOBJECT16;
typedef WAITFORSINGLEOBJECT16 UNALIGNED *PWAITFORSINGLEOBJECT16;

typedef struct _GETMODULEFILENAME16 {                      /* k49 */
    SHORT f3;
    VPSTR f2;
    HAND16 f1;
} GETMODULEFILENAME16;
typedef GETMODULEFILENAME16 UNALIGNED *PGETMODULEFILENAME16;

typedef struct _WAITFORMULTIPLEOBJECTS16 {                 /* k50 */
    DWORD dwTimeout;
    DWORD bWaitForAll;
    DWORD lphObjects;
    DWORD cObjects;
} WAITFORMULTIPLEOBJECTS16;
typedef WAITFORMULTIPLEOBJECTS16 UNALIGNED *PWAITFORMULTIPLEOBJECTS16;

#ifdef NULLSTRUCT
typedef struct _GETCURRENTTHREADID16 {                     /* k51 */
} GETCURRENTTHREADID16;
typedef GETCURRENTTHREADID16 UNALIGNED *PGETCURRENTTHREADID16;
#endif

typedef struct _SETTHREADQUEUE16 {                         /* k52 */
    WORD  NewQueueSel;
    DWORD dwThreadID;
} SETTHREADQUEUE16;
typedef SETTHREADQUEUE16 UNALIGNED *PSETTHREADQUEUE16;

typedef struct _CONVERTTOGLOBALHANDLE16 {                  /* k53 */
    DWORD dwHandle;
} CONVERTTOGLOBALHANDLE16;
typedef CONVERTTOGLOBALHANDLE16 UNALIGNED *PCONVERTTOGLOBALHANDLE16;

typedef struct _GETTHREADQUEUE16 {                         /* k54 */
    DWORD dwThreadID;
} GETTHREADQUEUE16;
typedef GETTHREADQUEUE16 UNALIGNED *PGETTHREADQUEUE16;

typedef struct _NUKEPROCESS16 {                            /* k55 */
    DWORD ulFlags;
    WORD  uExitCode;
    DWORD ppdb;
} NUKEPROCESS16;
typedef NUKEPROCESS16 UNALIGNED *PNUKEPROCESS16;

typedef struct _EXITPROCESS16 {                            /* k56 */
    WORD wStatus;
} EXITPROCESS16;
typedef EXITPROCESS16 UNALIGNED *PEXITPROCESS16;

typedef struct _GETPROFILEINT16 {                          /* k57 */
    SHORT f3;
    VPSTR f2;
    VPSTR f1;
} GETPROFILEINT16;
typedef GETPROFILEINT16 UNALIGNED *PGETPROFILEINT16;

typedef struct _GETPROFILESTRING16 {                       /* k58 */
    USHORT f5;
    VPSTR f4;
    VPSTR f3;
    VPSTR f2;
    VPSTR f1;
} GETPROFILESTRING16;
typedef GETPROFILESTRING16 UNALIGNED *PGETPROFILESTRING16;

typedef struct _WRITEPROFILESTRING16 {                     /* k59 */
    VPSTR f3;
    VPSTR f2;
    VPSTR f1;
} WRITEPROFILESTRING16;
typedef WRITEPROFILESTRING16 UNALIGNED *PWRITEPROFILESTRING16;

#ifdef NULLSTRUCT
typedef struct _GETCURRENTPROCESSID16 {                    /* k60 */
} GETCURRENTPROCESSID16;
typedef GETCURRENTPROCESSID16 UNALIGNED *PGETCURRENTPROCESSID16;
#endif

#ifdef NULLSTRUCT
typedef struct _MAPHINSTLS {                               /* k61 */
    /* NOTE if you implement this the interface is register-based */
} MAPHINSTLS;
typedef MAPHINSTLS UNALIGNED *PMAPHINSTLS;
#endif

#ifdef NULLSTRUCT
typedef struct _MAPHINSTSL {                               /* k62 */
    /* NOTE if you implement this the interface is register-based */
} MAPHINSTSL;
typedef MAPHINSTSL UNALIGNED *PMAPHINSTSL;
#endif

typedef struct _CLOSEWIN32HANDLE16 {                       /* k63 */
    DWORD h32;
} CLOSEWIN32HANDLE16;
typedef CLOSEWIN32HANDLE16 UNALIGNED *PCLOSEWIN32HANDLE16;

typedef struct _LOADSYSTEMLIBRARY3216 {                    /* k64 */
    VPSTR lpszLibrary;
} LOADSYSTEMLIBRARY3216;
typedef LOADSYSTEMLIBRARY3216 UNALIGNED *PLOADSYSTEMLIBRARY3216;

typedef struct _FREELIBRARY3216 {                          /* k65 */
    DWORD hModule;
} FREELIBRARY3216;
typedef FREELIBRARY3216 UNALIGNED *PFREELIBRARY3216;

typedef struct _GETMODULEFILENAME3216 {                    /* k66 */
    WORD    wBufferSize;
    VPSTR   lpBuffer;
    DWORD   hModule;
} GETMODULEFILENAME3216;
typedef GETMODULEFILENAME3216 UNALIGNED *PGETMODULEFILENAME3216;

typedef struct _GETMODULEHANDLE3216 {                      /* k67 */
    VPSTR lpszModule;
} GETMODULEHANDLE3216;
typedef GETMODULEHANDLE3216 UNALIGNED *PGETMODULEHANDLE3216;

typedef struct _REGISTERSERVICEPROCESS16 {                 /* k68 */
    DWORD dwServiceType;
    DWORD dwProcessID;
} REGISTERSERVICEPROCESS16;
typedef REGISTERSERVICEPROCESS16 UNALIGNED *PREGISTERSERVICEPROCESS16;

typedef struct _CHANGEALLOCFIXEDBEHAVIOUR16 {              /* k69 */
    WORD fWin31Behavior;
} CHANGEALLOCFIXEDBEHAVIOUR16;
typedef CHANGEALLOCFIXEDBEHAVIOUR16 UNALIGNED *PCHANGEALLOCFIXEDBEHAVIOUR16;

typedef struct _INITCB16 {                                 /* k70 */
    DWORD fnStdCBSLDispatch;
    DWORD fnStdCBLSDispatch;
} INITCB16;
typedef INITCB16 UNALIGNED *PINITCB16;

typedef struct _GETSTDCBLS16 {                             /* k71 */
    DWORD CBID;
    DWORD pfnTarg16;
} GETSTDCBLS16;
typedef GETSTDCBLS16 UNALIGNED *PGETSTDCBLS16;

typedef struct _GETSTDCBSL16 {                             /* k72 */
    DWORD CBID;
    DWORD pfnTarg32;
} GETSTDCBSL16;
typedef GETSTDCBSL16 UNALIGNED *PGETSTDCBSL16;

typedef struct _GETEXISTINGSTDCBLS16 {                     /* k73 */
    DWORD CBID;
    DWORD pfnTarg16;
} GETEXISTINGSTDCBLS16;
typedef GETEXISTINGSTDCBLS16 UNALIGNED *PGETEXISTINGSTDCBLS16;

typedef struct _GETEXISTINGSTDCBSL16 {                     /* k74 */
    DWORD CBID;
    DWORD pfnTarg32;
} GETEXISTINGSTDCBSL16;
typedef GETEXISTINGSTDCBSL16 UNALIGNED *PGETEXISTINGSTDCBSL16;

typedef struct _GETFLEXCBSL16 {                            /* k75 */
    DWORD pfnThunk;
    DWORD pfnTarg32;
} GETFLEXCBSL16;
typedef GETFLEXCBSL16 UNALIGNED *PGETFLEXCBSL16;

typedef struct _GETSTDCBLSEX16 {                           /* k76 */
    WORD  wOwner;
    DWORD CBID;
    DWORD pfnTarg16;
} GETSTDCBLSEX16;
typedef GETSTDCBLSEX16 UNALIGNED *PGETSTDCBLSEX16;

typedef struct _GETSTDCBSLEX16 {                           /* k77 */
    WORD  wOwner;
    DWORD CBID;
    DWORD pfnTarg32;
} GETSTDCBSLEX16;
typedef GETSTDCBSLEX16 UNALIGNED *PGETSTDCBSLEX16;

typedef struct _CALLBACK216 {                              /* k78 */
    WORD rgwArgs[1];
} CALLBACK216;
typedef CALLBACK216 UNALIGNED *PCALLBACK216;

typedef struct _CALLBACK416 {                              /* k79 */
    WORD rgwArgs[2];
} CALLBACK416;
typedef CALLBACK416 UNALIGNED *PCALLBACK416;

typedef struct _CALLBACK616 {                              /* k80 */
    WORD rgwArgs[3];
} CALLBACK616;
typedef CALLBACK616 UNALIGNED *PCALLBACK616;

typedef struct _CALLBACK816 {                              /* k81 */
    WORD rgwArgs[4];
} CALLBACK816;
typedef CALLBACK816 UNALIGNED *PCALLBACK816;

typedef struct _CALLBACK1016 {                             /* k82 */
    WORD rgwArgs[5];
} CALLBACK1016;
typedef CALLBACK1016 UNALIGNED *PCALLBACK1016;

typedef struct _CALLBACK1216 {                             /* k83 */
    WORD rgwArgs[6];
} CALLBACK1216;
typedef CALLBACK1216 UNALIGNED *PCALLBACK1216;

typedef struct _CALLBACK1416 {                             /* k84 */
    WORD rgwArgs[7];
} CALLBACK1416;
typedef CALLBACK1416 UNALIGNED *PCALLBACK1416;

typedef struct _CALLBACK1616 {                             /* k85 */
    WORD rgwArgs[8];
} CALLBACK1616;
typedef CALLBACK1616 UNALIGNED *PCALLBACK1616;

typedef struct _CALLBACK1816 {                             /* k86 */
    WORD rgwArgs[9];
} CALLBACK1816;
typedef CALLBACK1816 UNALIGNED *PCALLBACK1816;

typedef struct _CALLBACK2016 {                             /* k87 */
    WORD rgwArgs[10];
} CALLBACK2016;
typedef CALLBACK2016 UNALIGNED *PCALLBACK2016;

typedef struct _CALLBACK2216 {                             /* k88 */
    WORD rgwArgs[11];
} CALLBACK2216;
typedef CALLBACK2216 UNALIGNED *PCALLBACK2216;

typedef struct _CALLBACK2416 {                             /* k89 */
    WORD rgwArgs[12];
} CALLBACK2416;
typedef CALLBACK2416 UNALIGNED *PCALLBACK2416;

typedef struct _CALLBACK2616 {                             /* k90 */
    WORD rgwArgs[13];
} CALLBACK2616;
typedef CALLBACK2616 UNALIGNED *PCALLBACK2616;

typedef struct _CALLBACK2816 {                             /* k91 */
    WORD rgwArgs[14];
} CALLBACK2816;
typedef CALLBACK2816 UNALIGNED *PCALLBACK2816;

typedef struct _CALLBACK3016 {                             /* k92 */
    WORD rgwArgs[15];
} CALLBACK3016;
typedef CALLBACK3016 UNALIGNED *PCALLBACK3016;

typedef struct _CALLBACK3216 {                             /* k93 */
    WORD rgwArgs[16];
} CALLBACK3216;
typedef CALLBACK3216 UNALIGNED *PCALLBACK3216;

typedef struct _CALLBACK3416 {                             /* k94 */
    WORD rgwArgs[17];
} CALLBACK3416;
typedef CALLBACK3416 UNALIGNED *PCALLBACK3416;

typedef struct _CALLBACK3616 {                             /* k95 */
    WORD rgwArgs[18];
} CALLBACK3616;
typedef CALLBACK3616 UNALIGNED *PCALLBACK3616;

typedef struct _CALLBACK3816 {                             /* k96 */
    WORD rgwArgs[19];
} CALLBACK3816;
typedef CALLBACK3816 UNALIGNED *PCALLBACK3816;

typedef struct _CALLBACK4016 {                             /* k97 */
    WORD rgwArgs[20];
} CALLBACK4016;
typedef CALLBACK4016 UNALIGNED *PCALLBACK4016;

typedef struct _CALLBACK4216 {                             /* k98 */
    WORD rgwArgs[21];
} CALLBACK4216;
typedef CALLBACK4216 UNALIGNED *PCALLBACK4216;

typedef struct _CALLBACK4416 {                             /* k99 */
    WORD rgwArgs[22];
} CALLBACK4416;
typedef CALLBACK4416 UNALIGNED *PCALLBACK4416;

typedef struct _CALLBACK4616 {                             /* k100 */
    WORD rgwArgs[23];
} CALLBACK4616;
typedef CALLBACK4616 UNALIGNED *PCALLBACK4616;

typedef struct _CALLBACK4816 {                             /* k101 */
    WORD rgwArgs[24];
} CALLBACK4816;
typedef CALLBACK4816 UNALIGNED *PCALLBACK4816;

typedef struct _CALLBACK5016 {                             /* k102 */
    WORD rgwArgs[25];
} CALLBACK5016;
typedef CALLBACK5016 UNALIGNED *PCALLBACK5016;

typedef struct _CALLBACK5216 {                             /* k103 */
    WORD rgwArgs[26];
} CALLBACK5216;
typedef CALLBACK5216 UNALIGNED *PCALLBACK5216;

typedef struct _CALLBACK5416 {                             /* k104 */
    WORD rgwArgs[27];
} CALLBACK5416;
typedef CALLBACK5416 UNALIGNED *PCALLBACK5416;

typedef struct _CALLBACK5616 {                             /* k105 */
    WORD rgwArgs[28];
} CALLBACK5616;
typedef CALLBACK5616 UNALIGNED *PCALLBACK5616;

typedef struct _CALLBACK5816 {                             /* k106 */
    WORD rgwArgs[29];
} CALLBACK5816;
typedef CALLBACK5816 UNALIGNED *PCALLBACK5816;

typedef struct _CALLBACK6016 {                             /* k107 */
    WORD rgwArgs[30];
} CALLBACK6016;
typedef CALLBACK6016 UNALIGNED *PCALLBACK6016;

typedef struct _CALLBACK6216 {                             /* k108 */
    WORD rgwArgs[31];
} CALLBACK6216;
typedef CALLBACK6216 UNALIGNED *PCALLBACK6216;

typedef struct _CALLBACK6416 {                             /* k109 */
    WORD rgwArgs[32];
} CALLBACK6416;
typedef CALLBACK6416 UNALIGNED *PCALLBACK6416;

typedef struct _WOWFILEWRITE16 {                           /* k111 */
    DWORD lpSFT;
    DWORD lpPDB;
    DWORD  bufsize;
    DWORD lpBuf;
    WORD  fh;
} WOWFILEWRITE16;
typedef WOWFILEWRITE16 UNALIGNED *PWOWFILEWRITE16;

typedef struct _WOWGETNEXTVDMCOMMAND16 {                   /* k112 */
    VPVOID  lpWowInfo;
} WOWGETNEXTVDMCOMMAND16;
typedef WOWGETNEXTVDMCOMMAND16 UNALIGNED *PWOWGETNEXTVDMCOMMAND16;

typedef struct _WOWFILELOCK16 {                            /* k113 */
    DWORD lpSFT;
    DWORD lpPDB;
    DWORD cbRegionLength;
    DWORD cbRegionOffset;
    WORD  fh;
    WORD  ax;
} WOWFILELOCK16;
typedef WOWFILELOCK16 UNALIGNED *PWOWFILELOCK16;

typedef struct _WOWFREERESOURCE16 {                        /* k114 */
    HAND16 f1;
} WOWFREERESOURCE16;
typedef WOWFREERESOURCE16 UNALIGNED *PWOWFREERESOURCE16;

typedef struct _WOWOUTPUTDEBUGSTRING16 {                   /* k115 */
    VPSTR   vpString;
} WOWOUTPUTDEBUGSTRING16;
typedef WOWOUTPUTDEBUGSTRING16 UNALIGNED *PWOWOUTPUTDEBUGSTRING16;

typedef struct _WOWINITTASK16 {                            /* k116 */
    DWORD dwExpWinVer;
} WOWINITTASK16;
typedef WOWINITTASK16 UNALIGNED *PWOWINITTASK16;

typedef struct _WOWFILESETDATETIME16 {                     /* k118 */
    DWORD lpSFT;
    DWORD lpPDB;
    WORD  date;
    WORD  time;
    WORD  fh;
} WOWFILESETDATETIME16;
typedef WOWFILESETDATETIME16 UNALIGNED *PWOWFILESETDATETIME16;

typedef struct _WOWFILECREATE16 {                          /* k119 */
    DWORD lpSFT;
    DWORD lpPDB;
    WORD  pszPathOffset;
    WORD  pszPathSegment;
    WORD  wAttributes;
} WOWFILECREATE16;
typedef WOWFILECREATE16 UNALIGNED *PWOWFILECREATE16;

typedef struct _WOWDOSWOWINIT16 {                          /* k120 */
    VPVOID  lpDosWowData;
} WOWDOSWOWINIT16;
typedef WOWDOSWOWINIT16 UNALIGNED *PWOWDOSWOWINIT16;

typedef struct _WOWCHECKUSERGDI16 {                        /* k121 */
    WORD  pszPathOffset;
    WORD  pszPathSegment;
} WOWCHECKUSERGDI16;
typedef WOWCHECKUSERGDI16 UNALIGNED *PWOWCHECKUSERGDI16;

typedef struct _WOWPARTYBYNUMBER16 {                       /* k122 */
    VPSZ  psz;
    DWORD dw;
} WOWPARTYBYNUMBER16;
typedef WOWPARTYBYNUMBER16 UNALIGNED *PWOWPARTYBYNUMBER16;

typedef struct _GETSHORTPATHNAME16 {                       /* k123 */
    WORD  cchShortPath;
    VPSZ  pszShortPath;
    VPSZ  pszLongPath;
} GETSHORTPATHNAME16;
typedef GETSHORTPATHNAME16 UNALIGNED *PGETSHORTPATHNAME16;

typedef struct _FINDANDRELEASEDIB16 {                      /* k124 */
    WORD wFunId;
    HAND16 hdib;     /* handle which we are messing with */
} FINDANDRELEASEDIB16;
typedef FINDANDRELEASEDIB16 UNALIGNED *PFINDANDRELEASEDIB16;

typedef struct _WOWRESERVEHTASK16 {                        /* k125 */
    WORD  htask;
} WOWRESERVEHTASK16;
typedef WOWRESERVEHTASK16 UNALIGNED *PWOWRESERVEHTASK16;

typedef struct _WOWFILESETATTRIBUTES16 {                   /* k126 */
    WORD  pszPathOffset;
    WORD  pszPathSegment;
    WORD  wAttributes;
} WOWFILESETATTRIBUTES16;
typedef WOWFILESETATTRIBUTES16 UNALIGNED *PWOWFILESETATTRIBUTES16;

typedef struct _GETPRIVATEPROFILEINT16 {                   /* k127 */
    VPSTR f4;
    SHORT f3;
    VPSTR f2;
    VPSTR f1;
} GETPRIVATEPROFILEINT16;
typedef GETPRIVATEPROFILEINT16 UNALIGNED *PGETPRIVATEPROFILEINT16;

typedef struct _GETPRIVATEPROFILESTRING16 {                /* k128 */
    VPSTR f6;
    USHORT f5;
    VPSTR f4;
    VPSTR f3;
    VPSTR f2;
    VPSTR f1;
} GETPRIVATEPROFILESTRING16;
typedef GETPRIVATEPROFILESTRING16 UNALIGNED *PGETPRIVATEPROFILESTRING16;

typedef struct _WRITEPRIVATEPROFILESTRING16 {              /* k129 */
    VPSTR f4;
    VPSTR f3;
    VPSTR f2;
    VPSTR f1;
} WRITEPRIVATEPROFILESTRING16;
typedef WRITEPRIVATEPROFILESTRING16 UNALIGNED *PWRITEPRIVATEPROFILESTRING16;

typedef struct _WOWSETCURRENTDIRECTORY16 {                 /* k130 */
    DWORD lpCurDir;
} WOWSETCURRENTDIRECTORY16;
typedef WOWSETCURRENTDIRECTORY16 UNALIGNED *PWOWSETCURRENTDIRECTORY16;

typedef struct _WOWWAITFORMSGANDEVENT16 {                  /* k131 */
    HWND16 hwnd;
} WOWWAITFORMSGANDEVENT16;
typedef WOWWAITFORMSGANDEVENT16 UNALIGNED *PWOWWAITFORMSGANDEVENT16;

typedef struct _WOWMSGBOX16 {                              /* k132 */
    DWORD   dwOptionalStyle;
    VPSZ    pszTitle;
    VPSZ    pszMsg;
} WOWMSGBOX16;
typedef WOWMSGBOX16 UNALIGNED *PWOWMSGBOX16;

typedef struct _WOWDEVICEIOCTL16 {                         /* k135 */
    WORD  wCmd;
    WORD  wDriveNum;
} WOWDEVICEIOCTL16;
typedef WOWDEVICEIOCTL16 UNALIGNED *PWOWDEVICEIOCTL16;

typedef struct _GETDRIVETYPE16 {                           /* k136 */
    SHORT f1;
} GETDRIVETYPE16;
typedef GETDRIVETYPE16 UNALIGNED *PGETDRIVETYPE16;

typedef struct _WOWFILEGETDATETIME16 {                     /* k137 */
    DWORD lpSFT;
    DWORD lpPDB;
    WORD  fh;
} WOWFILEGETDATETIME16;
typedef WOWFILEGETDATETIME16 UNALIGNED *PWOWFILEGETDATETIME16;

typedef struct _SETAPPCOMPATFLAGS16 {           /* k139 */
    WORD  TDB;
} SETAPPCOMPATFLAGS16;
typedef SETAPPCOMPATFLAGS16 UNALIGNED *PSETAPPCOMPATFLAGS16;

typedef struct _WOWREGISTERSHELLWINDOWHANDLE16 {           /* k139 */
    HWND16 hwndFax;
    VPWORD lpwCmdShow;
    HWND16 hwndShell;
} WOWREGISTERSHELLWINDOWHANDLE16;
typedef WOWREGISTERSHELLWINDOWHANDLE16 UNALIGNED *PWOWREGISTERSHELLWINDOWHANDLE16;

typedef struct _FREELIBRARY32W16 {                         /* k140 */
    DWORD  hLibModule;
} FREELIBRARY32W16;
typedef FREELIBRARY32W16 UNALIGNED *PFREELIBRARY32W16;

typedef struct _GETPROCADDRESS32W16 {                      /* k141 */
    VPVOID lpszProc;
    DWORD  hModule;
} GETPROCADDRESS32W16;
typedef GETPROCADDRESS32W16 UNALIGNED *PGETPROCADDRESS32W16;

typedef struct _GETPROFILESECTIONNAMES16 {                 /* k142 */
    WORD  cbBuffer;
    VPSTR lpszBuffer;
} GETPROFILESECTIONNAMES16;
typedef GETPROFILESECTIONNAMES16 UNALIGNED *PGETPROFILESECTIONNAMES16;

typedef struct _GETPRIVATEPROFILESECTIONNAMES16 {          /* k143 */
    VPSTR lpszFile;
    WORD  cbBuffer;
    VPSTR lpszBuffer;
} GETPRIVATEPROFILESECTIONNAMES16;
typedef GETPRIVATEPROFILESECTIONNAMES16 UNALIGNED *PGETPRIVATEPROFILESECTIONNAMES16;

typedef struct _CREATEDIRECTORY16 {                        /* k144 */
    VPVOID lpSA;
    VPSTR  lpszName;
} CREATEDIRECTORY16;
typedef CREATEDIRECTORY16 UNALIGNED *PCREATEDIRECTORY16;

typedef struct _REMOVEDIRECTORY16 {                        /* k145 */
    VPSTR  lpszName;
} REMOVEDIRECTORY16;
typedef REMOVEDIRECTORY16 UNALIGNED *PREMOVEDIRECTORY16;

typedef struct _DELETEFILE16 {                             /* k146 */
    VPSTR  lpszName;
} DELETEFILE16;
typedef DELETEFILE16 UNALIGNED *PDELETEFILE16;

typedef struct _SETLASTERROR16 {                           /* k147 */
    DWORD dwError;
} SETLASTERROR16;
typedef SETLASTERROR16 UNALIGNED *PSETLASTERROR16;

#ifdef NULLSTRUCT
typedef struct _GETLASTERROR16 {                           /* k148 */
} GETLASTERROR16;
typedef GETLASTERROR16 UNALIGNED *PGETLASTERROR16;
#endif

typedef struct _GETVERSIONEX16 {                           /* k149 */
    VPVOID lpVersionInfo;
} GETVERSIONEX16;
typedef GETVERSIONEX16 UNALIGNED *PGETVERSIONEX16;

typedef struct _DIRECTEDYIELD16 {                          /* k150 */
    WORD    hTask16;
} DIRECTEDYIELD16;
typedef DIRECTEDYIELD16 UNALIGNED *PDIRECTEDYIELD16;

typedef struct _WOWFILEREAD16 {                            /* k151 */
    DWORD lpSFT;
    DWORD lpPDB;
    DWORD bufsize;
    DWORD lpBuf;
    WORD  fh;
} WOWFILEREAD16;
typedef WOWFILEREAD16 UNALIGNED *PWOWFILEREAD16;

typedef struct _WOWFILELSEEK16 {                           /* k152 */
    DWORD lpSFT;
    DWORD lpPDB;
    WORD  mode;
    DWORD fileOffset;
    WORD  fh;
} WOWFILELSEEK16;
typedef WOWFILELSEEK16 UNALIGNED *PWOWFILELSEEK16;

typedef struct _WOWKERNELTRACE16 {                         /* k153 */
    DWORD lpUserArgs;
    WORD  cParms;
    VPSTR lpRoutineName;
} WOWKERNELTRACE16;
typedef WOWKERNELTRACE16 UNALIGNED *PWOWKERNELTRACE16;

typedef struct _LOADLIBRARYEX32W16 {                       /* k154 */
    DWORD  dwFlags;
    DWORD  hFile;
    VPVOID lpszLibFile;
} LOADLIBRARYEX32W16;
typedef LOADLIBRARYEX32W16 UNALIGNED *PLOADLIBRARYEX32W16;

typedef struct _WOWQUERYPERFORMANCECOUNTER16 {             /* k155 */
    VPVOID lpPerformanceFrequency;
    VPVOID lpPerformanceCounter;
} WOWQUERYPERFORMANCECOUNTER16;
typedef WOWQUERYPERFORMANCECOUNTER16 UNALIGNED *PWOWQUERYPERFORMANCECOUNTER16;

typedef struct _WOWCURSORICONOP16 {                        /* k156 */
    WORD   wFuncId;
    WORD   h16;
} WOWCURSORICONOP16;
typedef WOWCURSORICONOP16 UNALIGNED *PWOWCURSORICONOP16;

typedef struct _WOWCLOSECOMPORT16 {                        /* k159 */
    WORD    wPortId;
} WOWCLOSECOMPORT16;
typedef WOWCLOSECOMPORT16 UNALIGNED *PWOWCLOSECOMPORT16;

typedef struct _LOCAL32INIT16 {                            /* k160 */
    DWORD dwFlags;
    DWORD dwcbMax;
    DWORD dwcbInit;
    WORD  wSel;
} LOCAL32INIT16;
typedef LOCAL32INIT16 UNALIGNED *PLOCAL32INIT16;

typedef struct _LOCAL32ALLOC16 {                           /* k161 */
    DWORD dwFlags;
    WORD  wType;
    DWORD dwcbRequest;
    WORD  wSel;
} LOCAL32ALLOC16;
typedef LOCAL32ALLOC16 UNALIGNED *PLOCAL32ALLOC16;

typedef struct _LOCAL32REALLOC16 {                         /* k162 */
    DWORD dwFlags;
    DWORD dwcbNew;
    WORD  wType;
    DWORD dwMem;
    DWORD dwLinHeader;
} LOCAL32REALLOC16;
typedef LOCAL32REALLOC16 UNALIGNED *PLOCAL32REALLOC16;

typedef struct _LOCAL32FREE16 {                            /* k163 */
    WORD  wType;
    DWORD dwMem;
    DWORD dwLinHeader;
} LOCAL32FREE16;
typedef LOCAL32FREE16 UNALIGNED *PLOCAL32FREE16;

typedef struct _LOCAL32TRANSLATE16 {                       /* k164 */
    WORD  wRetType;
    WORD  wMemType;
    DWORD dwMem;
    DWORD dwLinHeader;
} LOCAL32TRANSLATE16;
typedef LOCAL32TRANSLATE16 UNALIGNED *PLOCAL32TRANSLATE16;

typedef struct _LOCAL32SIZE16 {                            /* k165 */
    WORD  wType;
    DWORD dwMem;
    DWORD dwLinHeader;
} LOCAL32SIZE16;
typedef LOCAL32SIZE16 UNALIGNED *PLOCAL32SIZE16;

typedef struct _LOCAL32VALIDHANDLE16 {                     /* k166 */
    WORD  hMem;
    DWORD dwLinHeader;
} LOCAL32VALIDHANDLE16;
typedef LOCAL32VALIDHANDLE16 UNALIGNED *PLOCAL32VALIDHANDLE16;

typedef struct _REGENUMKEY3216 {                           /* k167 */
    DWORD  cchName;
    VPSTR  lpszName;
    DWORD  iSubKey;
    DWORD  hKey;
} REGENUMKEY3216;
typedef REGENUMKEY3216 UNALIGNED *PREGENUMKEY3216;

typedef struct _REGOPENKEY3216 {                           /* k168 */
    VPVOID  phkResult;
    VPSTR   lpszSubKey;
    DWORD   hKey;
} REGOPENKEY3216;
typedef REGOPENKEY3216 UNALIGNED *PREGOPENKEY3216;

typedef struct _REGCREATEKEY3216 {                         /* k169 */
    VPVOID  phkResult;
    VPSTR   lpszSubKey;
    DWORD   hKey;
} REGCREATEKEY3216;
typedef REGCREATEKEY3216 UNALIGNED *PREGCREATEKEY3216;

typedef struct _REGDELETEKEY3216 {                         /* k170 */
    VPSTR   lpszSubKey;
    DWORD   hKey;
} REGDELETEKEY3216;
typedef REGDELETEKEY3216 UNALIGNED *PREGDELETEKEY3216;

typedef struct _REGCLOSEKEY3216 {                          /* k171 */
    DWORD  hKey;
} REGCLOSEKEY3216;
typedef REGCLOSEKEY3216 UNALIGNED *PREGCLOSEKEY3216;

typedef struct _REGSETVALUE3216 {                          /* k172 */
    DWORD   cbValue;
    VPSTR   lpValue;
    DWORD   dwType;
    VPSTR   lpszSubKey;
    DWORD   hKey;
} REGSETVALUE3216;
typedef REGSETVALUE3216 UNALIGNED *PREGSETVALUE3216;

typedef struct _REGDELETEVALUE3216 {                       /* k173 */
    VPSTR   lpszValue;
    DWORD   hKey;
} REGDELETEVALUE3216;
typedef REGDELETEVALUE3216 UNALIGNED *PREGDELETEVALUE3216;

typedef struct _REGENUMVALUE3216 {                         /* k174 */
    VPVOID lpcbData;
    VPVOID lpbData;
    DWORD  lpdwType;
    DWORD  lpdwReserved;
    DWORD  lpcchValue;
    VPSTR  lpszValue;
    DWORD  iValue;
    DWORD  hKey;
} REGENUMVALUE3216;
typedef REGENUMVALUE3216 UNALIGNED *PREGENUMVALUE3216;

typedef struct _WOWLFNFRAMEPTR16 {                         /* k204 */
    VPVOID lpUserFrame;
} WOWLFNFRAMEPTR16;
typedef WOWLFNFRAMEPTR16 UNALIGNED *PWOWLFNFRAMEPTR16;

typedef struct _REGQUERYVALUE3216 {                        /* k175 */
    DWORD   cbValue;
    VPSTR   lpValue;
    VPSTR   lpszSubKey;
    DWORD   hKey;
} REGQUERYVALUE3216;
typedef REGQUERYVALUE3216 UNALIGNED *PREGQUERYVALUE3216;

typedef struct _REGQUERYVALUEEX3216 {                      /* k176 */
    DWORD   cbBuffer;
    VPSTR   lpBuffer;
    VPDWORD vpdwType;
    VPDWORD vpdwReserved;
    VPSTR   lpszValue;
    DWORD   hKey;
} REGQUERYVALUEEX3216;
typedef REGQUERYVALUEEX3216 UNALIGNED *PREGQUERYVALUEEX3216;

typedef struct _REGSETVALUEEX3216 {                        /* k177 */
    DWORD   cbBuffer;
    VPSTR   lpBuffer;
    DWORD   dwType;
    DWORD   dwReserved;
    VPSTR   lpszValue;
    DWORD   hKey;
} REGSETVALUEEX3216;
typedef REGSETVALUEEX3216 UNALIGNED *PREGSETVALUEEX3216;

typedef struct _REGFLUSHKEY3216 {                          /* k178 */
    DWORD   hKey;
} REGFLUSHKEY3216;
typedef REGFLUSHKEY3216 UNALIGNED *PREGFLUSHKEY3216;

typedef struct _COMPUTEOBJECTOWNER16 {                     /* k179 */
    WORD wSel;
} COMPUTEOBJECTOWNER16;
typedef COMPUTEOBJECTOWNER16 UNALIGNED *PCOMPUTEOBJECTOWNER16;

typedef struct _LOCAL32GETSEL16 {                          /* k180 */
    DWORD dwLinHeader;
} LOCAL32GETSEL16;
typedef LOCAL32GETSEL16 UNALIGNED *PLOCAL32GETSEL16;

typedef struct _MAPPROCESSHANDLE16 {                       /* k181 */
    DWORD dwHandle;
} MAPPROCESSHANDLE16;
typedef MAPPROCESSHANDLE16 UNALIGNED *PMAPPROCESSHANDLE16;

#ifdef NULLSTRUCT
typedef struct _INVALIDATENLSCACHE16 {                     /* k182 */
} INVALIDATENLSCACHE16;
typedef INVALIDATENLSCACHE16 UNALIGNED *PINVALIDATENLSCACHE16;
#endif

typedef struct _WOWDELFILE16 {                             /* k183 */
    VPSTR lpFile;
} WOWDELFILE16;
typedef WOWDELFILE16 UNALIGNED *PWOWDELFILE16;

#ifdef  RENAMEVIRTUAL

typedef struct _WOWVIRTUALALLOC16 {                        /* k184 */
    DWORD fdwProtect;
    DWORD fdwAllocationType;
    DWORD cbSize;
    DWORD lpvAddress;
} WOWVIRTUALALLOC16;
typedef WOWVIRTUALALLOC16 UNALIGNED *PWOWVIRTUALALLOC16;

typedef struct _WOWVIRTUALFREE16 {                         /* k185 */
    DWORD fdwFreeType;
    DWORD cbSize;
    DWORD lpvAddress;
} WOWVIRTUALFREE16;
typedef WOWVIRTUALFREE16 UNALIGNED *PWOWVIRTUALFREE16;

#else   // RENAMEVIRTUAL

typedef struct _VIRTUALALLOC16 {                        /* k184 */
    DWORD fdwProtect;
    DWORD fdwAllocationType;
    DWORD cbSize;
    DWORD lpvAddress;
} VIRTUALALLOC16;
typedef VIRTUALALLOC16 UNALIGNED *PVIRTUALALLOC16;

typedef struct _VIRTUALFREE16 {                         /* k185 */
    DWORD fdwFreeType;
    DWORD cbSize;
    DWORD lpvAddress;
} VIRTUALFREE16;
typedef VIRTUALFREE16 UNALIGNED *PVIRTUALFREE16;

#endif  // else renamevirtual

typedef struct _VIRTUALLOCK16 {                            /* k186 */
    DWORD cbSize;
    DWORD lpvAddress;
} VIRTUALLOCK16;
typedef VIRTUALLOCK16 UNALIGNED *PVIRTUALLOCK16;

typedef struct _VIRTUALUNLOCK16 {                          /* k187 */
    DWORD cbSize;
    DWORD lpvAddress;
} VIRTUALUNLOCK16;
typedef VIRTUALUNLOCK16 UNALIGNED *PVIRTUALUNLOCK16;

typedef struct _GLOBALMEMORYSTATUS16 {                     /* k188 */
    VPVOID lpmstMemStat;
} GLOBALMEMORYSTATUS16;
typedef GLOBALMEMORYSTATUS16 UNALIGNED *PGLOBALMEMORYSTATUS16;

typedef struct _WOWGETTABLEOFFSETS16 {                     /* k190 */
    VPVOID  vpThunkTableOffsets;
} WOWGETTABLEOFFSETS16;
typedef WOWGETTABLEOFFSETS16 UNALIGNED *PWOWGETTABLEOFFSETS16;

typedef struct _WOWKILLREMOTETASK16 {                      /* k191 */
    VPVOID  lpBuffer;
} WOWKILLREMOTETASK16;
typedef WOWKILLREMOTETASK16 UNALIGNED *PWOWKILLREMOTETASK16;

typedef struct _WOWNOTIFYWOW3216 {                         /* k192 */
    VPVOID  Int21Handler;
    VPVOID  lpnum_tasks;
    VPVOID  lpcurTDB;
    VPVOID  lpDebugWOW;
    VPVOID  lpLockTDB;
    VPVOID  lptopPDB;
    VPVOID  lpCurDirOwner;
} WOWNOTIFYWOW3216;
typedef WOWNOTIFYWOW3216 UNALIGNED *PWOWNOTIFYWOW3216;

typedef struct _WOWFILEOPEN16 {                            /* k193 */
    DWORD lpSFT;
    DWORD lpPDB;
    WORD  wAccess;
    WORD  pszPathOffset;
    WORD  pszPathSegment;
} WOWFILEOPEN16;
typedef WOWFILEOPEN16 UNALIGNED *PWOWFILEOPEN16;

typedef struct _WOWFILECLOSE16 {                           /* k194 */
    DWORD lpSFT;
    DWORD lpPDB;
    WORD  hFile;
} WOWFILECLOSE16;
typedef WOWFILECLOSE16 UNALIGNED *PWOWFILECLOSE16;

typedef struct _KSYSERRORBOX16 {                           /* k196 */
    SHORT sBtn3;
    SHORT sBtn2;
    SHORT sBtn1;
    VPSZ  vpszCaption;
    VPSZ  vpszText;
} KSYSERRORBOX16;
typedef KSYSERRORBOX16 UNALIGNED *PKSYSERRORBOX16;

typedef struct _WOWISKNOWNDLL16 {                          /* k197 */
    VPVOID lplpszKnownDLLPath;
    VPVOID lpszPath;
} WOWISKNOWNDLL16;

typedef struct _WOWDDEFREEHANDLE16 {                       /* k198 */
    WORD   h16;
} WOWDDEFREEHANDLE16;
typedef WOWDDEFREEHANDLE16 UNALIGNED *PWOWDDEFREEHANDLE16;

typedef struct _WOWFILEGETATTRIBUTES16 {                   /* k199 */
    WORD  pszPathOffset;
    WORD  pszPathSegment;
} WOWFILEGETATTRIBUTES16;
typedef WOWFILEGETATTRIBUTES16 UNALIGNED *PWOWFILEGETATTRIBUTES16;

typedef struct _WOWSETDEFAULTDRIVE16 {                     /* k200 */
    WORD  wDriveNum;
} WOWSETDEFAULTDRIVE16;
typedef WOWSETDEFAULTDRIVE16 UNALIGNED *PWOWSETDEFAULTDRIVE16;

typedef struct _WOWGETCURRENTDIRECTORY16 {                 /* k201 */
    DWORD lpCurDir;
    WORD  wDriveNum;
} WOWGETCURRENTDIRECTORY16;
typedef WOWGETCURRENTDIRECTORY16 UNALIGNED *PWOWGETCURRENTDIRECTORY16;

typedef struct _GETPRODUCTNAME16 {                         /* k202 */
    WORD  cbBuffer;
    VPSTR lpBuffer;
} GETPRODUCTNAME16;
typedef GETPRODUCTNAME16 UNALIGNED *PGETPRODUCTNAME16;

#ifdef NULLSTRUCT
typedef struct _ISSAFEMODE16 {                             /* k203 */
} ISSAFEMODE16;
typedef ISSAFEMODE16 UNALIGNED *PISSAFEMODE16;
#endif

typedef struct _WOWSHUTDOWNTIMER16 {                       /* k205 */
    WORD fEnable;
} WOWSHUTDOWNTIMER16;
typedef WOWSHUTDOWNTIMER16 UNALIGNED *PWOWSHUTDOWNTIMER16;

#ifdef NULLSTRUCT
typedef struct _WOWTRIMWORKINGSET16 {                   /* k206 */
} WOWTRIMWORKINGSET16;
typedef WOWTRIMWORKINGSET16 UNALIGNED *PWOWTRIMWORKINGSET16;
#endif

#ifdef FE_SB
#ifdef NULLSTRUCT
typedef struct _GETSYSTEMDEFAULTLANGID16 {                   /* k207 */
} GETSYSTEMDEFAULTLANGID16;
typedef GETSYSTEMDEFAULTLANGID16 UNALIGNED *PGETSYSTEMDEFAULTLANGID16;
#endif
#endif

typedef struct _TERMSRVGETWINDIR16 {                            /* k208 */
    WORD  usPathLen;
    WORD  pszPathOffset;
    WORD  pszPathSegment;
} TERMSRVGETWINDIR16;
typedef TERMSRVGETWINDIR16 UNALIGNED *PTERMSRVGETWINDIR16;

/*
typedef struct _WOWGETCURRENTDIRECTORYLONG16 {             // k209
    DWORD lpCurDir;
    WORD  wDriveNum;
    WORD  cchDir;
} WOWGETCURRENTDIRECTORYLONG16;
typedef WOWGETCURRENTDIRECTORYLONG16 UNALIGNED *PWOWGETCURRENTDIRECTORYLONG16;
*/

typedef struct _WOWPASSENVIRONMENT16 {                        /* k209 */
    WORD   pExe;    // pointer to exe header
    DWORD  pParmBlk; // parameter block
    WORD   cur_DOS_PDB; // dos pdb
//     WORD   Win_PDB;  // windows pdb not necessary for now
} WOWPASSENVIRONMENT16;
typedef WOWPASSENVIRONMENT16 UNALIGNED *PWOWPASSENVIRONMENT16;

typedef struct _VWIN32 {                    /* k211 */
    DWORD  dwEDI;
    DWORD  dwESI;
    DWORD  dwEBP;
    DWORD  dwESP;
    DWORD  dwEBX;
    DWORD  dwEDX;
    DWORD  dwECX;
    DWORD  dwEAX;
    WORD   wSS;
    WORD   wUnused;
} VWIN32;
typedef VWIN32 UNALIGNED *PVWIN32;

typedef struct _STACKINT2F {                  /* k213 */
    DWORD  dwEDI;
    DWORD  dwESI;
    DWORD  dwEBP;
    DWORD  dwESP;
    WORD   wBX;
    WORD   wHBX;
    DWORD  dwEDX;
    DWORD  dwECX;
    BYTE   bAL;
    BYTE   bAH;
    WORD   wHAX;
    WORD   wES;
    WORD   wDS;
    WORD   wIP;
    WORD   wCS;
    WORD   wFlags;
} STACKINT2F;
typedef STACKINT2F UNALIGNED *PSTACKINT2F;

/* XLATOFF */
#pragma pack()
/* XLATON */

