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

# Como usar um durável sem pacote

> Use um durável sem pacote (DWOB) no seu título — configuração de licenciamento, verificações de direitos e como os DWOBs diferem dos produtos de conteúdo para download com pacote.

Os duráveis podem ser configurados com ou sem um pacote que é baixado para o cliente. Um durável sem pacote é mais fácil de configurar e usar. Esses tipos de durável normalmente são usados para controlar o acesso a conteúdo que já faz parte do jogo base. Muitos jogos optam por incluir o conteúdo dos complementos no pacote do jogo base porque usam os ativos para fins de multijogador ou de visualização, mesmo quando não licenciados.

> [!NOTE]
>
> Um durável sem pacote não tem suporte em discos.

Mesmo sem um pacote para download, o tipo de produto ainda fornece uma licença de acordo com o [Modelo de compartilhamento de produtos para jogos](https://docs.xbox.com/pt-BR/publishing/xstore-commerce/xstore-product-sharing.md).

Não basta verificar a propriedade usando [XStoreQueryEntitledProductsAsync](https://docs.xbox.com/pt-BR/reference/system/xstore/xstore_members.md). Em vez disso, verifique corretamente o acesso a um durável usando [XStoreAcquireLicenseForDurablesAsync](https://docs.xbox.com/pt-BR/reference/system/xstore/xstore_members.md):

```cpp theme={null}
void AcquireLicenseForDurable(const char* storeId)
{
    auto async = new XAsyncBlock{};
    async->queue = m_asyncQueue;
    async->callback = [](XAsyncBlock* async)
    {
        XStoreLicenseHandle result = {};

        HRESULT hr = XStoreAcquireLicenseForDurablesResult(
            async,
            &result);

        if (SUCCEEDED(hr))
        {
            bool isValid = XStoreIsLicenseValid(result);
            printf("Is valid license: %s\n", isValid? "yes" : "no");
        }
        else
        {
            printf("Error calling XStoreAcquireLicenseForDurablesResult: 0x%x\n", hr);
        }

        delete async;
    };

    HRESULT hr = XStoreAcquireLicenseForDurablesAsync(
        m_xStoreContext,
        storeId,
        async);

    if (FAILED(hr))
    {
        delete async;
        return;
    }
}
```

## Documentação de referência da API

* [XStore (conteúdo da API)](https://docs.xbox.com/pt-BR/reference/system/xstore/xstore_members.md)
  * Funções
    * [XStoreQueryEntitledProductsAsync](https://docs.xbox.com/pt-BR/reference/system/xstore/xstore_members.md)
    * [XStoreAcquireLicenseForDurablesAsync](https://docs.xbox.com/pt-BR/reference/system/xstore/xstore_members.md)

## Confira também

[Visão geral do Commerce](https://docs.xbox.com/pt-BR/publishing/xstore-commerce/xstore-commerce-overview.md)

[Gerenciar e licenciar conteúdo para download (DLC)](https://docs.xbox.com/pt-BR/publishing/xstore-commerce/xstore-dlc.md)

[Referência da API XStore](https://docs.xbox.com/pt-BR/reference/system/xstore/xstore_members.md)


## Related topics

- [Operações básicas da loja](https://docs.xbox.com/pt-BR/publishing/xstore-commerce/xstore-basic-operations.md)
- [Complementos duráveis](https://docs.xbox.com/pt-BR/publishing/game-publishing/concepts/add-ons/durable-add-ons.md)
- [Gerenciar e licenciar conteúdo para download (DLC)](https://docs.xbox.com/pt-BR/publishing/xstore-commerce/xstore-dlc.md)
- [XStoreAcquireLicenseForDurablesAsync](https://docs.xbox.com/pt-BR/reference/system/xstore/functions/xstoreacquirelicensefordurablesasync.md)
- [XStoreCanAcquireLicenseForStoreIdAsync](https://docs.xbox.com/pt-BR/reference/system/xstore/functions/xstorecanacquirelicenseforstoreidasync.md)
