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

# XStoreAcquireLicenseForDurablesResult

> XStoreAcquireLicenseForDurablesResult

Retrieves the result of a call to [XStoreAcquireLicenseForDurablesAsync](https://docs.xbox.com/reference/system/xstore/functions/xstoreacquirelicensefordurablesasync.md).

## Syntax

```cpp theme={null}
HRESULT XStoreAcquireLicenseForDurablesResult(
         XAsyncBlock* async,
         XStoreLicenseHandle* storeLicenseHandle
)
```

### Parameters

*async*   \_Inout\_\
Type: XAsyncBlock\*

The `XAsyncBlock` object passed to [XStoreAcquireLicenseForDurablesAsync](https://docs.xbox.com/reference/system/xstore/functions/xstoreacquirelicensefordurablesasync.md).

*storeLicenseHandle*   \_Out\_\
Type: XStoreLicenseHandle\*

On success, contains the handle to the store license.
Pass the acquired license handle into [XStoreIsLicenseValid](https://docs.xbox.com/reference/system/xstore/functions/xstoreislicensevalid.md) to check if the license is valid.

### Return value

Type: HRESULT

Returns **S\_OK** if successful, or an error code otherwise.

`XStoreAcquireLicenseForDurablesResult` can return the following error codes:

| Error code | Description |
| - | - |
| 0x87E10BC6 `LM_E_CONTENT_NOT_IN_CATALOG` | The product wasn't found in the catalog. |
| 0x803F8001 `LM_E_CONTENT_NOT_OWNED` | The product isn't owned. |
| 0x803F8008 `LM_E_PREDOWNLOAD_LICENSE_NOT_YET_AVAILABLE` | The product is owned but can't be licensed because it isn't released yet. |
| 0x803F9006 `LM_E_ENTITLED_USER_SIGNED_OUT` | Owner of the product isn't signed in. |
| 0x89245305 `E_GAMESTORE_LICENSE_ACTION_THROTTLED` | The game excessively queried a license for the product and is now throttled. Limit is 30 licensing attempts within 10 minutes for the same product. |

## Remarks

Call this function on a time-sensitive thread.

The [XAsyncBlock](https://docs.xbox.com/reference/system/xasync/structs/xasyncblock.md) structure contains the result of the call.
Use the [XAsyncBlock](https://docs.xbox.com/reference/system/xasync/structs/xasyncblock.md) object to poll for the function call status and to retrieve the result.
To acquire a license for the specified Durable, call [XStoreAcquireLicenseForDurablesAsync](https://docs.xbox.com/reference/system/xstore/functions/xstoreacquirelicensefordurablesasync.md).

## Requirements

**Header:** XStore.h

**Library:** xgameruntime.lib

**Supported Platforms**: Windows, XBOX One family consoles, and XBOX Series consoles

## Conceptual documentation

* [Granting players access to add-on content](https://docs.xbox.com/publishing/xstore-commerce/xstore-granting-access.md)

## See also

[XStore](https://docs.xbox.com/reference/system/xstore/xstore_members.md)\
[XAsyncBlock](https://docs.xbox.com/reference/system/xasync/structs/xasyncblock.md)\
[XStoreAcquireLicenseForDurablesAsync](https://docs.xbox.com/reference/system/xstore/functions/xstoreacquirelicensefordurablesasync.md)\
[How to use a durable without a package](https://docs.xbox.com/publishing/xstore-commerce/xstore-dwob.md)\
[Granting players access to add-on content](https://docs.xbox.com/publishing/xstore-commerce/xstore-granting-access.md)


## Related topics

- [XStoreAcquireLicenseForDurablesAsync](https://docs.xbox.com/reference/system/xstore/functions/xstoreacquirelicensefordurablesasync.md)
- [XStoreIsLicenseValid](https://docs.xbox.com/reference/system/xstore/functions/xstoreislicensevalid.md)
- [XStore (API contents)](https://docs.xbox.com/reference/system/xstore/xstore_members.md)
- [Using C# wrappers for GDK APIs in your Unity project](https://docs.xbox.com/build/gdk-and-engines/unity/unity-api-wrappers.md)
- [XStoreCanAcquireLicenseForStoreIdResult](https://docs.xbox.com/reference/system/xstore/functions/xstorecanacquirelicenseforstoreidresult.md)
