Identify virtual device

Is there a way to identify that a device assigned is virtual?
I’d like to understand when the player is controlled with the gamepad that was created for the on-screen buttons

Those devices in particular have the “OnScreen” usage tagged onto them. For example, in a binding “{OnScreen}/buttonSouth” would specifically bind only to a gamepad created from on-screen controls.

In the API, you can query that from the InputControl.usages property.

if (device.usages.Contains(x => x == "OnScreen"))
   Debug.Log("On-Screen Device!");