[Guide] Integration of drivers into a Win7-11 Image

@SoulRipper
Inded you shoul use boot.wim and setup.exe from Win8, or better Win10.
Here is my install image assembly method (suggestions appreciated!):


1
2
3
4
5
6
7
8
9
10
11
 
r:\temp\drivers
r:\temp\hotfix
r:\temp\hotfix\Windows6.1-KB2550978-x64.msu
r:\temp\hotfix\Windows6.1-KB2990941-v3-x64.msu
r:\temp\hotfix\Windows6.1-KB3087873-v2-x64.msur:\temp\mount
r:\temp\src
r:\temp\win10_boot
r:\temp\win10_boot\boot.wim
r:\temp\win10_boot\setup.exe
r:\temp\winremount
r:\temp\oscdimg.exe
 

3fb17314d6e25c29173c7e373096927f *oscdimg.exe (126 528 bytes)

98e07394d729f7980a67753124e683c7 *boot.wim (331 492 320 bytes)
f7e31dc831f07a445bf4fc900f33fc32 *setup.exe (278 752 bytes, file version 10.0.16299.15 (WinBuild.160101.0800))

76e3d6fe7f5205ee56863569a36ca2ed *Windows6.1-KB2990941-v3-x64.msu - nvme support
afffe9c2cc56fa6565839d9ca44e21db *Windows6.1-KB3087873-v2-x64.msu - some nvme fix
86db9e6a7667acd09c091cce02c23586 *Windows6.1-KB2550978-x64.msu - no need for nvme, need for some iscsi issues

Drivers are for nvme ssds, network and sata:
nic_ath
nic_bcm
nic_int
nic_marv
nic_nvid
nic_rtl
nic_vmw_vmxnet3
nvme_int
nvme_plex_liteon
nvme_sam
nvme_tos_ocz
sata_amd
sata_asm
sata_int
sata_marv6
sata_marv8
sata_marv9
sata_nforce
sata_vmw_pvscsi

Get index numbers and set correct index in all following batch files. No automation here. I use clean official MSDN Win7 Enterprise image.
1
2
3
4
5
6
7
8
9
 
@echo off
dism /Get-WimInfo /WimFile:r:\temp\src\sources\install.wim
echo.
echo.
dism /Get-WimInfo /WimFile:r:\temp\src\sources\boot.wim
echo.
echo -- %0 -- !!_DONE_!!
echo.
echo.
 

Inject drivers and hotfixes into boot image. This step may be legacy, but, there are some files changed and copied, so i execute this step
1
2
3
4
5
6
7
8
9
10
11
12
13
 
@echo off
echo ---mount boot image and inject hotfix and drivers---
dism /Mount-Wim /WimFile:r:\temp\src\sources\boot.wim /Index:1 /MountDir:r:\temp\mount
dism /Image:r:\temp\mount /Add-Package /PackagePath:r:\temp\hotfix
dism /Image:r:\temp\mount /Add-Driver /Driver:r:\temp\drivers /Recurse
dism /Unmount-Wim /MountDir:r:\temp\mount /Commit
dism /Mount-Wim /WimFile:r:\temp\src\sources\boot.wim /Index:2 /MountDir:r:\temp\mount
dism /Image:r:\temp\mount /Add-Package /PackagePath:r:\temp\hotfix
dism /Image:r:\temp\mount /Add-Driver /Driver:r:\temp\drivers /Recurse
echo.
echo -- %0 -- !!_DONE_!!
echo.
echo.
 

Now sort r:\temp\mount\sources by date and copy updated files to r:\temp\src\sources

And unmount boot.wim
1
2
3
4
5
6
7
8
 
@echo off
echo files copied ??
pause
dism /Unmount-Wim /MountDir:r:\temp\mount /Commit
echo.
echo -- %0 -- !!_DONE_!!
echo.
echo.
 

Now inject drivers and hotfixes into install.wim
1
2
3
4
5
6
7
8
9
10
11
12
13
 
