USB peripherals arbitration on macOS

The DiskArbitration framework on macOS provides a simple way to intercept volumes mounts and authorise it or not using DARegisterDiskMountApprovalCallback.


I'm looking for something similar for all the other USB devices like HID devices, network interfaces and in general every USB peripheral.


I'm moving in the direction of IOKit: Introduction to USB Device Interface Guide and I can see how to communicate with a USB device but I can't find anything similar to an arbitration mechanism.


Any idea? I would like to avoid Kernel extensions, especially with Catalina were installing them requires a reboot.


Thanks