Мы разрабатываем приложение для управления NVME
устройствами в Windows 10. Мы не должны использовать собственный драйвер для связи с дисками, поэтому для отправки большинства команд нам приходится полагаться на то, что доступно в Windows 10.
Для таких команд, как Security Receive
и Security Send
, мы используем их поддержку преобразования SCSI-NVME
, при котором команда SCSI отправляется с хоста и преобразуется стеком ядра SCSI в команду NVME
, а затем отправляется на диск.
Мы видим, что команды достигают диска, но трансляция не может отправить правильный идентификатор пространства имен на диск в случае команды Security Receive
, и поэтому SCSI возвращает ошибку в смысле данных как Access denied, Invalid LU Identifier
.
Преобразование SCSI-NVME не позволяет установить поле идентификатора пространства имен в своей CDB. Есть ли другой способ установить этот идентификатор пространства имен в команде SCSI, которую мы отправляем со стороны хоста? Или это ошибка драйвера, который отправляет неверные данные на диск?
Другие API Microsoft (например, Storage Query Property) сами устанавливают этот идентификатор пространства имен, и нам не нужно устанавливать его со стороны пользователя.
Если кто-нибудь, кто работал в подобной среде, может помочь нам, это будет очень полезно.