Described is an architecture by which application programs can provide
data to auxiliary display devices of essentially any type for display to
a user. A defined application layer (e.g., accessed via interfaces)
allows programs to provide data to a service that controls the output of
data to an auxiliary display device, and returns navigational data to the
application upon appropriate user interaction with the device via
actuators. Enumeration allows applications to discover the capabilities
of a device, while arbitration determines which application has
input-output rights to the device. The architecture further provides a
protocol layer including pluggable protocol proxies that allow various
types of displays to serve as an auxiliary display. This platform-like
model allows program developers the ability provide programs that
leverage auxiliary displays when available, and provides display
manufacturers the ability to provide displays with extensible
capabilities.