We are developing an application to manage NVME
Devices in Windows 10. We are not supposed to use our own driver to talk to drives, so for sending most of the commands, we have to rely on whatever is available from Windows 10.
For commands like Security Receive
and Security Send
, we are using their support of SCSI-NVME
Translation, in which a SCSI command is sent from the host and is translated to NVME
command by the SCSI kernel stack, and then sent to the drive.
We can see the commands are reaching the drive, but the translation is not able to send the correct namespace identifier to the drive in case of the Security Receive
command, and therefore, SCSI is returning a error in sense data as Access denied, Invalid LU Identifier
.
SCSI-NVME translation does not allow setting a namespace identifier field in its CDB. Is there any other way for setting this namespace identifier in the SCSI command that we are sending from the host side? Or is this a driver error that its sending incorrect data to the drive?
Other APIs of Microsoft (like Storage Query Property) set this namespace ID by themselves, and we don't have to set this from user side.
If anybody who has worked in similar kind of environment, can help us out, it will be very helpful.