@echo off
echo ---mount install image and inject hotfix and drivers---
dism /Mount-Wim /WimFile:r:\temp\src\sources\install.wim /Index:1 /MountDir:r:\temp\mount
dism /Image:r:\temp\mount /Add-Package /PackagePath:r:\temp\hotfix
dism /Image:r:\temp\mount /Add-Driver /Driver:r:\temp\drivers /Recurse
echo.
dism /Mount-Wim /WimFile:r:\temp\mount\windows\system32\recovery\winre.wim /Index:1 /MountDir:r:\temp\winremount
dism /Image:r:\temp\winremount /Add-Package /PackagePath:r:\temp\hotfix
dism /Image:r:\temp\winremount /Add-Driver /Driver:r:\temp\drivers /Recurse
echo.
echo -- %0 -- !!_DONE_!!
echo.
echo.
 

Set locale and language parameters. I prefer English keyboard as default everywhere, but Russian locale for system
1
2
3
4
5
6
7
8
9
10
11
 
@echo off
Dism /Image:r:\temp\mount /Get-Intl
echo setting locale
Dism /Image:r:\temp\mount /Set-SysLocale:ru-RU
Dism /Image:r:\temp\mount /Set-UserLocale:ru-RU
Dism /Image:r:\temp\mount /Set-InputLocale:0409:00000409;0419:00000419
Dism /Image:r:\temp\mount /Set-TimeZone:"N. Central Asia Standard Time"
echo.
echo -- %0 -- !!_DONE_!!
echo.
echo.
 

Unmount winre.wim and install.wim
1
2
3
4
5
6
7
8
 
@echo off
echo ---unmount and commit---
dism /Unmount-Wim /MountDir:r:\temp\winremount /Commit
dism /Unmount-Wim /MountDir:r:\temp\mount /Commit
echo.
echo -- %0 -- !!_DONE_!!
echo.
echo.
 

Inject simplix updates and usb3 into install.wim
Simplix claims that his pack already has nvme support fixes and drivers, but i use my old stable and confirmed method. Not using /nvme key when integrating.
1
2
3
4
5
6
7
8
9
 
@echo off
echo Achtung! Are you ready to inject Simplix Pack?
pause
md r:\unpack_temp
r:\temp\UpdatePack7R2-19.3.15.exe /ie11 /FixOff /Optimize /WimFile=r:\temp\src\sources\install.wim /Index=1 /Temp=r:\unpack_temp
echo.
echo -- %0 -- !!_DONE_!!
echo.
echo.
 

Copy boot files from Win 10
1
2
3
4
5
6
7
8
 
@echo off
echo ---copy win10 boot image---
copy /y r:\temp\win10_boot\boot.wim r:\temp\src\sources\boot.wim
copy /y r:\temp\win10_boot\setup.exe r:\temp\src\sources\setup.exe
echo.
echo -- %0 -- !!_DONE_!!
echo.
echo.
 

And finally make iso file.
1
2
3
4
5
6
7
8
 
@echo off
echo ---writing ISO image Win7sp1ru-NVME.iso---
echo WARNING! existing file will be overwritten!
oscdimg -LTEST -m -u2 -bootdata:2#p0,e,br:\temp\src\boot\etfsboot.com#pEF,e,br:\temp\src\efi\microsoft\boot\efisys.bin r:\temp\src r:\temp\Win7sp1ru-NVME.iso
echo.
echo -- %0 -- !!_DONE_!!
echo.
echo.
 

oscdimg command line is quite strange, but it is correct - no whitespaces after switches needed. There are several versions of oscdimg with some differences in command line and behaviour.

EDIT by Fernando: Additional "spoiler" added and unneeded blank lines removed (to save space)

@mann :
That’s an interesting method, but is it compulsory to inject drivers into Win10’s boot.wim? Shouldn’t it handle USB3/NVMe out of the box?
Are there any reasons not to use more recent setup.exe/boot.wim (ex. 10.0.18358.1)?

@SoulRipper
I didn’t mentioned - at first - unpack Win7 dvd iso to r:\temp\src.
So 2nd step is about injecting drivers into original boot.wim. It changes some other files in image (try and see). May be it is not mandatory, i saw it in some ancient guide. Original Win7 boot.wim with drivers injected that way is buggy, tryed it on some MB’s with 70-100 chipsets - failed to boot, so it should be replaced with Win10 boot.wim at 8th step. I seldom monitor Win10 releases, it may be worth updating, to get support of newest hardware. This particular build proved itself during 2018 on inetl MB’s with up to 300 series chipsets (tryed p31, p41, h61, b75, h110, b150, b250, x370 with all the generations of intel and asmedia usb3), intel notebooks (sandy, ivy, haswell, skylake) and some old non-ryzen amd MB’s. I rebuild install image every month with recent release of Simplix update pack and drivers for network and mvme.

