Recommended AHCI/RAID and NVMe Drivers

@Fernando
After OFA NVMe driver installation my system X99 was not booting properly.
I have had to use the "F7" key procedure (ignore driver signature) to get the PC booting, and then do run ANVIL test for the pure DATA SSD 970PRO 512GB device.
Why this problem ?
As the 970PRO ANVIL score was not better than when Samsung driver is used, I decided to reinstall Samsung v3.0 driver.
Samsung driver reinstallation was OK, but the PC reboot did not work even with the Samsung driver installed.
I have had to full restore the SSD system to come back to a normal boot situation.

@100PIER :
Thank you for your report. After having read it I have removed the OFA NVMe drivers completely from this thread.
I am very sorry about your inconveniences!
The problem to boot and to reboot into Win10 is obviously caused by the code of the OFA NVMe driver itself (nvme.sys) and cannot be solved by any modification of the related INF file. The OS Win10 checks the in-use driver of the Storage Controller during each booting process and sees OFA’s nvme.sys file as not being correctly digitally signed (although the Device Manager shows the signature as being ok). I will continue my tests.
By the way: I was always able to boot into my OS (even after having re-installed any other NVMe driver) by hitting the F7 key while using the “Startup Options”.

Thanks Fernando, we have to wait for a new version of a OFA nvme.sys file be correctly digitally signed.

@100PIER :
Meanwhile I found the reasons for our (re)boot problems after having installed the OFA NVMe driver:

  1. The version, which has been written by the OFA developers into the associated INF file of the OFA NVMe drivers and shown by the Device Manager as driver version (v1.5.0.0), doesn’t match at all the version of the related SYS file, which is the real driver.
  2. The OFA developers obviously copied and pasted some important code from Microsoft’s in-box NVMe driver named of stornvme.sys, which is within the Win7 NVMe Hotfix, which is provided by Microsoft.

You can verify it, when you compare the below pictures I have taken from the details
a) of the original generic OFA driver v1.5.0.0 named nvme.sys (left Pic) and
b) of the original generic MS Win10 v1803 in-box NVMe driver v10.0.17134.1 named stornvme.sys (right picture):



The code of the SYS file has to be freshly compiled by the OFA team.

@Fernando
Thanks for your investigations.
So, at the moment I have to come back to the standard NVMe driver v10.0.17134.81 or Samsung driver v3.0.0.1802 until OFA team does produce a correct NVMe driver.
I do observe my Samsung 970PRO device is stricly conformant to NVMe v1.3 standard, may be OFA team should produce a v1.3 Family branch instead to use a v1.2 Family branch ?
I ignore if a "Community OFA NVMe 1.3 Storport Miniport" is available.

Hello

I installed a new brand M.2 NVMe SSD with a PCI-E adapter. My motherboard is a MSI 970-G43 PLUS.
It boots well with Windows 10. All runs fine.
What drivers I have to install? Since the chipset is AMD, I think the best option is AMD NVMe Drivers but mine is not a X399 chipset…
Any clue?
Thanks

@snowind :
The choice of the “best” NVMe driver depends on the VendorID/DeviceID of the NVMe Controller (and not on the manufacturer and model of your mainboard).
Which is the name and which are the HardwareIDs of the currently working NVMe Controller?

@Fernando

PCI\VEN_126F&DEV_2263&SUBSYS_2263126F&REV_03

This is the info you need? Thanks

@snowind :
Since the manufacturer of your NVMe SSD doesn’t offer any specific NVMe driver for its NVMe Controller, you have no choice - the only NVMe driver, which is compatible with the NVMe Controller of your SSD is the generic Microsoft Win10 in-box NVMe driver.

Would you please sign the OFA driver 1.5 for windows7 x64?
I only found the signed OFA driver for windows10 in your onedrive.
Native driver(KB2990941) doesn’t support SMART while the original OFA driver requires test mode on.

Thanks

@ShadowLink :
Welcome to the Win-RAID Forum!

