The compiler informs me that GetLastError() return a DWORD, so use %lx to print it.
Use the Windows API CryptProtectMemory() to encrypt the data that we want to secure, and use CryptUnprotectMemory() to de-crypt the secured data that we want to access, since mmap() and mlock() are not available on Windows.
It is not universally available on non-POSIX systems.
We can re-use the code inside gcr, as we know that it's working, tested, and license compatible.