[REQUEST] Generic NVMe driver for Windows Vista / Server 2008?

Hi,

anybody have NVMe generic driver for Vista / Server 2008?
I’m looking for ported ones too.


Currently I tried to inject M. Phison NVMe Drivers (generic = usable for all NVMe Controllers!) but this ends with this screen

corrupted nvme file.png



I’m working on Windows Vista / Server 2008 Update Pack that can integrate all updates until 05-2021, USB3.x drivers are included and I would like to add NVMe generic drivers too.

Thanks for sugestion

When I’m trying to use ported XP driver it fails too, even with integrated EMU Extender




But ported USB3.x works without problem

I tried to add untouched NVMe Windows 7 driver and I got exactly same error. There must be something needed to modify in SYS files.

Here are ported USB3.x files that works without problem
https://forums.mydigitallife.net/threads…-7-vista.81934/


And here are Windows 7 NVMe drivers with all needed depencies, SYS files are untouched and original. Only .INF is modded to install all needed files.
https://www.mediafire.com/file/u67qebqi7…x86_x64.7z/file

Can anybody try to modify them to support Vista?

Are you sure, that you used the matching 32/64bit driver for Win7?

@Fernando Yes, I started from Windows Vista SP2 x64 and integrated x64 Phison driver into boot.wim. I have no idea whats wrong.

@George_King : Are you sure, that you integrated the Win7 driver and not the Win8/10 one?

@Fernando I downloaded and integrated generic 64bit Phison NVMe driver v1.5.0.0 WHQL for Win7 x64

I also tried disable integrity checks, but still without success

1
2
3
4
5
 
bcdedit /store "%ISO%\boot\bcd" /set {default} integrityservices disable
 
bcdedit /store "%ISO%\boot\bcd" /set {default} nointegritychecks on
 
bcdedit /store "%ISO%\boot\bcd" /set {default} loadoptions DDISABLE_INTEGRITY_CHECK
 

Try using a different driver. There are plenty of standard NVMe drivers out there.

@Aquavision : There are only a very few generic NVMe drivers available and the MS Win10 in-box NVMe driver cannot be used with Vista and W2k8.

@George_King : My advice is to try one of the various OFA NVMe drivers. Unfortunately I have currently no access to my big OFA driver archive.

@Fernando

I tried more methods and drivers.
1) Integrating untouched Generic Windows 7 NVMe driver, only INF is modded, but it is without .CAT from begining.
2) Ported Generic NVMe driver from Windows 8.1 for Windows 7, which work well in Windows 7 x64 boot.wim, so this file seems to be correctly signed
3) I resigned ported Windows 8.1 with SHA1 using canoncongs signing tools, these drivers can be integrated into Windows 7x64 again without problem
4) Ported Generic NVMe driver for Windows XP
5) M. Phison NVMe Drivers for Windows 7

All these tries on Vista ends with errors I posted above.

On x64 system it seems like problem is not with driver signing, but in file integrity checking and it ignores all my setting to disable them. I have few ideas about replacing winload.exe in boot.wim with Vista RTM (or maybe with Windows 7 RTM one this is blind tip and more problems can occur) one as I found some informations here

1
 
https://techjourney.net/unable-to-disable-integrity-checks-cause-driver-files-not-found-in-64-bit-windows-vista-x64/
 

And in this PDF
1
 
https://www.mediafire.com/file/rnhchuf1tuyz9th/Windows+Vista+Kernel-Mode+Functions,+Security+Enhancements+and+Flaws.pdf/file
 



I will try it on x86 system too, to see difference. If it will works in x86 system then is needed something to do with drivers SYS files itself - it must be only SHA1 signed or with SHA1 + SHA256 as ported USB3.x driver is. Or develop a patch for winload.exe to completely ignore this file checking - responsible functions are mentioned in uploaded PDF


Every idea how to achieve is welcome, maybe I'm missing some importat point...

@Mov_AX_0xDEAD

I decided to port Windows 7 NVMe drivers for Vista using your EMU Extender.

I grabbed original files for both x86 and x64.

Here are steps what I did

1) Grabbed files - stornvme.inf + stornvme.sys + storport.sys
2) followed instructions on github to modify storport.sys - replaced ntoskrnl.exe with ntoskrn8.sys and replaced HEX strings for MSI interrupts.
3) renamed storport.sys to nvmeport.sys to avoid conflict with original Vista storport.sys
4) modified stornvme.sys to look for nvmeport.sys instead of storport.sys
5) open and saved modifed files with Resource Hacker to fix checksums
6) modified INF to install all needed files automatically

Then I tried to test it
1) Installed Vista Ultimate SP2+ x86 build 6.0.6003.21115 (05-2021) created by my unreleased beta version of Vista / Server 2008 Update Pack into VirtualBox.
2) Loaded stornvme.sys in Depency Walker to see how it goes. All seems good now



