diff --git a/reactos/dll/win32/kernel32/CMakeLists.txt b/reactos/dll/win32/kernel32/CMakeLists.txt index 35a3707dcb2..04982904dfa 100644 --- a/reactos/dll/win32/kernel32/CMakeLists.txt +++ b/reactos/dll/win32/kernel32/CMakeLists.txt @@ -99,7 +99,7 @@ add_library(kernel32 SHARED kernel32.rc ${CMAKE_CURRENT_BINARY_DIR}/kernel32.def) -set_module_type(kernel32 win32dll ENTRYPOINT DllMain 12) +set_module_type(kernel32 win32dll HOTPATCHABLE ENTRYPOINT DllMain 12) ############################################# ## HACK FOR MSVC COMPILATION WITH win32dll ## set_subsystem(kernel32 console) diff --git a/reactos/dll/win32/kernel32/client/loader.c b/reactos/dll/win32/kernel32/client/loader.c index d2dfce9a623..4f33ff775cc 100644 --- a/reactos/dll/win32/kernel32/client/loader.c +++ b/reactos/dll/win32/kernel32/client/loader.c @@ -107,6 +107,7 @@ DisableThreadLibraryCalls( */ HINSTANCE WINAPI +DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName) { LPSTR PathBuffer; @@ -152,6 +153,7 @@ LoadLibraryA(LPCSTR lpLibFileName) */ HINSTANCE WINAPI +DECLSPEC_HOTPATCH LoadLibraryExA(LPCSTR lpLibFileName, HANDLE hFile, DWORD dwFlags) @@ -171,6 +173,7 @@ LoadLibraryExA(LPCSTR lpLibFileName, */ HINSTANCE WINAPI +DECLSPEC_HOTPATCH LoadLibraryW(LPCWSTR lpLibFileName) { /* Call Ex version of the API */ @@ -279,6 +282,7 @@ BasepLoadLibraryAsDatafile(PWSTR Path, LPCWSTR Name, HMODULE *hModule) */ HINSTANCE WINAPI +DECLSPEC_HOTPATCH LoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags) @@ -447,7 +451,10 @@ GetProcAddress(HMODULE hModule, LPCSTR lpProcName) /* * @implemented */ -BOOL WINAPI FreeLibrary(HINSTANCE hLibModule) +BOOL +WINAPI +DECLSPEC_HOTPATCH +FreeLibrary(HINSTANCE hLibModule) { NTSTATUS Status; PIMAGE_NT_HEADERS NtHeaders; @@ -806,6 +813,7 @@ quickie: */ HMODULE WINAPI +DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName) { PUNICODE_STRING ModuleNameW; diff --git a/reactos/dll/win32/kernel32/client/proc.c b/reactos/dll/win32/kernel32/client/proc.c index 6c44e99069a..3725e27e273 100644 --- a/reactos/dll/win32/kernel32/client/proc.c +++ b/reactos/dll/win32/kernel32/client/proc.c @@ -4605,6 +4605,7 @@ Quickie: */ BOOL WINAPI +DECLSPEC_HOTPATCH CreateProcessW(LPCWSTR lpApplicationName, LPWSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, @@ -4773,6 +4774,7 @@ CreateProcessInternalA(HANDLE hToken, */ BOOL WINAPI +DECLSPEC_HOTPATCH CreateProcessA(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, diff --git a/reactos/dll/win32/kernel32/client/synch.c b/reactos/dll/win32/kernel32/client/synch.c index 629e23adeca..4c51449e491 100644 --- a/reactos/dll/win32/kernel32/client/synch.c +++ b/reactos/dll/win32/kernel32/client/synch.c @@ -426,6 +426,7 @@ CancelWaitableTimer(IN HANDLE hTimer) */ HANDLE WINAPI +DECLSPEC_HOTPATCH CreateSemaphoreA(IN LPSECURITY_ATTRIBUTES lpSemaphoreAttributes OPTIONAL, IN LONG lInitialCount, IN LONG lMaximumCount, @@ -439,6 +440,7 @@ CreateSemaphoreA(IN LPSECURITY_ATTRIBUTES lpSemaphoreAttributes OPTIONAL, */ HANDLE WINAPI +DECLSPEC_HOTPATCH CreateSemaphoreW(IN LPSECURITY_ATTRIBUTES lpSemaphoreAttributes OPTIONAL, IN LONG lInitialCount, IN LONG lMaximumCount, @@ -456,6 +458,7 @@ CreateSemaphoreW(IN LPSECURITY_ATTRIBUTES lpSemaphoreAttributes OPTIONAL, */ HANDLE WINAPI +DECLSPEC_HOTPATCH OpenSemaphoreA(IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCSTR lpName) @@ -468,6 +471,7 @@ OpenSemaphoreA(IN DWORD dwDesiredAccess, */ HANDLE WINAPI +DECLSPEC_HOTPATCH OpenSemaphoreW(IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCWSTR lpName) @@ -480,6 +484,7 @@ OpenSemaphoreW(IN DWORD dwDesiredAccess, */ BOOL WINAPI +DECLSPEC_HOTPATCH ReleaseSemaphore(IN HANDLE hSemaphore, IN LONG lReleaseCount, IN LPLONG lpPreviousCount) @@ -500,6 +505,7 @@ ReleaseSemaphore(IN HANDLE hSemaphore, */ HANDLE WINAPI +DECLSPEC_HOTPATCH CreateMutexA(IN LPSECURITY_ATTRIBUTES lpMutexAttributes OPTIONAL, IN BOOL bInitialOwner, IN LPCSTR lpName OPTIONAL) @@ -512,6 +518,7 @@ CreateMutexA(IN LPSECURITY_ATTRIBUTES lpMutexAttributes OPTIONAL, */ HANDLE WINAPI +DECLSPEC_HOTPATCH CreateMutexW(IN LPSECURITY_ATTRIBUTES lpMutexAttributes OPTIONAL, IN BOOL bInitialOwner, IN LPCWSTR lpName OPTIONAL) @@ -527,6 +534,7 @@ CreateMutexW(IN LPSECURITY_ATTRIBUTES lpMutexAttributes OPTIONAL, */ HANDLE WINAPI +DECLSPEC_HOTPATCH OpenMutexA(IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCSTR lpName) @@ -539,6 +547,7 @@ OpenMutexA(IN DWORD dwDesiredAccess, */ HANDLE WINAPI +DECLSPEC_HOTPATCH OpenMutexW(IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCWSTR lpName) @@ -551,6 +560,7 @@ OpenMutexW(IN DWORD dwDesiredAccess, */ BOOL WINAPI +DECLSPEC_HOTPATCH ReleaseMutex(IN HANDLE hMutex) { NTSTATUS Status; @@ -569,6 +579,7 @@ ReleaseMutex(IN HANDLE hMutex) */ HANDLE WINAPI +DECLSPEC_HOTPATCH CreateEventA(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, @@ -582,6 +593,7 @@ CreateEventA(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, */ HANDLE WINAPI +DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, @@ -599,6 +611,7 @@ CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, */ HANDLE WINAPI +DECLSPEC_HOTPATCH OpenEventA(IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCSTR lpName) @@ -611,6 +624,7 @@ OpenEventA(IN DWORD dwDesiredAccess, */ HANDLE WINAPI +DECLSPEC_HOTPATCH OpenEventW(IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCWSTR lpName) @@ -623,6 +637,7 @@ OpenEventW(IN DWORD dwDesiredAccess, */ BOOL WINAPI +DECLSPEC_HOTPATCH PulseEvent(IN HANDLE hEvent) { NTSTATUS Status; @@ -641,6 +656,7 @@ PulseEvent(IN HANDLE hEvent) */ BOOL WINAPI +DECLSPEC_HOTPATCH ResetEvent(IN HANDLE hEvent) { NTSTATUS Status; @@ -659,6 +675,7 @@ ResetEvent(IN HANDLE hEvent) */ BOOL WINAPI +DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent) { NTSTATUS Status; @@ -715,6 +732,7 @@ InitializeCriticalSectionAndSpinCount(OUT LPCRITICAL_SECTION lpCriticalSection, */ VOID WINAPI +DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds) { /* Call the new API */ diff --git a/reactos/dll/win32/kernel32/client/thread.c b/reactos/dll/win32/kernel32/client/thread.c index e89eefd753c..dd610533947 100644 --- a/reactos/dll/win32/kernel32/client/thread.c +++ b/reactos/dll/win32/kernel32/client/thread.c @@ -131,6 +131,7 @@ BaseDispatchApc(IN PAPCFUNC ApcRoutine, */ HANDLE WINAPI +DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress,