Does anyone know how to send the SCSI command to the USB Mass Storage Driver with DriverKit?

Hi


Does anyone know that how to send the vendor SCSI command to the USB Mass Storage device with DriverKit?


The DriverKit and the USBDriverKit has several classes to write the DEXT, but I couldn't find the classes or methods to send the SCSI command to the device.


In the kernel extension, we can send the vendor SCSI command to the USB Mass Storage device by creating the sub class of the IOSCSIPeripheralDeviceType00 and use SendCommand() method. The example of this code is available at:


https://developer.apple.com/library/archive/qa/qa1179/_index.html#//apple_ref/doc/uid/DTS10001708


But the KEXT will be not loaded in the future system.


Thanks.

Replies

I also have such problem.
After Apple announcing the SCSIControllerDriverKit, there seems to be no way to do such functionality.

Hope someone will know how to do it in DEXT.
Hi, my dear friend,have you solved this problem?
Hi,

It seems that the DriverKit doesn't support it in Big Sur yet.
I found the comment below.

There is no support for IOSCSIArchitectureModelFamily classes like IOSCSIProtocolInterface in DriverKit yet. Support will be added in a future release.

From:
https://developer.apple.com/forums/thread/650611?answerId=616563022#616563022


There's a new SCSIPeripheralsDriverKit framework in macOS Ventura. But I can't mach my simple dext with any attached device. There's no info about required entitlements and values of IOKitPersonalities in the docs.