XListDeviceProperties man page
XListDeviceProperties — List a device's properties.
Atom* XListDeviceProperties( Display *display, XDevice *device, int *nprops_return);
display Specifies the connection to the X server.
device The device to list the properties for.
nprops_return Specifies the number of Atoms returned.
The XListDeviceProperties function returns a list of the properties associated with the input device specified in device. Each device may have an arbitrary number of properties attached, some of which were created by the driver and/or server, others created by clients at runtime.
The client is expected to free the list of properties using XFree.
XListDeviceProperties can generate a BadDevice error.
BadDevice An invalid device was specified. The device does not exist.