8 #define WIN32_NO_STATUS 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;
BOOL WINAPI SHIM_OBJ_NAME() Notify(DWORD fdwReason, PVOID ptr)
HINSTANCE ShimLib_Instance(VOID)
_Must_inspect_result_ NTSYSAPI PSLIST_ENTRY NTAPI RtlFirstEntrySList(_In_ const SLIST_HEADER *ListHead)
_In_ ULONG _In_ ULONG _In_ ULONG Length
_In_ CDROM_SCAN_FOR_SPECIAL_INFO _In_ PCDROM_SCAN_FOR_SPECIAL_HANDLER Function
STRSAFEAPI StringCchVPrintfExA(STRSAFE_LPSTR pszDest, size_t cchDest, STRSAFE_LPSTR *ppszDestEnd, size_t *pcchRemaining, STRSAFE_DWORD dwFlags, STRSAFE_LPCSTR pszFormat, va_list argList)
IN BOOLEAN OUT PSTR Buffer
HANDLE WINAPI HeapCreate(DWORD flOptions, SIZE_T dwInitialSize, SIZE_T dwMaximumSize)
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
STRSAFEAPI StringCchPrintfExA(STRSAFE_LPSTR pszDest, size_t cchDest, STRSAFE_LPSTR *ppszDestEnd, size_t *pcchRemaining, STRSAFE_DWORD dwFlags, STRSAFE_LPCSTR pszFormat,...)
struct UsedShim * pUsedShim
BOOL ShimLib_StrAEqualsWNC(PCSTR szString, PCWSTR wszString)
PHOOKAPI WINAPI ShimLib_GetHookAPIs(IN LPCSTR szCommandLine, IN LPCWSTR wszShimName, OUT PDWORD pdwHookCount)
void ShimLib_Init(HINSTANCE hInstance)
BOOL WINAPI HeapDestroy(HANDLE hHeap)
PCSTR ShimLib_StringDuplicateA(PCSTR szString)
BOOL WINAPIV SeiDbgPrint(SEI_LOG_LEVEL Level, PCSTR Function, PCSTR Format,...)
void ShimLib_Deinit(VOID)
NTSYSAPI NTSTATUS NTAPI RtlQueryEnvironmentVariable_U(_In_opt_ PWSTR Environment, _In_ PCUNICODE_STRING Name, _Out_ PUNICODE_STRING Value)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
PCSTR ShimLib_StringNDuplicateA(PCSTR szString, SIZE_T stringLengthIncludingNullTerm)
#define SHIM_NOTIFY_ATTACH
ULONG g_ShimEngDebugLevel
NTSYSAPI PSLIST_ENTRY NTAPI RtlInterlockedPushEntrySList(_Inout_ PSLIST_HEADER ListHead, _Inout_ __drv_aliasesMem PSLIST_ENTRY ListEntry)
BOOL(WINAPI * _PVNotify)(DWORD, PVOID)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
#define NT_SUCCESS(StatCode)
union _SLIST_HEADER * PSLIST_HEADER
PVOID ShimLib_ShimMalloc(SIZE_T dwSize)
enum _SEI_LOG_LEVEL SEI_LOG_LEVEL
NTSYSAPI VOID NTAPI RtlInitializeSListHead(_Out_ PSLIST_HEADER ListHead)
STRSAFEAPI StringCchCopyA(STRSAFE_LPSTR pszDest, size_t cchDest, STRSAFE_LPCSTR pszSrc)
int WINAPI lstrlenA(LPCSTR lpString)
static PSLIST_HEADER g_UsedShims
static HANDLE g_ShimLib_Heap
VOID SeiInitDebugSupport(VOID)
#define SLIST_ENTRY(type)
#define STRSAFE_NULL_ON_FAILURE
static HINSTANCE g_ShimLib_hInstance
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToInteger(PUNICODE_STRING String, ULONG Base, PULONG Value)
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
BOOL WINAPI ShimLib_NotifyShims(DWORD fdwReason, PVOID ptr)
#define HeapFree(x, y, z)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
base of all file and directory entries
#define RTL_CONSTANT_STRING(s)
void ShimLib_ShimFree(PVOID pData)