diff --git a/Development/Building-the-drivers-using-Windows-11-26H1-EWDK.md b/Development/Building-the-drivers-using-Windows-11-26H1-EWDK.md new file mode 100644 index 0000000..8c08257 --- /dev/null +++ b/Development/Building-the-drivers-using-Windows-11-26H1-EWDK.md @@ -0,0 +1,117 @@ +# Steps required for building + +## For Windows 10, Windows Server 2022 +1. Download Windows 11 21H2 EWDK ISO (https://go.microsoft.com/fwlink/?linkid=2202360) and mount it (let's say to `E:\`). You can download the ISO to the host and connect it to the VM as CD-ROM. + +## For Windows 11, Windows Server 2025 +2. Download Windows 11 26H1 EWDK ISO (https://go.microsoft.com/fwlink/?LinkId=2362109) and mount it (let's say to `F:\`). You can download the ISO to the host and connect it to the VM as CD-ROM. + +## General steps + +3. Download and install WinFSP (https://github.com/billziss-gh/winfsp/releases/tag/v2.1) with "Core", "Developer" and "Kernel Developer" features enabled. +4. Download and install CPDK 8.0 (https://www.microsoft.com/en-us/download/details.aspx?id=30688). +5. Download and install .NET Framework version 4.8 (https://dotnet.microsoft.com/download/dotnet-framework/thank-you/net48-web-installer). Windows Server 2022 and Windows 11 don't need it. +6. Change directory to `kvm-guest-drivers-windows`. +7. Run `build_AllNoSdv.bat [Win10|Win11]` depending on your Windows version. + - Choose `Win10` for Windows 10, Windows Server 2022 (x86, x64, ARM64) + - Choose `Win11` for Windows 11, Windows Server 2025 (x86 (several UMD only), x64, ARM64) +8. Run `build\signAll.bat` to sign drivers. Loading of test-signed drivers must be enabled on your system (https://docs.microsoft.com/en-us/windows-hardware/drivers/install/the-testsigning-boot-configuration-option). +9. Find drivers/services in folders named `Install` inside driver folders. + +# Additional steps for driver development + +1. Copy Windows 11, version 26H1 EWDK to a local directory + * Download Windows 11, version 26H1 EWDK (released May, 2026) with Visual Studio Buildtools 18.3.0 ISO [https://go.microsoft.com/fwlink/?LinkId=2362109](https://go.microsoft.com/fwlink/?LinkId=2362109) and mount it (let's say to `E:\`). + * copy entire content to local directory (c:\ewdk11_26h1): `mkdir c:\ewdk11_26h1 && xcopy /e e:\* c:\ewdk11_26h1` + * unmount and delete Windows 11 26H1 EWDK ISO file + * Set ALL USER environment variable `setx EWDK11_26H1_DIR c:\ewdk11_26h1 /M` + +1. Copy Windows 11, version 21H2 EWDK to a local directory + * Download Windows 11 21H2 EWDK with Visual Studio Build Tools 16.11.10 ISO [https://go.microsoft.com/fwlink/?linkid=2202360](https://go.microsoft.com/fwlink/?linkid=2202360) and mount it (let's say to `E:\`). + * copy entire content to local directory (c:\ewdk11): `mkdir c:\ewdk11 && xcopy /e e:\* c:\ewdk11` + * unmount and delete Windows 11 21H2 EWDK ISO file + * Set ALL USER environment variable `setx EWDK11_DIR c:\ewdk11 /M` + +1. Copy DVL from EWDK for Windows 10, version 1903 to a local directory + * Download EWDK for Windows 10, version 1903 with Visual Studio Build Tools 16.0 ISO [https://go.microsoft.com/fwlink/p/?linkid=2086136](https://go.microsoft.com/fwlink/p/?linkid=2086136) and mount it (let's say to `E:\`). + * mkdir C:\dvl1903 + * copy all files (`dvl.exe`, `Microsoft.StaticToolsLogo.ObjectModel.dll`) from `E:\Program Files\Windows Kits\10\Tools\dvl` to `C:\dvl1903` + * unmount and delete Windows 10 version 1903 EWDK ISO file + +1. Download and install WinFSP 2025 [https://github.com/winfsp/winfsp/releases/tag/v2.1](https://github.com/winfsp/winfsp/releases/tag/v2.1) with the "Core", "Developer" and "Kernel Developer" features enabled. +1. Download and install CPDK 8.0 [https://www.microsoft.com/en-us/download/details.aspx?id=30688](https://www.microsoft.com/en-us/download/details.aspx?id=30688). +1. Download and install .NET Framework version 4.8 [https://dotnet.microsoft.com/download/dotnet-framework/thank-you/net48-web-installer](https://dotnet.microsoft.com/download/dotnet-framework/thank-you/net48-web-installer). Windows Server 2022 and Windows 11 don't need it. + +1. [CodeQL Windows Setup](https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/static-tools-and-codeql#codeql-windows-setup) for Windows 11 25H2 + * **IF YOU HAVE EXISTING CODEQL INSTALLED REMOVE IT** + * **REMOVE `C:\codeql-home` and `C:\Users\\.codeql\`** + * mkdir C:\codeql-home + * Navigate to the GitHub [CodeQL Download Page](https://github.com/github/codeql-cli-binaries/releases/tag/v2.24.1) + * Download version **2.24.1** of the zip file if you are certifying a driver for the Windows Hardware Compatibility Program in 2026. For example for 64-bit Windows "codeql-win64.zip". + * Unzip the CodeQL folder in the zip file to the `C:\codeql-home\codeql\` directory. + * Confirm that the CodeQL command works by displaying the help. `C:\codeql-home\codeql\>codeql --help` + +1. [Clone the repository to access the driver-specific queries](https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/static-tools-and-codeql#clone-the-repository-to-access-the-driver-specific-queries) + * Navigate to the [Microsoft CodeQL GitHub repository](https://github.com/microsoft/Windows-Driver-Developer-Supplemental-Tools). + * [Clone](https://github.com/git-guides/git-clone) the repository to download all CodeQL queries and [query suites](https://codeql.github.com/docs/codeql-cli/creating-codeql-query-suites/) with driver-specific queries. + ```batch + cd C:\codeql-home + C:\codeql-home\>git clone https://github.com/microsoft/Windows-Driver-Developer-Supplemental-Tools.git --recursive -b WHCP_25H2 + ``` + + Branch depending on the OS you are certifying for, per the following table: + + | Release | Branch to use | + |---------------------------------|-----------------| + | Windows Server 2022 | WHCP_21H2 | + | Windows 11 | WHCP_21H2 | + | Windows 11, version 22H2 | WHCP_22H2 | + | Windows 11, version 23H2 | WHCP_23H2 | + | Windows 11, version 24H2 | WHCP_24H2 | + | Windows Server 2025 | WHCP_25H2 | + | Windows 11, version 25H2 | WHCP_25H2 | + | Windows 11, version 26H1 | WHCP_26H1 | + + +1. [Download the CodeQL query packages](https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/static-tools-and-codeql#download-the-codeql-query-packages) + + **Downloading query packages and running CodeQL analysis MUST be done from the same user.** + CodeQL will install the downloaded query packs to the default directory that contains the current user name: + ```batch + C:\Users\\.codeql\packages\\\ + ``` + If you need to run CodeQL analysis from different users, then every user **MUST** download query packages. + + Run the following commands to download the CodeQL query packages: + ```batch + cd C:\codeql-home\codeql + codeql pack download microsoft/windows-drivers@1.8.2 + codeql pack download microsoft/cpp-queries@0.0.4 + codeql pack install c:\codeql-home\Windows-Driver-Developer-Supplemental-Tools\src\ + ``` + +# Notes on the build batch + +Legacy build steps: + - [Building the drivers using Windows 11 24H2 EWDK](https://virtio-win.github.io/Development/Building-the-drivers-using-Windows-11-24H2-EWDK) + - [Building the drivers using Windows 11 22H2 EWDK](https://virtio-win.github.io/Development/Building-the-drivers-using-Windows-11-22H2-EWDK) + - [Building the drivers using Windows 11 21H2 EWDK](https://virtio-win.github.io/Development/Building-the-drivers-using-Windows-11-21H2-EWDK) + - [Building the drivers using Visual Studio 2017](https://virtio-win.github.io/Development/Building-the-drivers-using-Visual-Studio-2017) + - [Building the drivers using EWDK 1903-2004](https://virtio-win.github.io/Development/Building-the-drivers-using-EWDK-1903-2004) + - [Building the drivers using Enterprise WDK (EWDK) 1809](https://virtio-win.github.io/Development/Building-the-drivers-using-Enterprise-WDK-(EWDK)-1809) + +The building of drivers for the following operating systems is not supported by the batch build procedure: + * Windows XP / Server 2003 + * Windows Vista / Server 2008 + * Windows 7 / Server 2008R2 + * Windows 8 / Server 2012 + * Windows 8.1 / Server 2012R2 + +Note: latest tag that supports the building of drivers for legacy operating systems: + * https://github.com/virtio-win/kvm-guest-drivers-windows/releases/tag/08.03.2021-last-buldable-point-XP + * https://github.com/virtio-win/kvm-guest-drivers-windows/releases/tag/02.12.2021-last-buildable-point-Win7 + * https://github.com/virtio-win/kvm-guest-drivers-windows/releases/tag/01.11.2023-last-buildable-point-Win8 + +Run `buildAll.bat` for the complete build including SDV. Note that an SDV build takes a long time. + +Set VIRTIO_WIN_SDV_2022=1 to build DVL for system device drivers. diff --git a/Development/index.md b/Development/index.md index 038e7d5..1503710 100644 --- a/Development/index.md +++ b/Development/index.md @@ -16,6 +16,8 @@ * [https://virtio-win.github.io/Development/Building-the-drivers-using-Windows-11-24H2-EWDK.md](https://virtio-win.github.io/Development/Building-the-drivers-using-Windows-11-24H2-EWDK) +* [https://virtio-win.github.io/Development/Building-the-drivers-using-Windows-11-26H1-EWDK.md](https://virtio-win.github.io/Development/Building-the-drivers-using-Windows-11-26H1-EWDK) + * [https://virtio-win.github.io/Development/Driver-signing-and-certification.md](https://virtio-win.github.io/Development/Driver-signing-and-certification) * [https://virtio-win.github.io/Development/git-and-cr\lf.md](https://virtio-win.github.io/Development/git-and-cr%5Clf)