NULL is indeed the callback user data, unused here.

The callback is invoked whenever a driver has data to submit to the frontend. How often this happens is entirely dependent on the device. A multimeter might send something once a second; a logic analyzer might send nothing for days, trigger and send a megabyte. In the case of collectd, the multimeter case is the more realistic of course.