45#define SHIM_REASON_INIT 100
46#define SHIM_REASON_DEINIT 101
47#define SHIM_REASON_DLL_LOAD 102
48#define SHIM_REASON_DLL_UNLOAD 103
50#define SHIM_NOTIFY_ATTACH 1
51#define SHIM_NOTIFY_DETACH 2
52#define SHIM_NOTIFY_DLL_LOAD 3
53#define SHIM_NOTIFY_DLL_UNLOAD 4
67#if defined(IN_APPHELP)
69#define SHIMENG_MSG(fmt, ...) do { if (g_ShimEngDebugLevel) SeiDbgPrint(SEI_MSG, __FUNCTION__, fmt, ##__VA_ARGS__ ); } while (0)
70#define SHIMENG_FAIL(fmt, ...) do { if (g_ShimEngDebugLevel) SeiDbgPrint(SEI_FAIL, __FUNCTION__, fmt, ##__VA_ARGS__ ); } while (0)
71#define SHIMENG_WARN(fmt, ...) do { if (g_ShimEngDebugLevel) SeiDbgPrint(SEI_WARN, __FUNCTION__, fmt, ##__VA_ARGS__ ); } while (0)
72#define SHIMENG_INFO(fmt, ...) do { if (g_ShimEngDebugLevel) SeiDbgPrint(SEI_INFO, __FUNCTION__, fmt, ##__VA_ARGS__ ); } while (0)
75#define SHIM_MSG(fmt, ...) do { if (g_ShimEngDebugLevel) SeiDbgPrint(SEI_MSG, SHIM_OBJ_NAME(g_szModuleName), fmt, ##__VA_ARGS__ ); } while (0)
76#define SHIM_FAIL(fmt, ...) do { if (g_ShimEngDebugLevel) SeiDbgPrint(SEI_FAIL, SHIM_OBJ_NAME(g_szModuleName), fmt, ##__VA_ARGS__ ); } while (0)
77#define SHIM_WARN(fmt, ...) do { if (g_ShimEngDebugLevel) SeiDbgPrint(SEI_WARN, SHIM_OBJ_NAME(g_szModuleName), fmt, ##__VA_ARGS__ ); } while (0)
78#define SHIM_INFO(fmt, ...) do { if (g_ShimEngDebugLevel) SeiDbgPrint(SEI_INFO, SHIM_OBJ_NAME(g_szModuleName), fmt, ##__VA_ARGS__ ); } while (0)
93#define _SHMALLOC(x) __declspec(allocate(x))
94#elif defined(__GNUC__)
95#define _SHMALLOC(x) __attribute__ ((section (x) ))
97#error Your compiler is not supported.
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
VOID ShimLib_ShimFree(PVOID pData)
VOID ShimLib_Deinit(VOID)
struct tagHOOKAPI HOOKAPI
VOID ShimLib_Init(HINSTANCE hInstance)
PHOOKAPI WINAPI ShimLib_GetHookAPIs(LPCSTR szCommandLine, LPCWSTR wszShimName, PDWORD pdwHookCount)
PVOID ShimLib_ShimMalloc(SIZE_T dwSize)
PCSTR ShimLib_StringNDuplicateA(PCSTR szString, SIZE_T stringLength)
BOOL WINAPI ShimLib_NotifyShims(DWORD fdwReason, PVOID ptr)
struct tagHOOKAPI * PHOOKAPI
struct tagSHIMREG * PSHIMREG
HINSTANCE ShimLib_Instance(VOID)
BOOL WINAPIV SeiDbgPrint(SEI_LOG_LEVEL Level, PCSTR Function, PCSTR Format,...)
BOOL(WINAPI * _PVNotify)(DWORD, PVOID)
PCSTR ShimLib_StringDuplicateA(PCSTR szString)
BOOL ShimLib_StrAEqualsWNC(PCSTR szString, PCWSTR wszString)
PHOOKAPI(WINAPI * _PVGetHookAPIs)(DWORD, PCSTR, PDWORD)
ULONG g_ShimEngDebugLevel
struct tagSHIMREG SHIMREG
enum _SEI_LOG_LEVEL SEI_LOG_LEVEL
PVOID ReplacementFunction
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
_Reserved_ PVOID Reserved
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level