How to get access of Admin Submission/Completion queues for NVMe devices from any driver or user space application to submit Admin command ?

Few user space applications are available in market for example xnvme, but does not have any interaction with Admin Submission/Completion queues. Also IOCTLs are not very prominent . Is there any ways to get access to the native NVMe Mac driver source code?

Thanks, hopefully we will get some positive response here.

Hi, I do actually have a work-in-progress NVMe driver for xNVMe based on Driverkit.

At the moment, it's only doing one command at a time (queue depth = 1), and blocks until the command returns. It's plenty fast for prototyping, but not for any high performance work. I hope to make it async and much, much faster in the future, but this is at least a proof-of-concept.

I need to fix up the memory management before I feel confident in releasing the first beta version. I'll take a look at it tomorrow.

What is your use-case? Maybe you can come to the xNVMe Discord server and we can discuss what you are looking for.

The NVMe driver is now released, and supports larger queue depths and is much, much faster now (benchmarking 1000k IOPS) https://github.com/OpenMPDK/MacVFN

I had briefly seen this program before, and then I saw the flaws of this project. You cannot access your NVMe SSD through the file system in MacOS. You can only read and write your NVMe SSD through the NVMe test program written by IOUserUserClient. Such restrictions cannot meet the needs of ordinary users. Unless it evolves into /SCSIControllerDriverKit/IOUserSCSIParallelInterfaceController.

How to get access of Admin Submission/Completion queues for NVMe devices from any driver or user space application to submit Admin command ?
 
 
Q