diff options
author | 2021-10-11 23:21:31 -0600 | |
---|---|---|
committer | 2021-10-12 18:54:20 +0000 | |
commit | 544fdaaf8fb970d9657a59c1fc4c4569de4f2d3e (patch) | |
tree | 715e49e1f325bf7795face50ff84936b05ab86e2 /api/main.c | |
parent | proj: remove SDV and DVL support (diff) | |
download | wintun-544fdaa.tar.xz wintun-544fdaa.zip |
api: rewrite based on SwDevice
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'api/main.c')
-rw-r--r-- | api/main.c | 19 |
1 files changed, 16 insertions, 3 deletions
@@ -21,7 +21,13 @@ HANDLE ModuleHeap; SECURITY_ATTRIBUTES SecurityAttributes = { .nLength = sizeof(SECURITY_ATTRIBUTES) }; BOOL IsLocalSystem; USHORT NativeMachine = IMAGE_FILE_PROCESS; + +#if NTDDI_VERSION == NTDDI_WIN7 +BOOL IsWindows7; +#endif +#if NTDDI_VERSION < NTDDI_WIN10 BOOL IsWindows10; +#endif static FARPROC WINAPI DelayedLoadLibraryHook(unsigned dliNotify, PDelayLoadInfo pdli) @@ -70,11 +76,17 @@ cleanupProcessToken: return Ret; } -static VOID EnvInit(VOID) +static void EnvInit(VOID) { - DWORD MajorVersion; - RtlGetNtVersionNumbers(&MajorVersion, NULL, NULL); + DWORD MajorVersion, MinorVersion; + RtlGetNtVersionNumbers(&MajorVersion, &MinorVersion, NULL); + +#if NTDDI_VERSION == NTDDI_WIN7 + IsWindows7 = MajorVersion == 6 && MinorVersion == 1; +#endif +#if NTDDI_VERSION < NTDDI_WIN10 IsWindows10 = MajorVersion >= 10; +#endif #ifdef MAYBE_WOW64 typedef BOOL(WINAPI * IsWow64Process2_t)( @@ -110,6 +122,7 @@ DllMain(_In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ LPVOID lpvReserved) } EnvInit(); NamespaceInit(); + AdapterCleanupLegacyDevices(); break; case DLL_PROCESS_DETACH: |