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) 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
If you want to integrate these modded drivers into Vista you need to use peimg.exe
just grab it here.
WIMs can be mounted using DISM without problem. Then integrate driver. Command example
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!