Windows 10 NVMe Commands

Finally, from Windows 10, NVM Express Admin Command passthrough interface has arrived.

Windows 10 provides two IOCTLs, IOCTL_STORAGE_QUERY_PROPERTY and IOCTL_STORAGE_PROTOCOL_COMMAND. Then you would think that second one would be one-size-fits-all IOCTL, but it’s not. That one can only be used for “Vendor specific” command. Therefore, only three commands in known commands can be used. If you want others, you should use driver specific passthrough interface. I wrote about them in ‘Naraeon NVMe Tools‘ category.

  1. Identify
  2. Get Log Page
  3. Get Features

But there is an issue. Get Features with 07h(Number of Queues) would cause error. In Feb 2017, there is only one driver that correctly get this information. Samsung NVMe driver 2.1. If you have other product and want to get this information, try other methods to passthrough, which provided in ‘Naraeon NVMe Tools‘ category.

Full version source

Delphi
C++ (Identify)
C++ (Get Features)