Intel 750 Series’ NVMe Commands

This time, I’ll talk about Intel 750 Series’ NVM Express Admin Command.

  1. Passthrough

By now(Dec 2015), there’s no official way to do NVMe Passthrough.
So Intel 750 Series use the way that used by nvmewin. To try NVMe passthrough to nvmewin-like driver, see this document.

Above document says \\.\scsi address is needed to passthrough. You need to change PhysicalDrive%d address into SCSI%d address.
Fortunately, IOCTL_SCSI_GET_ADDRESS can do that.

After that, you’ll face the 1117 error. You need to get enough buffer. 4Kbytes will be enough.

2. Identify

It’s easy to send Identify command. One of the Intel way’s advantage is, you can use the same NVM express command structure.
NVM express 1.0 and Intel P3700 Series document will be helpful for you. Because Intel 750’s spec doc has some omitted information, that of P3700 is better.

3. Get Log Page

As same as Identify command, NVM express 1.0 and Intel P3700 Series document will be enough for it.
Beware that you need to double-check the MaxNUMD parameter when you set Log Identifier. Samsung 950 Pro doesn’t checks MaxNUMD. But Intel driver checks MaxNUMD.
So if not set properly, you’ll get abnormal output.

4. Vendor Specific Log Page

One of the feature of Intel NVM express is, Vendor Specific Log Pages.

Temperature(C5h)
There’re eight fields. They’re all 8byte-long.

Additional SMART Attributes(CAh)
It’s in the same format as ATA SMART.

5. Full version source

Delphi
C++

Leave a Reply

Your email address will not be published. Required fields are marked *