Devices represent input devices. Input devices can be focused to specific displays.
The information and state variables associated with each input device is stored in memory allocated when the device is created with screen_create_device_type(). You need to be within a privileged context to be able to create input devices. You can create a privileged context by calling the function screen_create_context() with a context type of SCREEN_INPUT_PROVIDER_CONTEXT. Your process can have an effective user ID of any type to create this context.