RemoteSystemSessionInfo RemoteSystemSessionInfo RemoteSystemSessionInfo RemoteSystemSessionInfo RemoteSystemSessionInfo Class


Contains identifying information about a remote session.

public : sealed class RemoteSystemSessionInfo
struct winrt::Windows::System::RemoteSystems::RemoteSystemSessionInfo
public sealed class RemoteSystemSessionInfo
Public NotInheritable Class RemoteSystemSessionInfo
// This class does not provide a public constructor.

Windows 10 requirements

Device family
Windows 10 Creators Update (introduced v10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v4)


See the code example below for the full process of discovering a remote session (including obtaining a reference to a RemoteSystemSessionInfo instance).

// Discover an existing shared experience.
public void DiscoverExistingSessions() {
    // create a watcher for remote system sessions
    RemoteSystemSessionWatcher sessionWatcher = RemoteSystemSession.CreateWatcher();
    // register a handler for the "added" event
    sessionWatcher.Added += async (sender, args) => {
        // get a reference to the info about the discovered session
        RemoteSystemSessionInfo sessionInfo = args.RemoteSystemSessionInfo;
        // update the UI with the sessionInfo.DisplayName and 
        // sessionInfo.ControllerDisplayName strings. Save a reference to 
        // this RemoteSystemSessionInfo, to use when the user selects
        // this session from the UI
    // Begin watching

Once a RemoteSystemSessionInfo reference has be acquired, it can be used to issue a join request. See the code example below for the process of joining a remote session.

public async void JoinExistingSession() {
    // request to join. sessionInfo has already been selected by user.
    RemoteSystemSessionJoinResult joinResult = await sessionInfo.JoinAsync();
    // process the result
    if (joinResult.Status == RemoteSystemSessionJoinStatus.Success) {
        // if the join was successful, acquire a reference to the session
        currentSession = joinResult.Session;
        // optionally handle the disconnected event
        currentSession.Disconnected += async (sender, args) => {
            // update the UI, using args.Reason
        // update the UI with the session.DisplayName and 
        // session.ControllerDisplayName strings. Save a reference to 
        // this RemoteSystemSession, to use when the user selects
        // this session from the UI

    } else {
        // join request failed. optionally update UI


A session that has been joined is represented by a RemoteSystemSession object. A session that is known about but has not been joined is represented by a RemoteSystemSessionInfo object.


ControllerDisplayName ControllerDisplayName ControllerDisplayName ControllerDisplayName ControllerDisplayName

Gets the machine name of the device that is the controller of the remote session.

DisplayName DisplayName DisplayName DisplayName DisplayName

Gets the public-facing name for the remote session, given by the controller of the session.


JoinAsync() JoinAsync() JoinAsync() JoinAsync() JoinAsync()

Issues a request from the calling device to join the given remote session.