What is could spawn tons of processes called AppleUserHIDDrivers over and over

I see 18 instances of the process AppleUserHIDDrivers running on my MacOS, according to the activity monitor, belonging to the user _driverkit. The parent process is listed as launchd. What could be causing this? I'm running MacOS 10.15.4 I rebooted recently so these didn't accumulate over a long period of time. I believe HID is input devices. I do have a wired/wireless keyboard, wired/wireless mouse, external monitor that accepts USB uplink for input devices, and wireless headsets. I don't have 18 different input devices, though. What could spawn so many processes of the same name or how might I track it down better?


Solution 1:

HID stands for Human Interface Device, so you are correct, these are basically device drivers meant for any kind of input (or potentially also output) devices.

However, it's not always so simple to associate what one would call such a device and what the computer considers to be one.

For example, the touchbar on a MacBook is listed separately from the keyboard in the system profiler. So, are keyboard and touchbar one input device or not (I just use this as an example, since both are "default devices" on a MacBook I am not sure whether they spawn HID driver processes, I suspect not).

So, it's possible that your headset or any other device spawn more than one HID process, as they consist of multiple "technical" devices. Some might even be spawned by built-in interfaces of the Mac, meaning even a brand-new machine with the minimum of peripherals has more such processes as the number of peripherals you actually see laying on your desk. There could also be a hierarchy causing such "multiple" spawns (one process handles the more generic features of a device, while another handles more specialized things, think audio output of a headset versus input buttons it has to start/stop Music playback). I'm not sure exactly how this works as I have not written any drivers myself, but from what I recall that's very much possible (I am a mac and iOS developer).

I don't think there's an easy way to see which devices spawn which processes, but there's really no need to do that. The system loads them as needed (that's why you see launchd as their parent, that's your system's root process).

18 is a totally okay number of processes. I have 16 atm, and not many devices connected either.