For which purpose do you need it? I doubt, that you will be able to get Win7 properly installed onto an NVMe SSD by using such mod+signed NVMe driver.
Another question: Where can I get an original OFA NVMe driver v1.5 named nvme.sys for Win7?
I haven’t yet seen any OFA NVMe driver, whose version is shown as being v1.5 by doing a right-click onto the SYS file and choosing the options “Properties” > “Details”. All these nvme.sys files seem to be natively compiled by Microsoft.
That is why I doubt, that these drivers can be used from scratch with any of Microsoft’s latest Operating Systems, not even after having given them a correct digital signature.

Regards
Dieter (alias Fernando)

Do you mean the detail of an OFA driver indicates that it was compiled by Microsoft so it is unnecessary to be mod+signed?
I guess that the details might be generated by WinDDK as a default value(possibly equals to target OS version).
The nvme driver provided by apacer also shows similar details.

Actually,anyone can change the value by modifying the source code.
Since the file was removed from OFA’s website now and I didn’t download the source code,I’ll take firedisk’s opensource driver for example.
http://reboot.pro/topic/8804-firadisk-latest-00130/
sourcecode–>firadisk.rc

The string is completely equal to the detail page of the compiled firadisk.sys.

BEGIN
BLOCK “StringFileInfo”
BEGIN
BLOCK “040904b0”
BEGIN
VALUE “CompanyName”, “Karyonix\0”
VALUE “FileDescription”, “FiraDisk Virtual Disk Driver\0”
VALUE “FileVersion”, PROGRAM_VERSION_STRING “\0”
VALUE “InternalName”, “firadisk\0”
VALUE “LegalCopyright”, “Copyright 2009-2011 Panot Joonkhiaw\0”
VALUE “OriginalFilename”, “firadisk.sys\0”
VALUE “ProductName”, “FiraDisk\0”
VALUE “ProductVersion”, PROGRAM_VERSION_STRING “\0”

END
END
BLOCK “VarFileInfo”
BEGIN
VALUE “Translation”, 0x409, 1200
END
END

if these lines were deleted,the detail of the compiled sys file might contains the information like an OFA driver.

If you are not wiling to make the OFA driver mod+signed.
Could you give me some advice about what I can do so that the driver would be loaded by Windows kernel without test mode?
I feel that disabling DSE and Patchguard may make the system unstable,but win7’s native nvme driver stornvme.sys won’t shows any SMART info including the temperature.
I have to monitor the temerature since the ssd is installed on a laptop where nothing could be installed to protect the ssd from overheating.

@ShadowLink :
Apart from the fact, that I generally do not sign any driver upon request, I don’t want to offer any mod+signed driver, which may cause severe problems (e.g. an unbootable system while trying to reboot).
According to my own experience even my mod+signed variants of the latest OFA NVMe drivers v1.3 and v1.5 do not work properly. Although the mod+signed driver is shown by the OS as being correctly digitally signed (contrary to the OFA test mode signature), I got the “Automatic Repair” message from the OS (Win10 x64) at each reboot. This indicates, that the OS doesn’t trust such storage driver, when it is in-use by the “Windows Boot Manager”.
What we need is an nvme.sys file, which is completely open source. Manufacturer and version of the SYS file and its associated INF file should be identical.

You should be able to replace the OFA test mode driver by any NVMe driver, which natively supports the NVMe Controller of your specific NVMe SSD.

Thanks for your explanation.

Currently,I have no choice but to use OFA driver and enable test mode since western digital doesn’t offer their specific driver.

I plan to demand a refund and buy a PM981 or SM961 which has official win7 driver. o(╥﹏╥)o

Hello Dieter/Fernando:

First, I just wanted to thank you for both past and future help. I last encountered your work when I needed BIOS updates for older Athlon 64 machines, and you had them when the industry had passed them by. I believe I’m still running that update on a server down in the basement. So, thanks for that. And for the education in this and related threads.

Now I have picked up a new XPS 13 Dell laptop – a 9360 – the one generation old form factor, but with the new 8550 cpu. New form factor made the old model too cheap to pass up. This has the Toshiba NVMe Drive at 256gb, running the expected (now that I’ve been reading here) microsoft controller driver. I’ve updated to the lastest BIOS, updated Intel RST, and updated the drive firmware – all without incident, and all without making much difference in performance (presumably this is mostly about write caching).

