> ## 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.

# XPackageUnregisterPackageInstalled

> XPackageUnregisterPackageInstalled

# XPackageUnregisterPackageInstalled

Cancela o registro de um retorno de chamada de pacote instalado registrado anteriormente.

## Sintaxe

```cpp theme={null}
bool XPackageUnregisterPackageInstalled(  
         XTaskQueueRegistrationToken token,  
         bool wait  
)  
```

### Parâmetros

*token*   \_In\_\
Tipo: [XTaskQueueRegistrationToken](/pt-BR/reference/system/xtaskqueue/structs/xtaskqueueregistrationtoken)

O token retornado por [XPackageRegisterPackageInstalled](/pt-BR/reference/system/xpackage/functions/xpackageregisterpackageinstalled).

*wait*   \_In\_\
Tipo: bool

Indica se deve bloquear até que todos os retornos de chamada pendentes sejam concluídos.

### Valor retornado

Tipo: bool

Se *wait* for false e o cancelamento do registro estiver pendente, retornará false. Caso contrário, retornará true.

## Comentários

<Note>Não é seguro chamar esta função em um thread sensível ao tempo. Para obter mais informações, consulte [Threads sensíveis ao tempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

O cancelamento do registro de uma notificação se comporta da seguinte maneira:

* Do conjunto de retornos de chamada registrados, o cancelamento do registro remove o retorno de chamada associado ao token.
* Se nenhum retorno de chamada estiver em execução para esse token de retorno de chamada, a chamada retornará true.
* Se houver retornos de chamada em execução e *wait* for true, a chamada ficará bloqueada até que o retorno de chamada em execução seja concluído.
* Se houver retornos de chamada em execução e *wait* for false, a chamada não ficará bloqueada, mas retornará false. Depois que o retorno de chamada do token for concluído, o registro do token será cancelado automaticamente.

Esse mecanismo permite os seguintes padrões de codificação:

1. Você pode bloquear no cancelamento do registro para garantir que seus retornos de chamada nunca sejam invocados após uma chamada para cancelar o registro.
2. Você pode optar por não bloquear. Para garantir que seus retornos de chamada sejam concluídos antes de excluir dados, chame periodicamente o cancelamento do registro com false para *wait*. Quando ele finalmente retornar true, todos os seus retornos de chamada terão sido concluídos e você poderá excluir o estado.
3. Se não importar para o seu retorno de chamada se ele está sendo invocado durante uma chamada de cancelamento de registro, você pode simplesmente passar false para *wait* e ignorar o valor retornado.

O exemplo de código a seguir ilustra o uso de **XPackageUnregisterPackageInstalled**:

```cpp theme={null}
void StopListeningForDlc(XTaskQueueRegistrationToken token)
{
    XPackageUnregisterPackageInstalled(token, false);
}  
```

## Requisitos

**Cabeçalho:** XPackage.h

**Biblioteca:** xgameruntime.lib

**Plataformas compatíveis:** Windows, consoles da família XBOX One e consoles XBOX Series

## Documentação conceitual

* [Threads sensíveis ao tempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Confira também

[XPackage](/pt-BR/reference/system/xpackage/xpackage_members)\
[Como criar e usar pacotes de conteúdo baixável (DLC) para PC e XBOX One](/pt-BR/build/core-features/common/packaging/packaging-downloadable-content-dlc)


## Related topics

- [XPackageUnregisterPackageInstalled](/ja-jp/reference/system/xpackage/functions/xpackageunregisterpackageinstalled.md)
- [XPackageRegisterPackageInstalled](/reference/system/xpackage/functions/xpackageregisterpackageinstalled.md)
