I'm gonna venture a calculated guess that the Common Unix Printing System polls the system using dmesg, or dbus?
https://www.openprinting.org/downloa...onnections.pdf
says this:
The backends do not only send data to the appropriate devices. They are also called when CUPS
is started. They autodetect which printer models are connected to which ports.
But it doesn't say how auto-detect is accomplished. And only mentions parallel ports and bi-directional
communications.
Another decent reference is
https://wiki.gentoo.org/wiki/Printin...nter_.28USB.29 which only says
USB support enabled as some printer drivers require the usblp kernel module.
and mentions dbus on that page as an option for "emerge" (their package manager)
So, I conclude dmesg and/or dbus.
Kernel module stuff all gets 'trapped' by dmesg.
I hope that's helpful.
See also the API references at
http://cups.org/documentation.php/doc-2.1/api-cups.html