aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/wincompat/init.c
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2021-10-06 17:18:40 -0600
committerJason A. Donenfeld <Jason@zx2c4.com>2021-10-06 17:18:40 -0600
commit1ee37b8e4833a25efe6f1fc0d5bdcb476148f4ba (patch)
tree663f3bb6728ae24853650b04f671b84dba006ddf /src/wincompat/init.c
parentversion: bump (diff)
downloadwireguard-tools-1ee37b8e4833a25efe6f1fc0d5bdcb476148f4ba.tar.xz
wireguard-tools-1ee37b8e4833a25efe6f1fc0d5bdcb476148f4ba.zip
ipc: use more clever PnP enumerator
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to '')
-rw-r--r--src/wincompat/init.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/wincompat/init.c b/src/wincompat/init.c
index f744f69..f92c0a9 100644
--- a/src/wincompat/init.c
+++ b/src/wincompat/init.c
@@ -10,16 +10,22 @@
#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x4
#endif
+extern void NTAPI RtlGetNtVersionNumbers(DWORD *major, DWORD *minor, DWORD *build);
+bool is_win7 = false;
+
__attribute__((constructor)) static void init(void)
{
char *colormode;
- DWORD console_mode;
+ DWORD console_mode, major, minor;
HANDLE stdout_handle;
WSADATA wsaData;
if (!SetDllDirectoryA("") || !SetDefaultDllDirectories(LOAD_LIBRARY_SEARCH_SYSTEM32))
abort();
+ RtlGetNtVersionNumbers(&major, &minor, NULL);
+ is_win7 = (major == 6 && minor <= 1) || major < 6;
+
WSAStartup(MAKEWORD(2, 2), &wsaData);
stdout_handle = GetStdHandle(STD_OUTPUT_HANDLE); // We don't close this.