Well, that turned out pretty easy. Your IOKit service is (in fact) inherited from the IOService class, which in turn inherits from IORegistryEntry, which represents an instance of your service record in IORegistry and provides the setProperty \ getProperty method family to add \ change \ delete your own fields in the IORegistry record for your service.
IORegistry in a database in memory, which, of course, is programmatically accessible from the user space, where you search to enter the service and read the information published by it.
source share