19#if (WINVER > _WIN32_WINNT_WS03)
63 StringCchCopyA(NewString, stringLengthIncludingNullTerm, szString);
79 szString++; wszString++;
86#if defined(_M_IA64) || defined(_M_AMD64)
87#define _ATTRIBUTES read
89#define _ATTRIBUTES read
93#pragma section(".shm",long,read)
94#pragma section(".shm$AAA",long,read)
95#pragma section(".shm$ZZZ",long,read)
99#pragma comment(linker, "/merge:.shm=.rdata")
115 for (; ps < &_shim_end; ps++)
123#if (WINVER > _WIN32_WINNT_WS03)
124 shim->bInitCalled =
FALSE;
147#if (WINVER > _WIN32_WINNT_WS03)
153#if (WINVER > _WIN32_WINNT_WS03)
155 pUsed->bInitCalled =
TRUE;
173 RtlInitEmptyUnicodeString(&DebugValue,
Buffer,
sizeof(
Buffer));
201 const char* LevelStr;
static DWORD const fdwReason
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
#define NT_SUCCESS(StatCode)
BOOL WINAPI SHIM_OBJ_NAME() Notify(DWORD fdwReason, PVOID ptr)
#define HeapFree(x, y, z)
HANDLE WINAPI HeapCreate(DWORD flOptions, SIZE_T dwInitialSize, SIZE_T dwMaximumSize)
BOOL WINAPI HeapDestroy(HANDLE hHeap)
int WINAPI lstrlenA(LPCSTR lpString)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
NTSYSAPI NTSTATUS NTAPI RtlQueryEnvironmentVariable_U(_In_opt_ PWSTR Environment, _In_ PCUNICODE_STRING Name, _Out_ PUNICODE_STRING Value)
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToInteger(PUNICODE_STRING String, ULONG Base, PULONG Value)
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define STRSAFE_NULL_ON_FAILURE
static PSLIST_HEADER g_UsedShims
static HINSTANCE g_ShimLib_hInstance
void ShimLib_Init(HINSTANCE hInstance)
PVOID ShimLib_ShimMalloc(SIZE_T dwSize)
struct UsedShim * pUsedShim
BOOL WINAPI ShimLib_NotifyShims(DWORD fdwReason, PVOID ptr)
HINSTANCE ShimLib_Instance(VOID)
BOOL WINAPIV SeiDbgPrint(SEI_LOG_LEVEL Level, PCSTR Function, PCSTR Format,...)
void ShimLib_Deinit(VOID)
PCSTR ShimLib_StringDuplicateA(PCSTR szString)
BOOL ShimLib_StrAEqualsWNC(PCSTR szString, PCWSTR wszString)
VOID SeiInitDebugSupport(VOID)
ULONG g_ShimEngDebugLevel
PHOOKAPI WINAPI ShimLib_GetHookAPIs(IN LPCSTR szCommandLine, IN LPCWSTR wszShimName, OUT PDWORD pdwHookCount)
void ShimLib_ShimFree(PVOID pData)
PCSTR ShimLib_StringNDuplicateA(PCSTR szString, SIZE_T stringLengthIncludingNullTerm)
static HANDLE g_ShimLib_Heap
BOOL(WINAPI * _PVNotify)(DWORD, PVOID)
enum _SEI_LOG_LEVEL SEI_LOG_LEVEL
#define SHIM_NOTIFY_ATTACH
STRSAFEAPI StringCchVPrintfExA(STRSAFE_LPSTR pszDest, size_t cchDest, STRSAFE_LPSTR *ppszDestEnd, size_t *pcchRemaining, STRSAFE_DWORD dwFlags, STRSAFE_LPCSTR pszFormat, va_list argList)
STRSAFEAPI StringCchCopyA(STRSAFE_LPSTR pszDest, size_t cchDest, STRSAFE_LPCSTR pszSrc)
STRSAFEAPI StringCchPrintfExA(STRSAFE_LPSTR pszDest, size_t cchDest, STRSAFE_LPSTR *ppszDestEnd, size_t *pcchRemaining, STRSAFE_DWORD dwFlags, STRSAFE_LPCSTR pszFormat,...)
base of all file and directory entries
#define SLIST_ENTRY(type)
#define RTL_CONSTANT_STRING(s)
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
#define CONTAINING_RECORD(address, type, field)
NTSYSAPI PSLIST_ENTRY NTAPI RtlInterlockedPushEntrySList(_Inout_ PSLIST_HEADER ListHead, _Inout_ __drv_aliasesMem PSLIST_ENTRY ListEntry)
NTSYSAPI VOID NTAPI RtlInitializeSListHead(_Out_ PSLIST_HEADER ListHead)
_Must_inspect_result_ NTSYSAPI PSLIST_ENTRY NTAPI RtlFirstEntrySList(_In_ const SLIST_HEADER *ListHead)
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
union _SLIST_HEADER * PSLIST_HEADER