Split driver setup to EV signed (<Win10) and WHQL signed (>=Win10)

Signed-off-by: Simon Rozman <simon@rozman.si>
This commit is contained in:
Simon Rozman 2019-04-26 11:26:59 +02:00
parent 6c3084c53c
commit 5094737f8c
5 changed files with 46 additions and 4 deletions

4
.gitignore vendored
View File

@ -18,3 +18,7 @@
# Driver Verification Log
/wintun.DVL.XML
# WHQL Driver
/whql/x86
/whql/amd64

View File

@ -53,7 +53,7 @@ msbuild wintun.proj [/t:<target>]
- `DVL`: Runs the `SDV`, and creates a Driver Verification Log, only for AMD64 release configurations.
- `MSM`: Builds Microsoft Installer Merge Modules in `<output folder>\wintun-<platform>-<version>.msm`.
- `MSM`: Builds Microsoft Installer Merge Modules in `<output folder>\wintun-<platform>-<version>.msm`. Requires WHLK signed driver (See: [Building Microsoft Installer Merge Modules]).
The driver output folders are:
@ -66,6 +66,14 @@ AMD64 Release | `amd64\Release\wintun`
ARM64 Debug | `arm64\Debug\wintun`
ARM64 Release | `arm64\Release\wintun`
### Building Microsoft Installer Merge Modules
1. `msbuild wintun.proj /t:DVL;Build`
2. Perform Windows Hardware Lab Kit tests; Submit submission package to Microsoft; Get WHQL signed driver.
3. Copy WHQL signed driver to `whql\x86` and `whql\amd64` subfolders.
4. `msbuild wintun.proj /t:MSM`
5. MSM files are placed in `dist` subfolder.
## Usage

View File

@ -63,10 +63,10 @@
<!--
MSM Building
-->
<Target Name="MSM-x86" DependsOnTargets="Build" Outputs="$(DistributionDir)wintun-x86-$(WintunVersionStr).msm">
<Target Name="MSM-x86" Outputs="$(DistributionDir)wintun-x86-$(WintunVersionStr).msm">
<MSBuild Projects="wintun.wixproj" Targets="Build" Properties="Configuration=Release;Platform=x86"/>
</Target>
<Target Name="MSM-amd64" DependsOnTargets="Build" Outputs="$(DistributionDir)wintun-amd64-$(WintunVersionStr).msm">
<Target Name="MSM-amd64" Outputs="$(DistributionDir)wintun-amd64-$(WintunVersionStr).msm">
<MSBuild Projects="wintun.wixproj" Targets="Build" Properties="Configuration=Release;Platform=x64"/>
</Target>
</Project>

View File

@ -27,7 +27,8 @@
<DefineConstants>WINTUN_VERSION=$(WintunVersion);$(DefineConstants)</DefineConstants>
<SuppressSpecificWarnings>1006;1086;$(SuppressSpecificWarnings)</SuppressSpecificWarnings>
<LinkerSuppressSpecificWarnings>1103;$(LinkerSuppressSpecificWarnings)</LinkerSuppressSpecificWarnings>
<LinkerAdditionalOptions>-b output_dir="$(IntermediateOutputPath.TrimEnd('\'))" $(LinkerAdditionalOptions)</LinkerAdditionalOptions>
<SuppressIces>ICE30;$(SuppressIces)</SuppressIces>
<LinkerAdditionalOptions>-b output_dir="$(IntermediateOutputPath.TrimEnd('\'))" -b whwl_dir="whql\$(WintunPlatform)" $(LinkerAdditionalOptions)</LinkerAdditionalOptions>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<SuppressPdbOutput>true</SuppressPdbOutput>

View File

@ -25,9 +25,26 @@
<Binary Id="wintun.cer" SourceFile="!(bindpath.output_dir)wintun.cer"/>
<Property Id="WINDOWS10_VER_MAJ">
<RegistrySearch Id="Windows10VersionMaj" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion" Name="CurrentMajorVersionNumber" Type="raw"/>
</Property>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="WintunFolder">
<Component Id="wintun.cat.whql" Guid="2f17bc6d-0006-47c4-8ba3-f055d1852558">
<Condition><![CDATA[WINDOWS10_VER_MAJ]]></Condition>
<File
Id="wintun.cat.whql"
Name="wintun.cat"
Source="!(bindpath.whwl_dir)wintun.cat"
DefaultVersion="$(var.WINTUN_VERSION)"
DefaultLanguage="0"/>
<diffx:Driver
AddRemovePrograms="no"
PlugAndPlayPrompt="no"/>
</Component>
<Component Id="wintun.cat" Guid="41fbe711-a1af-4b83-8b5d-fc1b112969c1">
<Condition><![CDATA[NOT WINDOWS10_VER_MAJ]]></Condition>
<File
Id="wintun.cat"
Name="wintun.cat"
@ -45,6 +62,7 @@
AddRemovePrograms="no"
PlugAndPlayPrompt="no"/>
</Component>
<Component Id="wintun.inf" Guid="c58122b3-c7ba-4207-b68d-a236e371f9ed">
<File
Id="wintun.inf"
@ -53,7 +71,18 @@
DefaultVersion="$(var.WINTUN_VERSION)"
DefaultLanguage="0"/>
</Component>
<Component Id="wintun.sys.whql" Guid="039baa6d-b16b-4dc2-8b86-8bb500f78de0">
<Condition><![CDATA[WINDOWS10_VER_MAJ]]></Condition>
<File
Id="wintun.sys.whql"
Name="wintun.sys"
Source="!(bindpath.whwl_dir)wintun.sys"
DefaultVersion="$(var.WINTUN_VERSION)"
DefaultLanguage="0"/>
</Component>
<Component Id="wintun.sys" Guid="d0fde4a4-d228-4803-b57e-76bd8b16cf42">
<Condition><![CDATA[NOT WINDOWS10_VER_MAJ]]></Condition>
<File
Id="wintun.sys"
Name="wintun.sys"