I also used the bcdedit procedure to swap to AHCI mode, and after using it again to force windows into a mode where it would allow me to install unsigned drivers (which is how it saw both your update of the OCZ drivers for the Toshiba and the OpenFabrics drivers – not sure why; Windows as nanny state perhaps?). The results were good with both, with the OCZ driver having a bit of an advantage in the 4k low Queue depth department – performance about doubled on the standard crystal diskmark 4KiB Q1T1 test segment. Have some results at home I can post if folks are interested. Presently running RD400 OCZ driver.

But, the drive is 256Gig, and I want to keep the machine a while, so space is an issue. Now I’m seeing very good prices on the HP EX920 1tb. Maybe too good to pass up. It appears that there’s no proprietary driver for these . . . at least no obvious one. Which, now that I’ve worked along to this point with the Toshiba, leads to:

First question, is there and alternate driver for the Silicon Motion SM2262 8-channel controller in the HP? It does look like Intel’s 760p uses the same controller, so we might have an analog of the Toshiba/OCZ situation that would allow testing alternative drivers???

Second question. It looks like you removed the OpenFabrics drivers, but they appeared to work for me. Particularly if there’s no specific driver, are they likely to be back, so that we can enable the write cache on the HP drive? Even if the OFA team has some issues at present (I think I saw a note that you removed the drivers for the time being) the fact that they might come later would still be useful to know if they’re likely to work with this drive.

If not, I may go for this anyway. Need the space, and the speed looks pretty good too (size really seems to help performance on the NVMe SSDs).

Sale ends shortly (of course!), so I may have to decide before I hear back. But any thoughts would be appreciated.

Best Regards,
Mike

Annandale, VA (US)

@Rowebo :
Hello Mike,
welcome to the Win-RAID Forum!

Here are my answers to your questions:

  1. The option to choose between different sorts of NVMe drivers depends on the NVMe Controller of the NVMe SSD. So I need the HardwareIDs of the related Controller to give you an exact answer. Regarding the HP EX920 SSD I doubt, that you will be able to use any other than a generic NVMe driver (either the MS Win10 in-box or the OFA NVMe driver).
  2. Yes, I have removed the download links to the OFA NVMe drivers, which have been mod+signed by me, because I didn’t get any positive feedback from the users and I had problems myself while testing them (had to choose the “Advanced Startup Settings” and to press F7 while rebooting). Furthermore I don’t want to get any conflict with Microsoft, which is the real maker of the source driver.

If you should be not satisfied with the performance of your NVMe SSD, I recommend to read my tips, which I have layed down within the start post of >this< thread.

Good luck!
Dieter (alias Fernando)

Dieter:

Most helpful. Thanks. I’ll look a bit, but even with the Microsoft Driver, this drive is so much bigger/faster and so cheap that I may have to try it. Even without the improved drivers, it looks to be much faster – which is really just a bonus, as space on the drive in the primary issue.

If I were to keep poking around, can you describe the “hardware IDs” you have in mind? Presumably that means that “Silicon Motion SM2262” is insufficient – perhaps a family of controllers? So are we down to reading the silk screened IDs on the chip . . . and what do we need? If I knew what to look for, this might be an interesting quick project.

Either way, thanks very much for the quick response and for all you help.

Mike

@Rowebo :
To get the HardwareIDs of your SSD’s NVMe Controller you don’t have to open the PC case. Just run the Device Manager, expand the section “Storage Controllers”, do a right-click onto the listed NVMe Controller and choose the options “Properties” > “Details” > “Property” > “HardwareIDs”.

Ah . . . THOSE hardware IDs. OK. Having read reviews during a late lunch, it looks as if Intel and HP have their own custom firmware, so this may not work. But we’ll see.

Now I just need to see if the double sided board will fit in the XPS. Thanks much for the help. Even if I do this, it will help with the Toshiba drive, which will soon find a new home, I’m sure.

Mike