A virtual device uses the following services and callback functions to receive notifications and perform operations when the processor switches to a different thread or task.