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

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

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](/pt-BR/publishing/xstore-commerce/xstore-product-sharing).

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

```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)](/pt-BR/reference/system/xstore/xstore_members)
  * Funções
    * [XStoreQueryEntitledProductsAsync](/pt-BR/reference/system/xstore/xstore_members)
    * [XStoreAcquireLicenseForDurablesAsync](/pt-BR/reference/system/xstore/xstore_members)

## Confira também

[Visão geral do Commerce](/pt-BR/publishing/xstore-commerce/xstore-commerce-overview)

[Gerenciar e licenciar conteúdo para download (DLC)](/pt-BR/publishing/xstore-commerce/xstore-dlc)

[Referência da API XStore](/pt-BR/reference/system/xstore/xstore_members)


## Related topics

- [XR-037 Dependências de pacotes de conteúdo](/pt-BR/publishing/certification/xr/xr-037.md)
- [Requisitos XBOX testados na certificação para jogos de console XBOX](/pt-BR/publishing/certification/console-cert-tested-requirements.md)
- [Requisitos do XBOX para jogos do XBOX](/pt-BR/publishing/certification/xbox-requirements.md)
- [XR037 Dependências de pacotes de conteúdo](/pt-BR/publishing/certification/fma/xr-037.md)
- [Guia de BVT de console da certificação](/pt-BR/publishing/game-publishing/concepts/certification/certification-console-bvt-guide.md)