Good evening @Fernando

Thanks for your guidance so far. I think I’m on to something. I’ve come across a video on YouTube on how to integrate the drivers into the two specified .wim files you’ve advised on.

My question on this is: what is the directory destination, or where exactly/what folder or sub-folder name, to integrate them into? I’m hoping there’s a generic answer for this but basically the reason I ask is because when I get as far as to explore what’s in the boot and install .wim files there are tons of folders and sub folders. I want to ensure I inject the drivers into the correct location so that the install is as seamless/smooth as possible.

This is in relation to installing Windows 7 from a USB flash-drive (currently using Rufus on a 2.0 and a 3.0 USB) to a Surface Pro 7 SSD.

I hope this makes sense. Thanks for your patience.

@tutafourabit : Since there is a special thread with a guide within the start post, I have moved your request here.

Hi @Fernando ,

I’ve had a read through your instructions after your diverting of my previous query on integration of drivers to this page. It’s really good - thanks.

The only question I have is how I integrate the hotfixes (x64) as they are .msu files. I obtained these from post #2 of the Recommended AHCI/RAID and NVMe Drivers as instructed by you. I am intending to integrate these to a x64 version of Windows 7.

Please advise if I understand your instructions correctly:
1) I first have to integrate the hotfixes into both boot.wim and install.wim in the iso using NTLite. This will enable an initial install of Windows 7 onto my Surface Pro 7
2) Once the OS is installed I can then integrate the chosen drivers (in my case the OCZ/Toshiba drivers as my SSD in my Surface Pro 7 is a Toshiba BG4). I’m assuming that I’ll have to reinstall the OS again with the Toshiba drivers over the initial OS install? If so, can I not just do one install with the Toshiba drivers? - what will the hotfixes enable me to do?
3) The USB issue is resolved in another post (I haven’t yet got to that step yet).

Am I understanding this correctly? If so, then I’m stuck at the first step in getting the x64 hotfixes integrated.

P.S. I have tried integrating the Toshiba’s ‘ocznmve’ drivers (from step 2) and I see them in the driver queue, but when I try the hotfixes (from step 1) the queue is blank (empty).

Thanks again.

@tutafourabit :
If you are sure, that the latest "pure" 64bit OCZ NVMe driver v1.2.126.843 WHQL supports the NVMe Controller of your Toshiba SSD, you can integrate it according to my guide (start post of this thread). In this case you should not integrate the MS Hotfixes.
This would be the easiest solution.
Good luck!

Hello @Fernando ,

I thought as much. I wouldn’t say I am 100% sure, but I am willing to give it a try as I cannot find any NMVe drivers for this particular model anywhere.

Failing this, I will get back to you about how to get the Hotfixes integrated.

I’ll keep you posted.

Thanks.

Good evening @Fernando ,

I have an update since my last message.

I attempted to integrate the drivers for the Toshiba SSD, however when NTLite had completed the integration process I saw that there were a few of the steps that the software couldn’t complete. I didn’t take a screenshot or regard these at first until I had made an attempt to install Windows 7 to my Surface, and I’ve not been able to get any further with the installation process.

I’ve attached some photos of my Surface desktop to show you what I see when trying to set up Windows 7.

As you can see in the first photo the setup recognises my partition drives but some driver is missing.
As you can see in the second photo the setup specifies the drivers (NVMe).
AS you can see in the third photo there’s an option to browse for the driver.

When I click browse and search for the boot.wim/install.wim iso files with the integrated drivers, I cannot find them.

Is there any particular thing I’m doing wrong?

IMG_3013.jpeg

IMG_3014.jpeg

IMG_3015.jpeg

