Hi @ftabrizi
Have you found any solution??
I have tried two types of DEXTs one using USBDriverKit for SCSI protocol and another using PCIDriverKIt for NVMe protocol.
In both case I'm able to get exclusive access to device but in this case volume is not mounting. If for getting exclusive access Open ahs to be used and to release device Close has to be used.
But even if we use Close to release device, machine reboot is required to completely release device into the control of OS Storage stack. Also next time DEXT loads automatically so again Open call will get exclusive access to device so after Close call DEXT deactivation has to be done to completely release device and then reboot.
So this solution does not feel a working solution alternative to KEXT.
Apple has not clarified whether DriverKit can be used for Storage device. Good thing is that custom KEXTs for storage devices still loads and works properly.
My question here to you is that in case of KEXT when you unload your KEXT then how device control goes to OS Storage stack without machine reboot?? Do you reboot your machine??
And if you have find KEXT alternative solution for SCSI and the NVMe protocol then please share the information you have.
It would help others to for migrating from KEXT to DEXT.a
Thanks
Post
Replies
Boosts
Views
Activity
Yes..
I have found the solution. Use IODMACommand .
Apple has no where mentioned that DriverKit and System Extension Entitlement is required for testing system extension.We can still test System Extension by turning off System Integrity Protection.
Hi,Just one clarafication..For compiling and testing purpose, Entitlement is required or not.As per Apple Documentations link given below..Link: https://developer.apple.com/system-extensions/Request an EntitlementIf you plan to deploy drivers built with DriverKit, allow other developers to use your system extensions, or use the EndpointSecurity API, you’ll need to request an entitlement from Apple.While your request is in review, you can test system extensions on your Mac by temporarily turning off System Integrity Protection.So as per my understanding, we just need to disable System Integrity Protection and deploy System Extension.Nowhere it's mentioned that for compiling and building Sytem Extension, Entitlment is required.Let me know whether my assumption is correct or not.Thanks in advance.
Hi,Just one clarafication..For compiling and testing purpose, Entitlement is required or not.As per Apple Documentations link given below..Link: https://developer.apple.com/system-extensions/Request an EntitlementIf you plan to deploy drivers built with DriverKit, allow other developers to use your system extensions, or use the EndpointSecurity API, you’ll need to request an entitlement from Apple.While your request is in review, you can test system extensions on your Mac by temporarily turning off System Integrity Protection.So as per my understanding, we just need to disable System Integrity Protection and deploy System Extension.Nowhere it's mentioned that for compiling and building Sytem Extension, Entitlment is required.Let me know whether my assumption is correct or not.Thanks in advance.
Hi,Thank you for replying. Just for clarafication want to ask below details..I found Entitlment related information as below:Link: https://developer.apple.com/system-extensions/Request an Entitlement----------------------------------If you plan to deploy drivers built with DriverKit, allow other developers to use your system extensions, or use the EndpointSecurity API, you’ll need to request an entitlement from Apple.While your request is in review, you can test system extensions on your Mac by temporarily turning off System Integrity Protection.So as per my understanding, Entitlment is not required for compiling and testing. Just disable your MAC integrity and deploy it for testing.Nowhere it's mentioned that you need Entitlement for compilingand correct me if I'm wrong.. just adding entitlment will not add Macros in project and resolve errors.If you have successfully build the Git sample then please let me know.Thanks.
Hi,1. Question---------------Is DriverKit Entitlment required for compiling/testing a DEXT???Since its clearly mentioned on Apple Website that for compiling and testing it's not required. You can disable integrity and do the same.Link: https://developer.apple.com/system-extensions/Request an Entitlement----------------------------------If you plan to deploy drivers built with DriverKit, allow other developers to use your system extensions, or use the EndpointSecurity API, you’ll need to request an entitlement from Apple.While your request is in review, you can test system extensions on your Mac by temporarily turning off System Integrity Protection.2. Question---------------I'm trying to build one sample example but getting some error.One example is available.There are so may errors/issues still there in below example.https://github.com/knightsc/USBApp1. Class declared in .iig is not refered by .cpp file. (I declared this class in cpp only then I got errors in SDK's header files. unknown types and Semantic issues.)2. IMPL is giving error.3. TYPE is not creating Message ID constant for customIf anyone compiled above example successfully then kindly let me know your XCode Version alongwith SDK version.Thanks in Advance.
Hi,I'm also trying to build one sample example but getting same error as yours.One example is available.There are so may errors/issues still there in below example.https://github.com/knightsc/USBApp1. Class declared in .iig is not refered by .cpp file. (I declared this class in cpp only then I got errors in SDK's header files. unknown types and Semantic issues.)2. IMPL is giving error.3. TYPE is not creating Message ID constant for customIf anyone compiled above example successfully then kindly let me know your XCode Version alongwith SDK version.Thanks in Advance.
There are so may errors/issues still there in below example.https://github.com/knightsc/USBApp1. Class declared in .iig is not refered by .cpp file. (I declared this class in cpp only then I got errors in SDK's header files. unknown types and Semantic issues.)2. IMPL is giving error.3. TYPE is not creating Message ID constant for customIf anyone compiled above example successfully then kindly let me know your XCode Version alongwith SDK version.Thanks in Advance..
I had to change Signing Certificate to Sign to Run Locally. This resolved above errors.But there are so may issues still there in below example.https://github.com/knightsc/USBApp1. Class declared in .iig is not refered by .cpp file. (I declared this class in cpp only then I got errors in SDK's header files. unknown types and Semantic issues.)2. IMPL is giving error.3. TYPE is not creating Message ID constant for customIf anyone compiled above example successfully then kindly let me know your XCode Version alongwith SDK version.Thanks in Advance..