External PCIe based storage device is not getting relinked with SCSI passthrough command

We have a management application which manages security enable and disable for an external PCIe based storage device using Kernel Extension(SCSI Architecture Model Family for External USB Mass Storage devices which deals with IOSCSIBlockCommandsDevice, IOSCSIPeripheralDeviceType00 and IOBlockStorageService)

Now the issue we are facing is when we try to unlock the device using security code (already being set) , we will relink the device using VU command (RelinkBridge). Even-though both the commands are successful , the device is not getting relinked due to which we are not able to use the device for storage.

If someone have faced similar issue or any pointer on how to resolve this issue , it would be helpful.

Thanks in advance.

Answered by DTS Engineer in 861410022

We have a management application which manages security enable and disable for an external PCIe-based storage device using Kernel Extension (SCSI Architecture Model Family for External USB Mass Storage devices which deals with IOSCSIBlockCommandsDevice, IOSCSIPeripheralDeviceType00 and IOBlockStorageService).

FYI, KEXT support has been deprecated for several years and replaced by DriverKit. In your case, that would probably mean building on SCSIPeripheralsDriverKit. If you haven't already, I'd strongly recommend that you begin working on that transition as soon as possible.

Now the issue we are facing is when we try to unlock the device using security code (already being set), we will relink the device using VU command (RelinkBridge). Even though both the commands are successful, the device is not getting relinked due to which we are not able to use the device for storage.

I'm not aware of any issue in the system that would cause what you're describing. Your KEXT has final control over what your device "does", so the next step here would be to take a closer look at exactly what's loading after you reconfigure the device and how that might explain the issue you're seeing.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

We have a management application which manages security enable and disable for an external PCIe-based storage device using Kernel Extension (SCSI Architecture Model Family for External USB Mass Storage devices which deals with IOSCSIBlockCommandsDevice, IOSCSIPeripheralDeviceType00 and IOBlockStorageService).

FYI, KEXT support has been deprecated for several years and replaced by DriverKit. In your case, that would probably mean building on SCSIPeripheralsDriverKit. If you haven't already, I'd strongly recommend that you begin working on that transition as soon as possible.

Now the issue we are facing is when we try to unlock the device using security code (already being set), we will relink the device using VU command (RelinkBridge). Even though both the commands are successful, the device is not getting relinked due to which we are not able to use the device for storage.

I'm not aware of any issue in the system that would cause what you're describing. Your KEXT has final control over what your device "does", so the next step here would be to take a closer look at exactly what's loading after you reconfigure the device and how that might explain the issue you're seeing.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

External PCIe based storage device is not getting relinked with SCSI passthrough command
 
 
Q