├── .gitignore ├── AutoUnattend-tpl.xml ├── LICENSE.txt ├── README.md ├── from-tpl.sh ├── makeiso.sh └── wsim ├── Firstrun └── setup.ps1 └── Out-of-Box Drivers └── virtio ├── netkvm.cat ├── netkvm.inf ├── netkvm.sys ├── vioscsi.cat ├── vioscsi.inf ├── vioscsi.sys ├── viostor.cat ├── viostor.inf └── viostor.sys /.gitignore: -------------------------------------------------------------------------------- 1 | .* 2 | AutoUnattend.xml 3 | -------------------------------------------------------------------------------- /AutoUnattend-tpl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 1 57 | 58 | 12286 59 | Primary 60 | 61 | 62 | 63 | 64 | true 65 | false 66 | NTFS 67 | 68 | C 69 | 1 70 | 1 71 | 72 | 73 | 0 74 | true 75 | 76 | OnError 77 | 78 | 79 | 80 | 81 | 0 82 | 1 83 | 84 | OnError 85 | 86 | 87 | /IMAGE/NAME 88 | 89 | Windows 7 HOMEBASIC 90 | 91 | Windows 7 HOMEPREMIUM 92 | 93 | Windows 7 PROFESSIONAL 94 | 95 | Windows 7 ULTIMATE 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | YGFVB-QTFXQ-3H233-PTWTJ-YRYRV 105 | 106 | RHPQ2-RMFJH-74XYM-BH4JX-XM76F 107 | 108 | HYF8J-CVRMY-CM74G-RPHKF-PW487 109 | 110 | D4F6K-QK3RD-TMVMJ-BBMRX-3MBMV 111 | 112 | OnError 113 | 114 | true 115 | 116 | 117 | 0 118 | 119 | true 120 | 121 | 122 | 123 | en-US 124 | 125 | en-US 126 | en-US 127 | en-US 128 | nl-NL 129 | 130 | 131 | 132 | 133 | %configsetroot%\Out-of-Box Drivers\virtio 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 3 142 | Other 143 | true 144 | true 145 | 146 | 147 | 148 | 149 | User 150 | Administrators 151 | 152 | 153 | UABhAHMAcwB3AG8AcgBkAA== 154 | false</PlainText> 155 | </Password> 156 | </LocalAccount> 157 | </LocalAccounts> 158 | </UserAccounts> 159 | <FirstLogonCommands> 160 | <!-- Microsoft-Windows-Deployment runs too early, so use this --> 161 | <SynchronousCommand wcm:action="add"> 162 | <Order>1</Order> 163 | <CommandLine>%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass %SystemRoot%\ConfigSetRoot\Firstrun\setup.ps1</CommandLine> 164 | <Description>Run post-installation scripts</Description> 165 | </SynchronousCommand> 166 | <SynchronousCommand wcm:action="add"> 167 | <Order>2</Order> 168 | <CommandLine>cmd /c rd /s /q %SystemRoot%\ConfigSetRoot</CommandLine> 169 | <Description>Remove post-installation scripts</Description> 170 | </SynchronousCommand> 171 | </FirstLogonCommands> 172 | <Display> 173 | <ColorDepth>32</ColorDepth> 174 | <HorizontalResolution>1280</HorizontalResolution> 175 | <VerticalResolution>800</VerticalResolution> 176 | </Display> 177 | </component> 178 | <component name="Microsoft-Windows-WinRE-RecoveryAgent" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 179 | <UninstallWindowsRE>true</UninstallWindowsRE> 180 | </component> 181 | </settings> 182 | <settings pass="specialize"> 183 | <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 184 | <Display> 185 | <ColorDepth>32</ColorDepth> 186 | <HorizontalResolution>1280</HorizontalResolution> 187 | <VerticalResolution>800</VerticalResolution> 188 | </Display> 189 | <ComputerName>QEMU</ComputerName> 190 | <DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet> 191 | <TimeZone>W. Europe Standard Time</TimeZone> 192 | <ShowWindowsLive>false</ShowWindowsLive> 193 | </component> 194 | <component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 195 | <SkipAutoActivation>true</SkipAutoActivation> 196 | </component> 197 | <component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 198 | <DisableFirstRunWizard>true</DisableFirstRunWizard> 199 | <DisableOOBAccelerators>true</DisableOOBAccelerators> 200 | <Home_Page>http://10.0.2.2:8888/</Home_Page> 201 | <SuggestedSitesEnabled>false</SuggestedSitesEnabled> 202 | <DisableAccelerators>true</DisableAccelerators> 203 | </component> 204 | <component name="Microsoft-Windows-SystemRestore-Main" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 205 | <DisableSR>1</DisableSR> 206 | </component> 207 | </settings> 208 | <!-- Edition: HomeBasic --> 209 | <cpi:offlineImage cpi:source="wim:d:/sources/install.wim#Windows 7 HOMEBASIC" xmlns:cpi="urn:schemas-microsoft-com:cpi" /> 210 | <!-- Edition: HomePremium --> 211 | <cpi:offlineImage cpi:source="wim:d:/sources/install.wim#Windows 7 HOMEPREMIUM" xmlns:cpi="urn:schemas-microsoft-com:cpi" /> 212 | <!-- Edition: Professional --> 213 | <cpi:offlineImage cpi:source="wim:d:/sources/install.wim#Windows 7 PROFESSIONAL" xmlns:cpi="urn:schemas-microsoft-com:cpi" /> 214 | <!-- Edition: Ultimate --> 215 | <cpi:offlineImage cpi:source="wim:d:/sources/install.wim#Windows 7 ULTIMATE" xmlns:cpi="urn:schemas-microsoft-com:cpi" /> 216 | <!-- End --> 217 | </unattend> 218 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 Peter Wu <peter@lekensteyn.nl> 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 14 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 15 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 16 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 17 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 18 | OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 19 | OR OTHER DEALINGS IN THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Windows Bootstrap 2 | This repository contains scripts and tools to automate installation and 3 | configuration of a Windows 7 machine for use in QEMU. The scripts are intended 4 | to run under a Linux system and will output an ISO image containing an 5 | `AutoUnattend.xml` file which will answer Setup questions. 6 | 7 | **Note: the generated iso will wipe your disk without questions!** 8 | 9 | The scripts are written with a 64-bit iso, but can be adopted for 32-bit 10 | installations if wanted. 11 | 12 | ## Requirements 13 | mkisofs is needed by makeiso.sh to create a iso file (part of cdrkit, package 14 | genisomage on Ubuntu). 15 | 16 | A Windows 7 iso is (obviously) needed to start the installation. Tested with: 17 | 18 | Windows 7 Ultimate x64 English 19 | http://msft.digitalrivercontent.net/win/X17-59465.iso 20 | size 3320903680 bytes 21 | md5 c9f7ecb768acb82daacf5030e14b271e 22 | sha1 36ae90defbad9d9539e649b193ae573b77a71c83 23 | 24 | Tested with QEMU 2.0.0 on Ubuntu 14.04 LTS, QEMU 2.1 on Arch Linux. 25 | 26 | ## Usage 27 | Example shell script: 28 | 29 | winiso=X17-59465.iso 30 | diskimg=win7.qcow2 31 | automateiso=bootstrap.iso 32 | 33 | # Create the bootstrap image 34 | # Second argument can be basic, premium, pro or ultimate (see from-tpl.sh) 35 | ./makeiso.sh "$automateiso" basic 36 | 37 | # Create QEMU disk image 38 | qemu-img create -f qcow2 "$diskimg" 12G 39 | 40 | # Start the installation 41 | qemu-system-x86_64 \ 42 | -machine pc,accel=kvm -m 4G -smp threads=2 -vga std \ 43 | -usb -usbdevice tablet \ 44 | -drive if=none,aio=native,discard=unmap,file="$diskimg",id=vd0 \ 45 | -device virtio-scsi-pci -device scsi-disk,drive=vd0 \ 46 | -drive media=cdrom,aio=native,file="$winiso" \ 47 | -drive media=cdrom,aio=native,file="$automateiso" \ 48 | -net user,id=user0 -net nic,model=virtio,id=vnet0 49 | 50 | For reference, installation on an i7-3770 with all three files in a 18GiB tmpfs 51 | took about 4m30s to 5m following the above commands. The disk space utilization 52 | as measured using virt-df is somehow the same for all editions (Home Basic, Home 53 | Premium, Professional and Ultimate) and are about 7.90 GiB. This includes the 54 | pagefile, once rebooted about 6.87-7.00 GiB will be in use. 55 | 56 | Do not forget to install updates which will take a lot more time and disk space. 57 | 58 | ## Configuration details 59 | Many Windows features have been disabled, see 60 | [AutoUnattended-tpl.xml](AutoUnattended-tpl.xml) for details. Overview of 61 | settings: 62 | 63 | - Disk size: 12 GiB (page file disabled). 64 | - Additional drivers: virtio (netkvm, vioscsi, viostor). 65 | - Default user: User, default password: Password. 66 | - Locale: en-US (mostly, using userLocale nl-NL for Euros). 67 | - Computer name: QEMU 68 | - Resolution: 1280x800 (color depth: 32). 69 | - Timezone: UTC+1 (Europe/Amsterdam) 70 | - Homepage: http://10.0.2.2:8888/ (10.0.2.2 is the host IP address when QEMU 71 | user networking is in use). 72 | 73 | On post-installation, `wsim\Firstrun\setup.ps1` gets executed which: 74 | 75 | - Show hidden and system files, unhide file extensions. 76 | - Display "Computer" icon on desktop. 77 | - Disable page files and hibernation. 78 | - If Windows is not already activated, execute the `slactivate` program at 79 | `wsim\Firstrun\slactivate` (with an extension such as .cmd, .exe, etc.). If 80 | that file exists and runs a zero status code, then the system will reboot to 81 | complete the activation. 82 | 83 | ## Known issues 84 | The bootstrap image for the Basic edition shows an error after the first reboot 85 | ("Completing installation") which makes the installation not quite unattended. 86 | 87 | ## Third-party software 88 | The virtio drivers have been retrieved from 89 | http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/ 90 | 91 | ## Copyright 92 | Windows is a trademark blabla Microsoft blabla registered US blabla bla. 93 | 94 | The Windows virtio drivers are GPLd, see 95 | http://www.linux-kvm.org/page/WindowsGuestDrivers for details. 96 | 97 | The scripts and configuration files are provided under the terms in the MIT 98 | license (see LICENSE.txt for details). 99 | -------------------------------------------------------------------------------- /from-tpl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Generates an AutoUnattend.xml file from AutoUnattend-tpl.xml 3 | # Supported markers (anchored at the begin of a line) in the file are: 4 | # - <!-- Edition: HomeBasic|HomePremium|Professional|Ultimate ... 5 | # The following lines are only applicable to the mentioned edition. 6 | # - <!-- End ... 7 | # From now on, show all lines. 8 | 9 | edition=$(echo "$1" | tr '[:upper:]' '[:lower:]') 10 | thisdir=$(dirname "$0") 11 | output=${2:-$thisdir/wsim/AutoUnattend.xml} 12 | 13 | # Select edition with some aliases. 14 | case ${edition} in 15 | homebasic|basic) 16 | edition=HomeBasic ;; 17 | homepremium|premium) 18 | edition=HomePremium ;; 19 | professional|pro) 20 | edition=Professional ;; 21 | ultimate) 22 | edition=Ultimate ;; 23 | *) 24 | cat <<USAGE 25 | Usage: $0 {HomeBasic | HomePremium | Professional | Ultimate} [AutoUnattend.xml] 26 | 27 | The default output file is wsim/AutoUnattend.xml, use '-' to write to stdout. 28 | USAGE 29 | exit 1 30 | ;; 31 | esac 32 | 33 | # Write to stdout when requested 34 | case $output in 35 | -) 36 | output=/dev/stdout ;; 37 | *) 38 | echo "Writing edition $edition to $output" ;; 39 | esac 40 | 41 | awk -vedition=$edition ' 42 | BEGIN { 43 | show_line = 1; 44 | } 45 | /^<!-- Edition: / { 46 | show_line = 0; 47 | n = split($3, applicable_editions, "|"); 48 | for (i = 1; i <= n; i++) { 49 | if (applicable_editions[i] == edition) { 50 | show_line = 1; 51 | } 52 | } 53 | } 54 | /^<!-- End / { 55 | show_line = 1; 56 | } 57 | # Show lines other than the marker when requested 58 | show_line && ! /<!-- (Edition:|End) /; 59 | ' "$thisdir/AutoUnattend-tpl.xml" > "$output" 60 | # vim: set sw=4 et ts=4: 61 | -------------------------------------------------------------------------------- /makeiso.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Makes an iso suitable for pairing with a Windows installation iso 3 | set -e 4 | 5 | thisdir=$(dirname "$0") 6 | output=$1 7 | edition=$2 8 | 9 | case $output in 10 | -) output=/dev/stdout ;; 11 | '') 12 | echo "Usage: $0 output.iso [edition]" 13 | echo "edition is optional and is passed to from-tpl.sh" 14 | exit 1 15 | ;; 16 | esac 17 | 18 | [ -z "$edition" ] || "$thisdir/from-tpl.sh" "$edition" 19 | 20 | # Make iso, ignoring hidden dotfiles, allow long file names with Joliet 21 | # extensions, using Rock ridge extensions (what for?) 22 | mkisofs -m '.*' -J -r "$thisdir/wsim" > "$output" 23 | 24 | # vim: set sw=4 et ts=4: 25 | -------------------------------------------------------------------------------- /wsim/Firstrun/setup.ps1: -------------------------------------------------------------------------------- 1 | 2 | $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent 3 | $needsReboot = $False 4 | 5 | function Set-RegProperty($key, $name, $value, $type="dword") { 6 | # Forcefully create a property, assuming that $key already exists 7 | New-ItemProperty "$key" "$name" -PropertyType $type -Value "$value" -Force 8 | } 9 | 10 | # Disable useless scheduled tasks (find those with schtasks /query) 11 | $tasknames = @( 12 | "Microsoft\Windows\Customer Experience Improvement Program\Consolidator", 13 | "Microsoft\Windows\Customer Experience Improvement Program\KernelCeipTask", 14 | "Microsoft\Windows\Customer Experience Improvement Program\UsbCeip", 15 | "Microsoft\Windows\Defrag\ScheduledDefrag", 16 | "Microsoft\Windows\Diagnosis\Scheduled", 17 | "Microsoft\Windows\DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector", 18 | "Microsoft\Windows\Power Efficiency Diagnostics\AnalyzeSystem", 19 | "Microsoft\Windows\RAC\RacTask", 20 | "Microsoft\Windows\SystemRestore\SR", 21 | "Microsoft\Windows\Windows Error Reporting\QueueReporting", 22 | "Microsoft\Windows\WindowsBackup\ConfigNotification", 23 | "Microsoft\Windows Defender\MP Scheduled Scan" 24 | ) 25 | foreach ($tn in $tasknames) { 26 | schtasks /Change /TN "$tn" /disable 27 | } 28 | 29 | # Stop and disable useless services. Found with: 30 | # Get-Service | Where-Object {$_.status -eq "running"} 31 | $services = @( 32 | "Background Intelligent Transfer Service", 33 | "Disk Defragmenter", 34 | "IP Helper", 35 | "Diagnostic Policy Service", 36 | "Network Connections", 37 | "Network List Service", 38 | "Network Location Awareness", 39 | "Program Compatibility Assistant Service", 40 | "Desktop Window Manager Session Manager", 41 | "Print Spooler", 42 | "Security Center", 43 | "SSDP Discovery", 44 | "Superfetch", 45 | # "TCP/IP NetBIOS Helper", # Needed for shared folders. 46 | # "Themes", 47 | # "Windows Audio", 48 | # "Windows Audio Endpoint Builder", 49 | "Windows Event Collector", 50 | "Windows Error Reporting Service", 51 | "Windows Defender", 52 | # "Windows Event Log", 53 | # "Windows Firewall", 54 | "Windows Search", 55 | "Windows Update" 56 | ) 57 | foreach ($svc in $services) { 58 | Get-Service "$svc" | Stop-Service -Force -PassThru | Set-Service -StartupType disabled 59 | } 60 | 61 | # Configure Windows Explorer properties 62 | $explorer_key = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer" 63 | 64 | $key = "$explorer_key\Advanced" 65 | New-Item $key -Force 66 | # Show hidden files, folders, and drives 67 | Set-RegProperty $key Hidden 1 68 | # Hide extensions for known file types 69 | Set-RegProperty $key HideFileExt 0 70 | # Hide protected operating system files (Recommended) 71 | Set-RegProperty $key ShowSuperHidden 1 72 | 73 | $key = "$explorer_key\HideDesktopIcons\NewStartPanel" 74 | New-Item $key -Force 75 | # Show "Computer" desktop icon" 76 | Set-RegProperty $key "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" 0 77 | #Stop-Process -processname explorer 78 | 79 | # Disable automatic pagefile management 80 | $cs = gwmi Win32_ComputerSystem 81 | if ($cs.AutomaticManagedPagefile) { 82 | $cs.AutomaticManagedPagefile = $False 83 | $cs.Put() 84 | } 85 | # Disable a single pagefile if any 86 | $pg = gwmi win32_pagefilesetting 87 | if ($pg) { 88 | $pg.Delete() 89 | } 90 | 91 | # Disable hibernation 92 | & powercfg /h off 93 | 94 | # Try to activate Windows if not already activated 95 | $act = cscript $env:SystemRoot\System32\slmgr.vbs /dli 96 | if ("$act" -NotLike '*Licensed*') { 97 | # Try to execute a helper for activation, requesting reboot on succes. 98 | & "$PSScriptRoot\slactivate" 99 | $needsReboot = $? 100 | } 101 | 102 | if ($needsReboot) { 103 | Restart-Computer 104 | } 105 | # vim: set sw=4 et ts=4: 106 | -------------------------------------------------------------------------------- /wsim/Out-of-Box Drivers/virtio/netkvm.cat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lekensteyn/windows-bootstrap/8fccf138c02eaa54e91dd361063011941808394d/wsim/Out-of-Box Drivers/virtio/netkvm.cat -------------------------------------------------------------------------------- /wsim/Out-of-Box Drivers/virtio/netkvm.inf: -------------------------------------------------------------------------------- 1 | ;------------------------------------------------------------------------------- 2 | ; netkvm.INF 3 | ; 4 | ; Red Hat VirtIO Ethernet Adapter 5 | ; 6 | ; Copyright (c) Red Hat, Inc. All rights reserved. 7 | ; 8 | ;------------------------------------------------------------------------------- 9 | 10 | [version] 11 | Signature = "$Windows NT$" 12 | Class = Net 13 | CatalogFile = netkvm.cat 14 | ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} 15 | Provider = %RedHat% 16 | DriverVer=04/29/2014,61.70.104.8100 17 | DriverPackageType = PlugAndPlay 18 | DriverPackageDisplayName = %kvmnet6.DeviceDesc% 19 | 20 | [Manufacturer] 21 | %RedHat% = RedHat, NTamd64 22 | 23 | [RedHat.NTamd64] 24 | %kvmnet6.DeviceDesc% = kvmnet6.ndi, PCI\VEN_1AF4&DEV_1000&SUBSYS_00011AF4&REV_00 25 | 26 | [kvmnet6.ndi.hw] 27 | AddReg = kvmnet6.EnableMSI 28 | 29 | [kvmnet6.EnableMSI] 30 | ;HKR, "Interrupt Management",, 0x00000010 31 | ;HKR, "Interrupt Management\MessageSignaledInterruptProperties",, 0x00000010 32 | HKR, "Interrupt Management\MessageSignaledInterruptProperties", MSISupported, 0x00010001, 1 33 | HKR, "Interrupt Management\MessageSignaledInterruptProperties", MessageNumberLimit, 0x00010001, 4 34 | ;HKR, "Interrupt Management\Affinity Policy",, 0x00000010 35 | HKR, "Interrupt Management\Affinity Policy", DevicePolicy, 0x00010001, 0 36 | HKR, "Interrupt Management\Affinity Policy", DevicePriority, 0x00010001, 2 37 | 38 | [kvmnet6.ndi] 39 | Characteristics = 0x84 ; NCF_PHYSICAL | NCF_HAS_UI 40 | BusType = 5 ; PCI 41 | AddReg = kvmnet6.Reg, Parameters 42 | CopyFiles = kvmnet6.CopyFiles 43 | *IfType = 6 44 | *MediaType = 0 ; NdisMedium802_3 45 | *PhysicalMediaType = 0 ; NdisPhysicalMediumUnspecified 46 | 47 | [kvmnet6.ndi.Services] 48 | AddService = netkvm, 2, kvmnet6.Service, kvmnet6.EventLog 49 | 50 | ;----------------------------------------------------------------------------- 51 | ; Red Hat ParaVirtualized Miniport Common 52 | ;----------------------------------------------------------------------------- 53 | 54 | [kvmnet6.Reg] 55 | HKR, , BusNumber, 0, "0" 56 | HKR, Ndi, Service, 0, "netkvm" 57 | HKR, Ndi\Interfaces, UpperRange, 0, "ndis5" 58 | HKR, Ndi\Interfaces, LowerRange, 0, "ethernet" 59 | 60 | HKR, Ndi\params\*RSS, ParamDesc, 0, "Receive Side Scaling" 61 | HKR, Ndi\params\*RSS, Type, 0, "enum" 62 | HKR, Ndi\params\*RSS, Default, 0, "1" 63 | HKR, Ndi\params\*RSS, Optional, 0, "0" 64 | HKR, Ndi\params\*RSS\enum, "0", 0, "Disabled" 65 | HKR, Ndi\params\*RSS\enum, "1", 0, "Enabled" 66 | 67 | HKR, Ndi\params\*NumRssQueues, ParamDesc, 0, "Maximum Number of RSS Queues" 68 | HKR, Ndi\params\*NumRssQueues, type, 0, "int" 69 | HKR, Ndi\params\*NumRssQueues, default, 0, "8" 70 | HKR, Ndi\params\*NumRssQueues, min, 0, "1" 71 | HKR, Ndi\params\*NumRssQueues, max, 0, "16" 72 | HKR, Ndi\params\*NumRssQueues, step, 0, "1" 73 | 74 | [Parameters] 75 | 76 | HKR, Ndi\Params\ConnectRate, ParamDesc, 0, %ConnectRate% 77 | HKR, Ndi\Params\ConnectRate, Default, 0, "10000" 78 | HKR, Ndi\Params\ConnectRate, type, 0, "enum" 79 | HKR, Ndi\Params\ConnectRate\enum, "10", 0, %10M% 80 | HKR, Ndi\Params\ConnectRate\enum, "100", 0, %100M% 81 | HKR, Ndi\Params\ConnectRate\enum, "1000", 0, %1G% 82 | HKR, Ndi\Params\ConnectRate\enum, "10000", 0, %10G% 83 | 84 | HKR, Ndi\Params\Priority, ParamDesc, 0, %Priority% 85 | HKR, Ndi\Params\Priority, Default, 0, "1" 86 | HKR, Ndi\Params\Priority, type, 0, "enum" 87 | HKR, Ndi\Params\Priority\enum, "1", 0, %Enable% 88 | HKR, Ndi\Params\Priority\enum, "0", 0, %Disable% 89 | 90 | HKR, Ndi\Params\*PriorityVLANTag, ParamDesc, 0, %PriorityVlanTag% 91 | HKR, Ndi\Params\*PriorityVLANTag, Default, 0, "3" 92 | HKR, Ndi\Params\*PriorityVLANTag, type, 0, "enum" 93 | HKR, Ndi\Params\*PriorityVLANTag\enum, "3", 0, %Priority_Vlan% 94 | HKR, Ndi\Params\*PriorityVLANTag\enum, "2", 0, %VLan% 95 | HKR, Ndi\Params\*PriorityVLANTag\enum, "1", 0, %PriorityOnly% 96 | HKR, Ndi\Params\*PriorityVLANTag\enum, "0", 0, %Disable% 97 | 98 | HKR, Ndi\Params\DoLog, ParamDesc, 0, %EnableLogging% 99 | HKR, Ndi\Params\DoLog, Default, 0, "1" 100 | HKR, Ndi\Params\DoLog, type, 0, "enum" 101 | HKR, Ndi\Params\DoLog\enum, "1", 0, %Enable% 102 | HKR, Ndi\Params\DoLog\enum, "0", 0, %Disable% 103 | 104 | HKR, Ndi\params\DebugLevel, ParamDesc, 0, %DebugLevel% 105 | HKR, Ndi\params\DebugLevel, type, 0, "int" 106 | HKR, Ndi\params\DebugLevel, default, 0, "0" 107 | HKR, Ndi\params\DebugLevel, min, 0, "0" 108 | HKR, Ndi\params\DebugLevel, max, 0, "8" 109 | HKR, Ndi\params\DebugLevel, step, 0, "1" 110 | 111 | HKR, Ndi\params\LogStatistics, ParamDesc, 0, %LogStatistics% 112 | HKR, Ndi\params\LogStatistics, type, 0, "int" 113 | HKR, Ndi\params\LogStatistics, default, 0, "0" 114 | HKR, Ndi\params\LogStatistics, min, 0, "0" 115 | HKR, Ndi\params\LogStatistics, max, 0, "10000" 116 | HKR, Ndi\params\LogStatistics, step, 0, "1" 117 | 118 | HKR, Ndi\params\MTU, ParamDesc, 0, %MTU% 119 | HKR, Ndi\params\MTU, type, 0, "long" 120 | HKR, Ndi\params\MTU, default, 0, "1500" 121 | HKR, Ndi\params\MTU, min, 0, "500" 122 | HKR, Ndi\params\MTU, max, 0, "65500" 123 | HKR, Ndi\params\MTU, step, 0, "1" 124 | 125 | HKR, Ndi\params\TxCapacity, ParamDesc, 0, %TxCapacity% 126 | HKR, Ndi\params\TxCapacity, type, 0, "enum" 127 | HKR, Ndi\params\TxCapacity, default, 0, "1024" 128 | HKR, Ndi\Params\TxCapacity\enum, "16", 0, %String_16% 129 | HKR, Ndi\Params\TxCapacity\enum, "32", 0, %String_32% 130 | HKR, Ndi\Params\TxCapacity\enum, "64", 0, %String_64% 131 | HKR, Ndi\Params\TxCapacity\enum, "128", 0, %String_128% 132 | HKR, Ndi\Params\TxCapacity\enum, "256", 0, %String_256% 133 | HKR, Ndi\Params\TxCapacity\enum, "512", 0, %String_512% 134 | HKR, Ndi\Params\TxCapacity\enum, "1024", 0, %String_1024% 135 | 136 | HKR, Ndi\params\RxCapacity, ParamDesc, 0, %RxCapacity% 137 | HKR, Ndi\params\RxCapacity, type, 0, "enum" 138 | HKR, Ndi\params\RxCapacity, default, 0, "256" 139 | HKR, Ndi\Params\RxCapacity\enum, "16", 0, %String_16% 140 | HKR, Ndi\Params\RxCapacity\enum, "32", 0, %String_32% 141 | HKR, Ndi\Params\RxCapacity\enum, "64", 0, %String_64% 142 | HKR, Ndi\Params\RxCapacity\enum, "128", 0, %String_128% 143 | HKR, Ndi\Params\RxCapacity\enum, "256", 0, %String_256% 144 | HKR, Ndi\Params\RxCapacity\enum, "512", 0, %String_512% 145 | HKR, Ndi\Params\RxCapacity\enum, "1024", 0, %String_1024% 146 | 147 | HKR, Ndi\params\NetworkAddress, ParamDesc, 0, %NetworkAddress% 148 | HKR, Ndi\params\NetworkAddress, type, 0, "edit" 149 | HKR, Ndi\params\NetworkAddress, Optional, 0, "1" 150 | 151 | HKR, Ndi\Params\OffLoad.TxChecksum, ParamDesc, 0, %OffLoad.TxChecksum% 152 | HKR, Ndi\Params\OffLoad.TxChecksum, Default, 0, "31" 153 | HKR, Ndi\Params\OffLoad.TxChecksum, type, 0, "enum" 154 | HKR, Ndi\Params\OffLoad.TxChecksum\enum, "31", 0, %All% 155 | HKR, Ndi\Params\OffLoad.TxChecksum\enum, "27", 0, %TCPUDPAll% 156 | HKR, Ndi\Params\OffLoad.TxChecksum\enum, "3", 0, %TCPUDPv4% 157 | HKR, Ndi\Params\OffLoad.TxChecksum\enum, "1", 0, %TCPv4% 158 | HKR, Ndi\Params\OffLoad.TxChecksum\enum, "0", 0, %Disable% 159 | 160 | HKR, Ndi\Params\OffLoad.TxLSO, ParamDesc, 0, %OffLoad.TxLSO% 161 | HKR, Ndi\Params\OffLoad.TxLSO, Default, 0, "2" 162 | HKR, Ndi\Params\OffLoad.TxLSO, type, 0, "enum" 163 | HKR, Ndi\Params\OffLoad.TxLSO\enum, "2", 0, %Maximal% 164 | HKR, Ndi\Params\OffLoad.TxLSO\enum, "1", 0, %IPv4% 165 | HKR, Ndi\Params\OffLoad.TxLSO\enum, "0", 0, %Disable% 166 | 167 | HKR, Ndi\Params\OffLoad.RxCS, ParamDesc, 0, %OffLoad.RxCS% 168 | HKR, Ndi\Params\OffLoad.RxCS, Default, 0, "31" 169 | HKR, Ndi\Params\OffLoad.RxCS, type, 0, "enum" 170 | HKR, Ndi\Params\OffLoad.RxCS\enum, "31", 0, %All% 171 | HKR, Ndi\Params\OffLoad.RxCS\enum, "27", 0, %TCPUDPAll% 172 | HKR, Ndi\Params\OffLoad.RxCS\enum, "3", 0, %TCPUDPv4% 173 | HKR, Ndi\Params\OffLoad.RxCS\enum, "1", 0, %TCPv4% 174 | HKR, Ndi\Params\OffLoad.RxCS\enum, "0", 0, %Disable% 175 | 176 | HKR, Ndi\Params\*IPChecksumOffloadIPv4, ParamDesc, 0, %Std.IPChecksumOffloadv4% 177 | HKR, Ndi\Params\*IPChecksumOffloadIPv4, Default, 0, "3" 178 | HKR, Ndi\Params\*IPChecksumOffloadIPv4, type, 0, "enum" 179 | HKR, Ndi\Params\*IPChecksumOffloadIPv4\enum, "3", 0, %TxRx% 180 | HKR, Ndi\Params\*IPChecksumOffloadIPv4\enum, "2", 0, %Rx% 181 | HKR, Ndi\Params\*IPChecksumOffloadIPv4\enum, "1", 0, %Tx% 182 | HKR, Ndi\Params\*IPChecksumOffloadIPv4\enum, "0", 0, %Disable% 183 | 184 | HKR, Ndi\Params\*LsoV2IPv4, ParamDesc, 0, %Std.LsoV2IPv4% 185 | HKR, Ndi\Params\*LsoV2IPv4, Default, 0, "1" 186 | HKR, Ndi\Params\*LsoV2IPv4, type, 0, "enum" 187 | HKR, Ndi\Params\*LsoV2IPv4\enum, "1", 0, %Enable% 188 | HKR, Ndi\Params\*LsoV2IPv4\enum, "0", 0, %Disable% 189 | 190 | HKR, Ndi\Params\*LsoV2IPv6, ParamDesc, 0, %Std.LsoV2IPv6% 191 | HKR, Ndi\Params\*LsoV2IPv6, Default, 0, "1" 192 | HKR, Ndi\Params\*LsoV2IPv6, type, 0, "enum" 193 | HKR, Ndi\Params\*LsoV2IPv6\enum, "1", 0, %Enable% 194 | HKR, Ndi\Params\*LsoV2IPv6\enum, "0", 0, %Disable% 195 | 196 | HKR, Ndi\Params\*UDPChecksumOffloadIPv4, ParamDesc, 0, %Std.UDPChecksumOffloadIPv4% 197 | HKR, Ndi\Params\*UDPChecksumOffloadIPv4, Default, 0, "3" 198 | HKR, Ndi\Params\*UDPChecksumOffloadIPv4, type, 0, "enum" 199 | HKR, Ndi\Params\*UDPChecksumOffloadIPv4\enum, "3", 0, %TxRx% 200 | HKR, Ndi\Params\*UDPChecksumOffloadIPv4\enum, "2", 0, %Rx% 201 | HKR, Ndi\Params\*UDPChecksumOffloadIPv4\enum, "1", 0, %Tx% 202 | HKR, Ndi\Params\*UDPChecksumOffloadIPv4\enum, "0", 0, %Disable% 203 | 204 | HKR, Ndi\Params\*TCPChecksumOffloadIPv4, ParamDesc, 0, %Std.TCPChecksumOffloadIPv4% 205 | HKR, Ndi\Params\*TCPChecksumOffloadIPv4, Default, 0, "3" 206 | HKR, Ndi\Params\*TCPChecksumOffloadIPv4, type, 0, "enum" 207 | HKR, Ndi\Params\*TCPChecksumOffloadIPv4\enum, "3", 0, %TxRx% 208 | HKR, Ndi\Params\*TCPChecksumOffloadIPv4\enum, "2", 0, %Rx% 209 | HKR, Ndi\Params\*TCPChecksumOffloadIPv4\enum, "1", 0, %Tx% 210 | HKR, Ndi\Params\*TCPChecksumOffloadIPv4\enum, "0", 0, %Disable% 211 | 212 | HKR, Ndi\Params\*TCPChecksumOffloadIPv6, ParamDesc, 0, %Std.TCPChecksumOffloadIPv6% 213 | HKR, Ndi\Params\*TCPChecksumOffloadIPv6, Default, 0, "3" 214 | HKR, Ndi\Params\*TCPChecksumOffloadIPv6, type, 0, "enum" 215 | HKR, Ndi\Params\*TCPChecksumOffloadIPv6\enum, "3", 0, %TxRx% 216 | HKR, Ndi\Params\*TCPChecksumOffloadIPv6\enum, "2", 0, %Rx% 217 | HKR, Ndi\Params\*TCPChecksumOffloadIPv6\enum, "1", 0, %Tx% 218 | HKR, Ndi\Params\*TCPChecksumOffloadIPv6\enum, "0", 0, %Disable% 219 | 220 | HKR, Ndi\Params\*UDPChecksumOffloadIPv6, ParamDesc, 0, %Std.UDPChecksumOffloadIPv6% 221 | HKR, Ndi\Params\*UDPChecksumOffloadIPv6, Default, 0, "3" 222 | HKR, Ndi\Params\*UDPChecksumOffloadIPv6, type, 0, "enum" 223 | HKR, Ndi\Params\*UDPChecksumOffloadIPv6\enum, "3", 0, %TxRx% 224 | HKR, Ndi\Params\*UDPChecksumOffloadIPv6\enum, "2", 0, %Rx% 225 | HKR, Ndi\Params\*UDPChecksumOffloadIPv6\enum, "1", 0, %Tx% 226 | HKR, Ndi\Params\*UDPChecksumOffloadIPv6\enum, "0", 0, %Disable% 227 | 228 | HKR, Ndi\params\NumberOfHandledRXPackersInDPC, ParamDesc, 0, %NumberOfHandledRXPackersInDPC% 229 | HKR, Ndi\params\NumberOfHandledRXPackersInDPC, type, 0, "long" 230 | HKR, Ndi\params\NumberOfHandledRXPackersInDPC, default, 0, "1000" 231 | HKR, Ndi\params\NumberOfHandledRXPackersInDPC, min, 0, "1" 232 | HKR, Ndi\params\NumberOfHandledRXPackersInDPC, max, 0, "10000" 233 | HKR, Ndi\params\NumberOfHandledRXPackersInDPC, step, 0, "1" 234 | 235 | [kvmnet6.CopyFiles] 236 | netkvm.sys,,,2 237 | 238 | [kvmnet6.Service] 239 | DisplayName = %kvmnet6.Service.DispName% 240 | ServiceType = 1 ;%SERVICE_KERNEL_DRIVER% 241 | StartType = 3 ;%SERVICE_DEMAND_START% 242 | ErrorControl = 1 ;%SERVICE_ERROR_NORMAL% 243 | ServiceBinary = %12%\netkvm.sys 244 | LoadOrderGroup = NDIS 245 | AddReg = TextModeFlags.Reg 246 | 247 | [kvmnet6.EventLog] 248 | AddReg = kvmnet6.AddEventLog.Reg 249 | 250 | [kvmnet6.AddEventLog.Reg] 251 | HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll" 252 | HKR, , TypesSupported, 0x00010001, 7 253 | 254 | [TextModeFlags.Reg] 255 | HKR,,TextModeFlags,0x00010001, 0x0001 256 | HKR,Parameters,DisableMSI,,"0" 257 | HKR,Parameters,EarlyDebug,,"3" 258 | 259 | [SourceDisksNames] 260 | 1 = %DiskId1%,,,"" 261 | 262 | [SourceDisksFiles] 263 | netkvm.sys = 1,, 264 | 265 | [DestinationDirs] 266 | kvmnet6.CopyFiles = 12 267 | 268 | [Strings] 269 | RedHat = "Red Hat Inc." 270 | kvmnet6.DeviceDesc = "Red Hat VirtIO Ethernet Adapter" 271 | kvmnet6.Service.DispName = "Red Hat VirtIO Ethernet Adapter Service" 272 | DiskId1 = "Red Hat VirtIO Ethernet Adapter Driver Disk #1" 273 | NetworkAddress = "Assign MAC" 274 | ConnectRate = "Init.ConnectionRate(Mb)" 275 | Priority = "Init.Do802.1PQ" 276 | MTU = "Init.MTUSize" 277 | TxCapacity = "Init.MaxTxBuffers" 278 | RxCapacity = "Init.MaxRxBuffers" 279 | Offload.TxChecksum = "Offload.Tx.Checksum" 280 | Offload.TxLSO = "Offload.Tx.LSO" 281 | Offload.RxCS = "Offload.Rx.Checksum" 282 | EnableLogging = "Logging.Enable" 283 | DebugLevel = "Logging.Level" 284 | LogStatistics = "Logging.Statistics(sec)" 285 | Tx = "Tx Enabled"; 286 | Rx = "Rx Enabled"; 287 | TxRx = "Rx & Tx Enabled"; 288 | NumberOfHandledRXPackersInDPC = "TestOnly.RXThrottle" 289 | Std.LsoV2IPv4 = "Large Send Offload V2 (IPv4)" 290 | Std.LsoV2IPv6 = "Large Send Offload V2 (IPv6)" 291 | Std.UDPChecksumOffloadIPv4 = "UDP Checksum Offload (IPv4)" 292 | Std.TCPChecksumOffloadIPv4 = "TCP Checksum Offload (IPv4)" 293 | Std.UDPChecksumOffloadIPv6 = "UDP Checksum Offload (IPv6)" 294 | Std.TCPChecksumOffloadIPv6 = "TCP Checksum Offload (IPv6)" 295 | Std.IPChecksumOffloadv4 = "IPv4 Checksum Offload" 296 | Disable = "Disabled" 297 | Enable = "Enabled" 298 | Enable* = "Enabled*" 299 | String_16 = "16" 300 | String_32 = "32" 301 | String_64 = "64" 302 | String_128 = "128" 303 | String_256 = "256" 304 | String_512 = "512" 305 | String_1024 = "1024" 306 | PriorityVlanTag = "Priority and VLAN tagging" 307 | PriorityOnly = "Priority" 308 | VLan = "VLan" 309 | Priority_Vlan = "All" 310 | 10M = "10M" 311 | 100M = "100M" 312 | 1G = "1G" 313 | 10G = "10G" 314 | TCPv4 = "TCP(v4)" 315 | TCPUDPv4 = "TCP/UDP(v4)" 316 | TCPUDPAll = "TCP/UDP(v4,v6)" 317 | All = "All" 318 | IPv4 = "IPv4" 319 | Maximal = "Maximal" 320 | 321 | -------------------------------------------------------------------------------- /wsim/Out-of-Box Drivers/virtio/netkvm.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lekensteyn/windows-bootstrap/8fccf138c02eaa54e91dd361063011941808394d/wsim/Out-of-Box Drivers/virtio/netkvm.sys -------------------------------------------------------------------------------- /wsim/Out-of-Box Drivers/virtio/vioscsi.cat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lekensteyn/windows-bootstrap/8fccf138c02eaa54e91dd361063011941808394d/wsim/Out-of-Box Drivers/virtio/vioscsi.cat -------------------------------------------------------------------------------- /wsim/Out-of-Box Drivers/virtio/vioscsi.inf: -------------------------------------------------------------------------------- 1 | ; Copyright (c) 2012, Red Hat Inc. 2 | [Version] 3 | Signature="$Windows NT$" 4 | Class=SCSIAdapter 5 | ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318} 6 | Provider=%RHEL% 7 | DriverVer=04/29/2014,61.70.104.8100 8 | CatalogFile=vioscsi.cat 9 | DriverPackageType = PlugAndPlay 10 | DriverPackageDisplayName = %RHELScsi.DeviceDesc% 11 | 12 | ; 13 | ; Source file information 14 | ; 15 | 16 | [SourceDisksNames] 17 | 1 = %DiskId1%,,,"" 18 | 19 | [SourceDisksFiles] 20 | vioscsi.sys = 1,, 21 | 22 | [ControlFlags] 23 | ;ExcludeFromSelect = * 24 | 25 | [DestinationDirs] 26 | DefaultDestDir = 10 27 | vioscsi_Files_Driver = 12 28 | 29 | ; 30 | ; Driver information 31 | ; 32 | 33 | [Manufacturer] 34 | %RHEL% = RHEL,NTAMD64 35 | 36 | [RHEL.NTAMD64] 37 | %RHELScsi.DeviceDesc% = rhelscsi_inst, PCI\VEN_1AF4&DEV_1004&SUBSYS_00081AF4&REV_00 38 | 39 | ; 40 | ; General installation section 41 | ; 42 | 43 | [vioscsi_Files_Driver] 44 | vioscsi.sys,,,2 45 | 46 | [rhelscsi_inst] 47 | CopyFiles=vioscsi_Files_Driver 48 | 49 | ; 50 | ; Service Installation 51 | ; 52 | 53 | [rhelscsi_inst.Services] 54 | AddService = vioscsi, 0x00000002 , rhelscsi_Service_Inst, rhelscsi_EventLog_Inst 55 | 56 | [rhelscsi_Service_Inst] 57 | ServiceType = %SERVICE_KERNEL_DRIVER% 58 | StartType = %SERVICE_BOOT_START% 59 | ErrorControl = %SERVICE_ERROR_NORMAL% 60 | ServiceBinary = %12%\vioscsi.sys 61 | LoadOrderGroup = SCSI miniport 62 | AddReg = pnpsafe_pci_addreg 63 | 64 | [rhelscsi_inst.HW] 65 | AddReg = pnpsafe_pci_addreg_msix 66 | 67 | [rhelscsi_EventLog_Inst] 68 | AddReg = rhelscsi_EventLog_AddReg 69 | 70 | [rhelscsi_EventLog_AddReg] 71 | HKR,,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.dll" 72 | HKR,,TypesSupported,%REG_DWORD%,7 73 | 74 | 75 | [pnpsafe_pci_addreg] 76 | HKR, "Parameters\PnpInterface", "5", %REG_DWORD%, 0x00000001 77 | HKR, "Parameters", "BusType", %REG_DWORD%, 0x00000001 78 | 79 | [pnpsafe_pci_addreg_msix] 80 | HKR, "Interrupt Management",, 0x00000010 81 | HKR, "Interrupt Management\MessageSignaledInterruptProperties",, 0x00000010 82 | HKR, "Interrupt Management\MessageSignaledInterruptProperties", MSISupported, 0x00010001, 1 83 | HKR, "Interrupt Management\MessageSignaledInterruptProperties", MessageNumberLimit, 0x00010001, 256 84 | HKR, "Interrupt Management\Affinity Policy",, 0x00000010 85 | HKR, "Interrupt Management\Affinity Policy", DevicePolicy, 0x00010001, 5 86 | 87 | 88 | [Strings] 89 | ; 90 | ; Localizable Strings 91 | ; 92 | diskId1 = "Red Hat VirtIO SCSI pass-through controller Installation Disk" 93 | RHELScsi.DeviceDesc = "Red Hat VirtIO SCSI pass-through controller" 94 | RHEL = "Red Hat, Inc." 95 | 96 | ; 97 | ; Non-Localizable Strings 98 | ; 99 | 100 | REG_EXPAND_SZ = 0x00020000 101 | REG_DWORD = 0x00010001 102 | SERVICE_KERNEL_DRIVER = 1 103 | SERVICE_BOOT_START = 0 104 | SERVICE_ERROR_NORMAL = 1 105 | 106 | -------------------------------------------------------------------------------- /wsim/Out-of-Box Drivers/virtio/vioscsi.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lekensteyn/windows-bootstrap/8fccf138c02eaa54e91dd361063011941808394d/wsim/Out-of-Box Drivers/virtio/vioscsi.sys -------------------------------------------------------------------------------- /wsim/Out-of-Box Drivers/virtio/viostor.cat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lekensteyn/windows-bootstrap/8fccf138c02eaa54e91dd361063011941808394d/wsim/Out-of-Box Drivers/virtio/viostor.cat -------------------------------------------------------------------------------- /wsim/Out-of-Box Drivers/virtio/viostor.inf: -------------------------------------------------------------------------------- 1 | ; Copyright (c) 2009, Red Hat Inc. 2 | [Version] 3 | Signature="$Windows NT$" 4 | Class=SCSIAdapter 5 | ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318} 6 | Provider=%RHEL% 7 | DriverVer=04/29/2014,61.70.104.8100 8 | CatalogFile=viostor.cat 9 | DriverPackageType = PlugAndPlay 10 | DriverPackageDisplayName = %RHELScsi.DeviceDesc% 11 | 12 | ; 13 | ; Source file information 14 | ; 15 | 16 | [SourceDisksNames] 17 | 1 = %DiskId1%,,,"" 18 | 19 | [SourceDisksFiles] 20 | viostor.sys = 1,, 21 | 22 | [ControlFlags] 23 | ;ExcludeFromSelect = * 24 | 25 | [DestinationDirs] 26 | DefaultDestDir = 10 27 | viostor_Files_Driver = 12 28 | 29 | ; 30 | ; Driver information 31 | ; 32 | 33 | [Manufacturer] 34 | %RHEL% = RHEL,NTAMD64 35 | 36 | [RHEL.NTAMD64] 37 | %RHELScsi.DeviceDesc% = rhelscsi_inst, PCI\VEN_1AF4&DEV_1001&SUBSYS_00021AF4&REV_00 38 | 39 | ; 40 | ; General installation section 41 | ; 42 | 43 | [viostor_Files_Driver] 44 | viostor.sys,,,2 45 | 46 | [rhelscsi_inst] 47 | CopyFiles=viostor_Files_Driver 48 | 49 | ; 50 | ; Service Installation 51 | ; 52 | 53 | [rhelscsi_inst.Services] 54 | AddService = viostor, 0x00000002 , rhelscsi_Service_Inst, rhelscsi_EventLog_Inst 55 | 56 | [rhelscsi_Service_Inst] 57 | ServiceType = %SERVICE_KERNEL_DRIVER% 58 | StartType = %SERVICE_BOOT_START% 59 | ErrorControl = %SERVICE_ERROR_NORMAL% 60 | ServiceBinary = %12%\viostor.sys 61 | LoadOrderGroup = SCSI miniport 62 | AddReg = pnpsafe_pci_addreg 63 | 64 | [rhelscsi_inst.HW] 65 | AddReg = pnpsafe_pci_addreg_msix 66 | 67 | [rhelscsi_EventLog_Inst] 68 | AddReg = rhelscsi_EventLog_AddReg 69 | 70 | [rhelscsi_EventLog_AddReg] 71 | HKR,,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.dll" 72 | HKR,,TypesSupported,%REG_DWORD%,7 73 | 74 | 75 | [pnpsafe_pci_addreg] 76 | HKR, "Parameters\PnpInterface", "5", %REG_DWORD%, 0x00000001 77 | HKR, "Parameters", "BusType", %REG_DWORD%, 0x00000001 78 | 79 | [pnpsafe_pci_addreg_msix] 80 | HKR, "Interrupt Management",, 0x00000010 81 | HKR, "Interrupt Management\MessageSignaledInterruptProperties",, 0x00000010 82 | HKR, "Interrupt Management\MessageSignaledInterruptProperties", MSISupported, 0x00010001, 1 83 | HKR, "Interrupt Management\MessageSignaledInterruptProperties", MessageNumberLimit, 0x00010001, 2 84 | HKR, "Interrupt Management\Affinity Policy",, 0x00000010 85 | HKR, "Interrupt Management\Affinity Policy", DevicePolicy, 0x00010001, 5 86 | 87 | 88 | [Strings] 89 | ; 90 | ; Localizable Strings 91 | ; 92 | diskId1 = "Red Hat VirtIO SCSI controller Installation Disk" 93 | RHELScsi.DeviceDesc = "Red Hat VirtIO SCSI controller" 94 | RHEL = "Red Hat, Inc." 95 | 96 | ; 97 | ; Non-Localizable Strings 98 | ; 99 | 100 | REG_EXPAND_SZ = 0x00020000 101 | REG_DWORD = 0x00010001 102 | SERVICE_KERNEL_DRIVER = 1 103 | SERVICE_BOOT_START = 0 104 | SERVICE_ERROR_NORMAL = 1 105 | 106 | -------------------------------------------------------------------------------- /wsim/Out-of-Box Drivers/virtio/viostor.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lekensteyn/windows-bootstrap/8fccf138c02eaa54e91dd361063011941808394d/wsim/Out-of-Box Drivers/virtio/viostor.sys --------------------------------------------------------------------------------