From f588454d261b07dac3c643b3ea24f8b54741765d Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Sat, 13 Oct 2018 23:58:02 +0300 Subject: [PATCH] Internal: register WaitOnAddress family functions (WinAPI) --- Utilities/dynamic_library.h | 2 +- Utilities/sync.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Utilities/dynamic_library.h b/Utilities/dynamic_library.h index 579513dec2..1bcd6655c4 100644 --- a/Utilities/dynamic_library.h +++ b/Utilities/dynamic_library.h @@ -89,4 +89,4 @@ namespace utils }; } -#define DYNAMIC_IMPORT(lib, name, ...) static utils::dynamic_import<__VA_ARGS__> name(lib, #name); +#define DYNAMIC_IMPORT(lib, name, ...) inline utils::dynamic_import<__VA_ARGS__> name(lib, #name); diff --git a/Utilities/sync.h b/Utilities/sync.h index a7d466dbd4..995e3eddbf 100644 --- a/Utilities/sync.h +++ b/Utilities/sync.h @@ -28,6 +28,9 @@ DYNAMIC_IMPORT("ntdll.dll", NtWaitForKeyedEvent, NTSTATUS(HANDLE Handle, PVOID Key, BOOLEAN Alertable, PLARGE_INTEGER Timeout)); DYNAMIC_IMPORT("ntdll.dll", NtReleaseKeyedEvent, NTSTATUS(HANDLE Handle, PVOID Key, BOOLEAN Alertable, PLARGE_INTEGER Timeout)); DYNAMIC_IMPORT("ntdll.dll", NtDelayExecution, NTSTATUS(BOOLEAN Alertable, PLARGE_INTEGER DelayInterval)); +inline utils::dynamic_import OptWaitOnAddress("kernel32.dll", "WaitOnAddress"); +inline utils::dynamic_import OptWakeByAddressSingle("kernel32.dll", "WakeByAddressSingle"); +inline utils::dynamic_import OptWakeByAddressAll("kernel32.dll", "WakeByAddressAll"); #endif #ifndef __linux__