So I decided to inject this driver into boot.wim, but it hangs on boot screen - black infinife screen.
Then I excluded MSI interrupts HEX replacement in nvmeport.sys (storport.sys), and now system boot without problem, but no disk drives detected. I have attached NVMe one in VirtualBox. So now I tried to use Depency Walker in WinPE to see whats wrong. Seems like hal.dll is missing so I grabbed halmacpi.dll and placed it in drivers folder and renamed to hal.dll, now is everything good in Depency Walker, but NVMe drive is still not detected.

Instead of boot.wim integration I tried to attach NVMe drive to installed Vista in VirtualBox. I manually selected driver, then it was installed, but it has yellow triangle on it. But maybe it’s related to VirtualBox. I cannot try it on real HW now. I will get PCI-e NVMe expansion card + 128GB NVMe in 5 days. All depends on seller.


x64 Driver still have some missing imports in ntoskrn8.sys


And if I try to integrate it, it still hangs on “file is corrupted or missing” on x64 system.


Both ntoskrn8.sys are compiled by @infuscomus


Here are used driver files, Phison and Windows 7 Generic in both architectures, modded and untouched.

1
 
https://www.mediafire.com/file/rwf8bdlbgt71m9h/NVMe_Vista_x86_x64.zip/file
 


NOTES:
1) Manually installed Windows 7 NVMe modded driver doesn't work, but system is bootable.
2) Phison driver also doesn't work and system is unbootable with "file is corrupted or missing" on nvme.sys


Can you please have a look on it? It would be nice to have Generic NVMe drivers in Vista too.


And here are integrated images with all updates and ported USB3.x + UASP drivers for testing. Only these two ported drivers are integated!
WinVista_Ult_SP2+_English_x86_WIM_6.0.6003.21115.iso
1
 
https://www.mediafire.com/file/7yq24alziahhnym/WinVista_Ult_SP2+_English_x86_WIM_6.0.6003.21115.iso/file
 


WinVista_Ult_SP2+_English_x64_WIM_6.0.6003.21115.iso
1
 
https://www.mediafire.com/file/oq7jcetx9hxw7dq/WinVista_Ult_SP2+_English_x64_WIM_6.0.6003.21115.iso/file
 


If you want to integrate these modded drivers into Vista you need to use peimg.exe just grab it here.
1
 
https://www.mediafire.com/file/pcasg4h6goq82p6/Vista_WAIK_tools.7z/file
 


WIMs can be mounted using DISM without problem. Then integrate driver. Command example
1
 
peimg.exe /inf="C:\Windows7_NVMe_x86_x64\x64_signed\stornvme.inf" /image="%IMAGE%"
 



@daniel_k These images inlude your ported USB3.x drivers. Images have properly integrated files and registry entries from KB2864202 in boot.wim too. In install.wim is integrated everything possible. I noticed weird thing in x86 version during first boot of deployed system.
When I try to install it in VirtualBox in XHCI mode, first part of setup is finished correctly. After first reboot all seems good but it encounter BSOD after some time.
BSOD 0x0000007F (0x0000000,0x82655C00,0x0000000,0x0000000)

I changed XHCI to OHCI, EHCI and then installation works without problem.
On x64 version this problem doesn't exist and I can install in XHCI mode without problem.
Do you have any solution for x86 driver? I still doesn't tried it on real HW, only VirtualBox.


Many thanks for your work!

@George_King
My ported XHCI drivers have no bugs, were extensively tested on real HW and VirtualBox.
Probably there is something wrong with integration of KB2864202 or drivers.

Screenshot below taken right now with my Sandisk pen drive connected to VirtualBox. No problems at all.

VirtualBox.png

@daniel_k Drivers work well on installed system. This happends only during setup when are enabled XHCI controllers. if I enable it after setup it works without problem.



Have you tried same scenario on your side? Integrated image with all updates, KB2864202 is not needed as is supeseded with newer one KB5003210 - latest rollup thats my scenario and also this have integrated posted ISOs. Also integrated USB3.x and UASP that you posted on MDL. Then create VirtualBox Vista 32bit machine. This BSOD occured on my side only on 32bit image, 64bit have same integration process and works without problem. Thats why I’m asking if you encountered too. I’m using VirtualBox 6.1.22. It should be related to VirtualBox version of course. Real HW tests come soon on my side.


No and I have absolutely no intention of debugging it and eventually fix it (if possible at all).
Would Vista at least work properly on modern systems I’d support it, just for fun, but sadly it doesn’t, its situation is far worse than XP.

Sorry, but I’m only interested on XP and 7 or later.