Hi Shawn! Thank you. This generally looks good. I can't find any official documentation on the set of functions and macros from wdm.h, but that's nothing new with Microsoft. I have some nitpicks thou. 1. As the atomic.h is no longer used; it could be deleted from the repo. 2. By removing #include "atomic.h", you should add #include . wintun.c is now directly using functions and macros declared in wdm.h. 3. Please add "Signed-of-by: Shawn Hoffman " line to your commit message. 4. You are right, there is no WireGuard for Windows 10 ARM64 yet, because there is no MinGW and Go support for Windows 10 ARM64 yet. If we can get arm-w64-mingw32-native, we could use set GOARCH=arm to compile 32-bit ARM wireguard.exe. 32-bit ARM runs at native speed on Windows 10 ARM64. The challenge I see is making SetupAPI work. I do know the SetupAPI does not work in x86 processes on AMD64 Windows. The System32 folder deflection makes it fail when attempting to create a device. I am expecting the same in ARM process on ARM64 Windows. I have the ARM/ARM64 support high on my TODO list. I do hope to find some time next week to play with your patch and WireGuard ARM. Regards, Simon -----Original Message----- From: WireGuard on behalf of Shawn Hoffman Date: Friday, 24. April 2020 at 22:52 To: "wireguard@lists.zx2c4.com" Cc: Shawn Hoffman Subject: [PATCH 0/1] wintun: use standard volatile semantics Make all archs are use the standardized concept of volatile. This patch will cause the most changes to arm64 codegen, and has yet to be tested on arm64 so is currently being submitted for comments. If someone would like to test on arm64 it would be appreciated. I do have an arm64 device, but it seems there's no existing arm64/windows wireguard binary package, so I can't just install such a thing and swap out the driver. Shawn Hoffman (1): replace atomic.h with provided APIs switch to /volatile:iso wintun.c | 76 +++++++++++++++++++++--------------------- wintun.vcxproj | 5 ++- wintun.vcxproj.filters | 3 -- 3 files changed, 40 insertions(+), 44 deletions(-) -- 2.20.1