windows-nt/Source/XPSP1/NT/base/mvdm/meinc/k16thk.h
2020-09-26 16:20:57 +08:00

120 lines
2.8 KiB
C

#ifndef _K16THK_H
#define _K16THK_H
#define MEOW_LOGGING 1
#define MEOW_FLAG_HIGH_THUNK 0x00000001
#define MEOW_FLAG_NO_SUSPEND 0x00000002
#define MEOW_FLAG_ME_CREATE_PROCESS 0x00000004
#define MEOW_FLAG_NO_READ_ONLY 0x00000008
#define MEOW_FLAG_FAKE_NO_DEBUG 0x00000010
#define MEOW_FLAG_LOGGING 0x00000020
#define MEOW_FLAG_ON 0x80000000
#define MEOWTHK_HANDLE 0
#define MEOWTHK_PASSTHRU 1
#ifdef MEOW_LOGGING
typedef struct _LOGGINGWRAPPER { /* LW */
CHAR szNop;
CHAR szShortJump[2];
CHAR szNop2;
CHAR *pszFunctionName;
PVOID pOriginalFunction;
CHAR szFileName[8];
} LOGGINGWRAPPER, *PLOGGINGWRAPPER;
#endif // def MEOW_LOGGING
//
// This number must be a power of 2.
//
#define MEOWTHK_STACK_MAX_PARAM 64
typedef struct _MEOWTHKSTACK { /* MTS */
DWORD dwGS;
DWORD dwFS;
DWORD dwES;
DWORD dwDS;
DWORD dwEDI;
DWORD dwESI;
DWORD dwEBP;
DWORD dwESP;
DWORD dwEBX;
DWORD dwEDX;
DWORD dwECX;
DWORD dwEAX;
DWORD dwEFlags;
DWORD dwFunction;
DWORD dwReturn;
} MEOWTHKSTACK;
typedef MEOWTHKSTACK *PMEOWTHKSTACK;
#define MEOWTHKSTACK_PARAMS(p) (PDWORD)(((PBYTE)p)+sizeof(MEOWTHKSTACK))
#ifdef WOW
#define MEOW_PLEH_SIGNATURE 0x574F454D
#define WOW_FLATCS_SELECTOR 0x1B
#define WOW_FLATDS_SELECTOR 0x23
#define WOW_TIB_SELECTOR 0x3B
#define ERROR_LOADING_NT_DLL 1
/* XLATOFF */
#pragma pack(2)
/* XLATON */
typedef struct _STACK32 { /* k212 */
DWORD dwGS;
DWORD dwFS;
DWORD dwES;
DWORD dwDS;
DWORD dwEDI;
DWORD dwESI;
DWORD dwEBP;
DWORD dwESP;
DWORD dwEBX;
DWORD dwEDX;
DWORD dwECX;
DWORD dwEAX;
DWORD dwEFlags;
DWORD dwMovedStack;
DWORD dwReturnOffset;
DWORD dwService;
DWORD dwParam0;
DWORD dwParam1;
DWORD dwParam2;
DWORD dwParam3;
DWORD dwParam4;
DWORD dwParam5;
DWORD dwParam6;
DWORD dwParam7;
DWORD dwParam8;
DWORD dwParam9;
DWORD dwParam10;
DWORD dwParam11;
} STACK32;
typedef STACK32 UNALIGNED *PSTACK32;
typedef PSTACK32 UNALIGNED *PPSTACK32;
typedef struct _LOADKERNEL32 { /* k213 */
WORD wPSPSegment;
WORD wPSPSelector;
WORD wDOS386ArenaHead;
WORD wDOS386PSPSel;
PVOID pVxDEntry;
PVOID pKrn32LoadBaseAddr;
} LOADKERNEL32;
typedef LOADKERNEL32 UNALIGNED *PLOADKERNEL32;
/* XLATOFF */
#pragma pack()
/* XLATON */
#endif // def WOW
#endif // ndef _K16THK_H