> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XGameStreamingUnregisterClientPropertiesChanged

> XGameStreamingUnregisterClientPropertiesChanged

# XGameStreamingUnregisterClientPropertiesChanged

Unregisters a previously registered [XGameStreamingClientPropertiesChangedCallback](/reference/system/xgamestreaming/functions/xgamestreamingclientpropertieschangedcallback).

## Syntax

```cpp theme={null}
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](/reference/system/xgamestreaming/functions/xgamestreamingconnectionstatechangedcallback).

*token*   \_In\\\
Type: XTaskQueueRegistrationToken

The registration token provided by [XGameStreamingRegisterClientPropertiesChanged](/reference/system/xgamestreaming/functions/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](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

This API allows the game to stop receiving their `XGameStreamingClientPropertiesChangedCallback` whenever a [XGameStreamingClientProperty](/reference/system/xgamestreaming/enums/xgamestreamingclientproperty), like stream physical dimensions, changes.

## Example

```cpp theme={null}
    // 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

## Conceptual documentation

* [Time-sensitive threads](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## See also

[XGameStreamingClientProperty](/reference/system/xgamestreaming/enums/xgamestreamingclientproperty)
[XGameStreamingClientPropertiesChangedCallback](/reference/system/xgamestreaming/functions/xgamestreamingclientpropertieschangedcallback)
[XGameStreamingRegisterClientPropertiesChanged](/reference/system/xgamestreaming/functions/xgamestreamingregisterclientpropertieschanged)
[XGameStreaming](/reference/system/xgamestreaming/xgamestreaming_members)


## Related topics

- [XGameStreamingRegisterClientPropertiesChanged](/reference/system/xgamestreaming/functions/xgamestreamingregisterclientpropertieschanged.md)
- [XGameStreamingClientPropertiesChangedCallback](/reference/system/xgamestreaming/functions/xgamestreamingclientpropertieschangedcallback.md)
- [XGameStreamingClientProperty](/reference/system/xgamestreaming/enums/xgamestreamingclientproperty.md)
- [XGameStreaming](/reference/system/xgamestreaming/xgamestreaming_members.md)
- [Unity C# API wrappers for the GDK](/build/gdk-and-engines/unity/unity-api-wrappers.md)
