通过DeviceIoControl发出NVMe Read命令

时间:2016-09-23 15:58:11

标签: c windows system

我试图从我的NVMe SSD读取1块数据。我将NVMeCmd设置如下:

NVMeCmd[0] = 2;  //OPC = 2 for I/O Read
NVMeCmd[1] = 1;  //NSID = 1
NVMeCmd[6] = &pMyBuffer[0];  //Set PRP1 to address of buffer
NVMeCmd[10] = 0;  //Start LBA = 0
NVMeCmd[12] = 0;  //1-block read (it is 0-based counting)

我还在NVME_PASS_THROUGH_IOCTL结构中设置了QueueID = 1(我已经验证我有11个I / O提交队列和1个I / O完成队列。

但每次我向DeviceIoControl发出此命令时,:: GetLastError()都会返回0x45D(即"由于设备I / O错误,请求无法执行)。

Thanxs提供任何帮助!

0 个答案:

没有答案