XGameStreamingUnregisterClientPropertiesChanged

Unregisters a previously registered XGameStreamingClientPropertiesChangedCallback.

Syntax

bool XGameStreamingUnregisterClientPropertiesChanged(
         XGameStreamingClientId client,
         XTaskQueueRegistrationToken token,
         bool wait
)

Parameters

client   _In_
Type: XGameStreamingClientId

The streaming client to unsubscribe to property change notifications from. This ID is typically obtained as a parameter to the XGameStreamingConnectionStateChangedCallback.

token   _In\
Type: XTaskQueueRegistrationToken

The registration token provided by XGameStreamingRegisterClientPropertiesChanged for the callback which should no longer be fired.

wait   _In_
Type: bool

If wait is set to true, XGameStreamingUnregisterClientPropertiesChanged will not return until both the registration has been revoked and any outstanding callbacks have completed.

If wait is set to false, XGameStreamingUnregisterClientPropertiesChanged will return as soon as the registration has been revoked. Although no new callbacks will be delivered, an in progress callback may still be executing when the function returns.

Return value

Type: bool

Returns true if the unregistration was successful, false if it did not succeed.

Remarks

Note

This function isn't safe to call on a time-sensitive thread. For more information, see Time-sensitive threads.

This API allows the game to stop receiving their XGameStreamingClientPropertiesChangedCallback whenever a XGameStreamingClientProperty, like stream physical dimensions, changes.

Example

    // On client disconnection remove from list of client and do per client cleanup
    void OnClientDisconnected(XGameStreamingClientId client)
    {
        StreamingClient connectedClient;
        GetConnectedClient(client, &connectedClient);

        // unregister the client property changed handler
        XGameStreamingUnregisterClientPropertiesChanged(client, connectedClient.propertyChangeToken, true);
        std::erase(std::remove(m_streamingClients.begin(), m_streamingClients.end(), connectedClient), m_streamingClients.end());
    }

Requirements

Header: xgamestreaming.h

Library: xgameruntime.lib

Supported platforms: Windows, Xbox One family consoles and Xbox Series consoles

See also

XGameStreamingClientProperty XGameStreamingClientPropertiesChangedCallback XGameStreamingRegisterClientPropertiesChanged XGameStreaming