api: build with WDK

Makes builds more reproducable, as we can do our next release using the
EWDK, an all-in-one ISO of build tools from Microsoft.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld 2021-07-23 18:19:00 +02:00
parent af83574b34
commit 899e085a91
9 changed files with 33 additions and 4 deletions

View File

@ -6,18 +6,19 @@
#include <WinSock2.h> #include <WinSock2.h>
#include <Windows.h> #include <Windows.h>
#include <winternl.h> #include <winternl.h>
#define _NTDEF_ /* TODO: figure out how to include ntsecapi and winternal together without requiring this */ #include <wincrypt.h>
#include <cfgmgr32.h> #include <cfgmgr32.h>
#include <devguid.h> #include <devguid.h>
#include <ws2tcpip.h> #include <ws2tcpip.h>
#include <iphlpapi.h> #include <iphlpapi.h>
#include <ndisguid.h> #include <ndisguid.h>
#include <NTSecAPI.h>
#include <SetupAPI.h> #include <SetupAPI.h>
#include <Shlwapi.h> #include <Shlwapi.h>
#include <shellapi.h>
#include <wchar.h> #include <wchar.h>
#include <initguid.h> /* Keep these two at bottom in this order, so that we only generate extra GUIDs for devpkey. The other keys we'll get from uuid.lib like usual. */ #include <initguid.h> /* Keep these two at bottom in this order, so that we only generate extra GUIDs for devpkey. The other keys we'll get from uuid.lib like usual. */
#include <devpkey.h> #include <devpkey.h>
#include <devioctl.h>
#include "adapter.h" #include "adapter.h"
#include "entry.h" #include "entry.h"

View File

@ -39,15 +39,16 @@
<ProjectGuid>{897F02E3-3EAA-40AF-A6DC-17EB2376EDAF}</ProjectGuid> <ProjectGuid>{897F02E3-3EAA-40AF-A6DC-17EB2376EDAF}</ProjectGuid>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
<RootNamespace>api</RootNamespace> <RootNamespace>api</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion> <WindowsTargetPlatformVersion>$(LatestTargetPlatformVersion)</WindowsTargetPlatformVersion>
<ProjectName>api</ProjectName> <ProjectName>api</ProjectName>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration"> <PropertyGroup Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v142</PlatformToolset> <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset>
<SpectreMitigation>false</SpectreMitigation> <SpectreMitigation>false</SpectreMitigation>
<Driver_SpectreMitigation>false</Driver_SpectreMitigation>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
@ -55,6 +56,18 @@
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Platform)'=='Win32'" Label="Configuration">
<TargetVersion>Windows7</TargetVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Platform)'=='ARM'" Label="Configuration">
<TargetVersion>Windows8</TargetVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Platform)'=='x64'" Label="Configuration">
<TargetVersion>Windows7</TargetVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Platform)'=='ARM64'" Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
</ImportGroup> </ImportGroup>

View File

@ -17,6 +17,8 @@
#include <delayimp.h> #include <delayimp.h>
#pragma warning(pop) #pragma warning(pop)
#include <sddl.h> #include <sddl.h>
#include <winefs.h>
#include <stdlib.h>
HINSTANCE ResourceModule; HINSTANCE ResourceModule;
HANDLE ModuleHeap; HANDLE ModuleHeap;

View File

@ -8,6 +8,7 @@
#include <Windows.h> #include <Windows.h>
#include <winternl.h> #include <winternl.h>
#include <wchar.h> #include <wchar.h>
#include <stdlib.h>
static BOOL CALLBACK static BOOL CALLBACK
NopLogger(_In_ WINTUN_LOGGER_LEVEL Level, _In_z_ const WCHAR *LogLine) NopLogger(_In_ WINTUN_LOGGER_LEVEL Level, _In_z_ const WCHAR *LogLine)

View File

@ -10,7 +10,9 @@
#include <Windows.h> #include <Windows.h>
#include <winternl.h> #include <winternl.h>
#include <bcrypt.h> #include <bcrypt.h>
#include <winefs.h>
#include <wchar.h> #include <wchar.h>
#include <stdlib.h>
static HANDLE PrivateNamespace = NULL; static HANDLE PrivateNamespace = NULL;
static HANDLE BoundaryDescriptor = NULL; static HANDLE BoundaryDescriptor = NULL;

View File

@ -61,3 +61,9 @@ NtQueryKey(
_Out_bytecap_post_bytecount_(Length, *ResultLength) PVOID KeyInformation, _Out_bytecap_post_bytecount_(Length, *ResultLength) PVOID KeyInformation,
_In_ ULONG Length, _In_ ULONG Length,
_Out_ PULONG ResultLength); _Out_ PULONG ResultLength);
/* This is documented in NTSecAPI.h, which we can't include, due to header conflicts. It actually lives in advapi32.dll. */
#define RtlGenRandom SystemFunction036
BOOLEAN
NTAPI
RtlGenRandom(_Out_writes_bytes_all_(RandomBufferLength) PVOID RandomBuffer, _In_ ULONG RandomBufferLength);

View File

@ -8,6 +8,7 @@
#include "registry.h" #include "registry.h"
#include <Windows.h> #include <Windows.h>
#include <wchar.h> #include <wchar.h>
#include <stdlib.h>
#include <strsafe.h> #include <strsafe.h>
static _Return_type_success_(return != NULL) HKEY static _Return_type_success_(return != NULL) HKEY

View File

@ -4,6 +4,7 @@
*/ */
#include "entry.h" #include "entry.h"
#include <shellapi.h>
#if ACCEPT_WOW64 == 1 #if ACCEPT_WOW64 == 1

View File

@ -8,6 +8,8 @@
#include "logger.h" #include "logger.h"
#include "wintun.h" #include "wintun.h"
#include <Windows.h> #include <Windows.h>
#include <devioctl.h>
#include <stdlib.h>
#pragma warning(disable : 4200) /* nonstandard: zero-sized array in struct/union */ #pragma warning(disable : 4200) /* nonstandard: zero-sized array in struct/union */