SCSIControllerDriverKit
Develop drivers for SCSI protocol-based devices.
Overview
The SCSIControllerDriverKit framework supports the development of DriverKit extension (dext) drivers for devices that communicate using SCSI protocols.
Develop your driver by subclassing IOUserSCSIParallelInterfaceController, overriding all methods the framework declares as pure virtual. Then package your driver in an app that uses the System Extensions framework to install and upgrade the driver on a Mac.
Creating a driver
When you subclass IOUserSCSIParallelInterfaceController, update the IOKitPersonalities key of your driver extension’s information property list file with information to match your driver to appropriate hardware. For this class, always include the keys and values in the following table:
Key | Value |
|---|---|
| The bundle ID of your driver |
|
|
|
|
| The name of your custom dext class, a subclass of |
| The bundle identifier of your driver, such as |
|
|
In addition to these required keys, you can include key-value pairs as needed.
The following example shows a minimal entry for the IOKitPersonalities key in the information property list:
<key>IOKitPersonalities</key>
<dict>
<key>ExampleDext</key>
</dict>
<key>CFBundleIdentifierKernel</key>
<string>com.apple.iokit.IOSCSIParallelFamily</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>IOClass</key>
<string>IOUserSCSIParallelInterfaceController</string>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
<key>IOUserClass</key>
<string>YourDextClassName</string>
<key>IOUserServerName</key>
<string>com.example.dextname</string>
</dict>
</dict>
</key>