@tutafourabit :
This thread has been designed for users, who want to integrate a driver (consisting at least of a *.sys, *.inf and *.cat file), and not for users, who want to integrate MS Hotfixes (as *.msu files). The integration procedure is totally different.
You have to integrate the *.msu files as part of the desired OS and not as drivers. After having correctly integrated the MS NVMe Hotfixes the Win7 Setup will automaticly detect your NVMe SSD resp. its NVMe Controller. Since the NVMe driver, which will be used by Win7, is part of the OS and has no digital signature (no *.cat file), it is impossible to integrate it as driver or to load it at the beginning of the OS installation.

Hi @Fernando

Thanks for the update. Do you have a thread that is appropriate for me to look into on how to integrate the .msu Hotfix into the OS? I have not done this before.

Thanks.

@tutafourabit :
If you have a problem regarding the Hotfix integration procedure, please look into the "Support" pages of ntlite.com.
I have only written a guide about how to integrate a real driver.

Hello, I need your help. I have a HP 470 G8 and I created a Windows 10 image with NTLite that does the whole installation automatically. So also the partitioning of the hard disk.

Here I now get the error 0x8030025. So no harddisk is found. Then I added the following driver according to these instructions here.

"intel.com/content/www/us/en/download/19512/intel-rapid-storage-technology-driver-installation-software-with-intel-optane-memory-10th-and-11th-gen-platforms.html"

But unfortunately I still get the same error message.

If I take a standard Windows 10 image and then load the driver manually, then I can create the partition and the installation works.

What am I doing wrong here?

@Marco83 : Welcome to the Win-RAID Forum!
AFAIK the error message you got has nothing to do with the procedure about how to integrate a storage driver into a Win10/11 Image. >Here< you can find some options how to fix the issue.
Questions:
1. Which HDD/SSD (manufacturer and model) is your notebook’s system drive (target for the OS installation and the boot sector) and which data transfer protocol (SATA AHCI or NVMe) does it support?
2. Which are the names and the HardwareIDs of the related AHCI or NVMe Controller (open the “IDE ATA/ATAPI Controllers” or “Storage Controllers” section of the Device Manager)?
3. Which exact driver did you integrate (I need the full name of it).
Regards
Dieter (alias Fernando)

@Fernando Hello, the link belongs to the error 0x80300024, but I have the 0x8030025 :slight_smile:


1. I have a Samsung 970 Evo Plus NVME M.2 installed in the laptop.

2. I can not tell at the moment

3. filename: iaStorVD.inf
Revision: 02/18/2021,18.1.6.1039
Abstract: Windows* INF File for VMD Intel(R) Rapid Storage Technology Driver
Installs: RST VMD Controller Miniport + RST Filter Driver

Maybe again for clarification. If I boot a standard Windows 10 image, then I have to partition the hard disk at some point. But there the hard disk is not shown, because a driver is missing. If I now load this driver under point 3 from a USB stick, then the hard drive is recognized and I can partition it and install Windows.

I have integrated the same driver with NTLite, but the Windows installation always aborts at the point where the hard disk is partitioned. Probably because the driver is not found.

@Marco83 :
You have obviously integrated a wrong/not matching storage driver.
Why did you integrate an Intel RST VMD driver, although the NVMe Controller of your Samsung 970 EVO Plus SSD needs an NVMe driver (either the latest Samsung one or the Win10 in-box “standard” NVMe driver from Microsoft)
I bet, that your problem wouldn’t occur, if you would install the OS from an untouched ISO file.

@Fernando

But the problem appears here as well. (Default Windows 10 image).
If this is the wrong driver, why does it work when I install Windows 10 from a untouched ISO file with this driver?

@Marco83 :
Unfortunately you haven’t told me important details of your system (chipset, SATA AHCI/RAID mode and VMD settings within the BIOS).
To be able to answer your questions I need the names and HardwareIDs of all Controllers, which are listed within the “Storage Controllers” and “IDE ATA/ATAPI Controllers” sections of the Device Manager.
You get them by doing a right-click onto the related Controller and choosing the options “Properties” > “Details” > “Property” > “HardwareIDs”.

This is the reason why it does not work: https://www.dell.com/support/kbdoc/de-de…fwerke-gefunden

As I said, with the mentioned driver it works. But not when I integrate the driver in NTLite…

@Marco83 : Thanks for the link.

Did you integrate the driver into both *.wim images (install.wim and boot.wim)?