Post

Replies

Boosts

Views

Activity

Reply to How to sending capability requests.
I understand that it is not necessary to include this com.apple.developer.driverkit.allow-any-userclient-access in the driver's Entitlements. I have a new question: I include Capabilities in the Provisioning Profile that might not be used, just in case. If I don't list all these Capabilities in the driver's Entitlements, will it cause the driver to behave abnormally? To issue vendor-specific commands, I created a driver class inheriting from the IOUserSCSIPeripheralDeviceType00 class in the SCSIPeripheralDriverKit Framework. I then created a UserClient inheriting from the IOUserClient class to access it from the app, but IOServiceOpen fails with code 0xe00002d7 and cannot open. The driver's entitlements are as follows. <key>com.apple.developer.driverkit.transport.usb</key> <true/> <key>com.apple.developer.driverkit.family.scsicontroller</key> <true/> <key>com.apple.developer.driverkit.communicates-with-drivers</key> <true/> <key>com.apple.developer.driverkit.allow-third-party-userclients</key> <true/> <key>com.apple.developer.driverkit</key> <true/> And in the driver's Info.plist, the following definitions are specified. <key>IOKitPersonalities</key> <dict> <key>SampleDriverKitDriver</key> <dict> <key>CFBundleIdentifier</key> <string>${PRODUCT_BUNDLE_IDENTIFIER}</string> <key>CFBundleIdentifierKernel</key> <string>com.apple.kpi.iokit</string> <key>IOClass</key> <string>IOSCSIPeripheralDeviceType00</string> <key>IOProbeScore</key> <integer>20000</integer> <key>IOProviderClass</key> <string>IOSCSIPeripheralDeviceNub</string> <key>IOResourceMatch</key> <string>IOKit</string> <key>IOUserClass</key> <string>SampleDriverKitDriver</string> <key>IOUserClientClass</key> <string>SampleDriverKitUserClient</string> <key>IOUserServerName</key> <string>${PRODUCT_BUNDLE_IDENTIFIER}</string> <key>Peripheral Device Type</key> <integer>0</integer> <key>Vendor Identifier</key> <string>[write Device Vendor Name]</string> <key>Product Identifier</key> <string>[write Device Product Name]</string> <key>UserClientProperties</key> <dict> <key>IOClass</key> <string>IOUserUserClient</string> <key>IOUserClass</key> <string>SampleDriverKitUserClient</string> </dict> </dict> </dict> I suspect the code isn't written correctly to generate the UserClient. Is there anything wrong with the code?
Nov ’25