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

# 取得遊戲儲存空間 Blob 中繼資料

> 使用 XblTitleStorageGetBlobMetadataAsync 擷取 XBOX 遊戲儲存空間 Blob 中繼資料的 flat C 程式碼範例，包括逐頁瀏覽結果控制代碼。

本主題使用下列 flat C 程式碼範例，示範如何從 XBOX 遊戲儲存空間擷取 Blob 中繼資料。

#### Flat C

```cpp theme={null}
auto asyncBlock = std::make_unique<XAsyncBlock>();
asyncBlock->queue = queue;
asyncBlock->context = nullptr;
asyncBlock->callback = [](XAsyncBlock* asyncBlock)
{
    std::unique_ptr<XAsyncBlock> asyncBlockPtr{ asyncBlock };
    XblTitleStorageBlobMetadataResultHandle handle;
    HRESULT hr = XblTitleStorageGetBlobMetadataResult(asyncBlock, &handle);

    if (SUCCEEDED(hr))
    {
        if (blobMetadataResultHandle != nullptr)
        {
            XblTitleStorageBlobMetadataResultCloseHandle(blobMetadataResultHandle);
        }

        blobMetadataResultHandle = handle;
    }

};

HRESULT hr = XblTitleStorageGetBlobMetadataAsync(
    xboxLiveContext,
    scid,
    storageType,
    blobPath.c_str(),
    xboxUserId,
    skipItems,
    maxItems,
    asyncBlock.get()
);

if (SUCCEEDED(hr))
{
    asyncBlock.release();
}
```

## 只有一頁 XblTitleStorageBlobMetadata 物件

下列程式碼範例示範如何使用 `XblTitleStorageBlobMetadataResultHandle` 擷取 [XblTitleStorageBlobMetadata](/zh-TW/reference/live/xsapi-c/title_storage_c/structs/xbltitlestorageblobmetadata) 物件清單的第一頁。
<Note>視遊戲在遊戲儲存空間中擁有的 Blob 數量而定，`XblTitleStorageBlobMetadata` 可能會有數頁。</Note>

#### Flat C

```cpp theme={null}
XblTitleStorageBlobMetadataResultHandle handle = blobMetadataResultHandle;

const XblTitleStorageBlobMetadata* items;
size_t itemsSize;

HRESULT hr = XblTitleStorageBlobMetadataResultGetItems(handle, &items, &itemsSize);
```

## 判斷是否還有更多頁 XblTitleStorageBlobMetadata 物件

下列程式碼範例示範如何檢查是否還有更多頁 `XblTitleStorageBlobMetadata` 需要從遊戲儲存空間擷取。

#### Flat C

```cpp theme={null}
XblTitleStorageBlobMetadataResultHandle handle = blobMetadataResultHandle;

bool hasNext;

HRESULT hr = XblTitleStorageBlobMetadataResultHasNext(handle, &hasNext);
```

## 擷取更多頁 XblTitleStorageBlobMetadata 物件

下列程式碼範例示範如何擷取下一頁 `XblTitleStorageBlobMetadata` 物件。

#### Flat C

```cpp theme={null}
XblTitleStorageBlobMetadataResultHandle handle = blobMetadataResultHandle;

auto asyncBlock = std::make_unique<XAsyncBlock>();
asyncBlock->queue = queue;
asyncBlock->context = nullptr;
asyncBlock->callback = [](XAsyncBlock* asyncBlock)
{
    std::unique_ptr<XAsyncBlock> asyncBlockPtr{ asyncBlock };
    XblTitleStorageBlobMetadataResultHandle handle{ nullptr };
    
    HRESULT hr = XblTitleStorageBlobMetadataResultGetNextResult(asyncBlock, &handle);
};

HRESULT hr = XblTitleStorageBlobMetadataResultGetNextAsync(handle, maxItems, asyncBlock.get());

if (SUCCEEDED(hr))
{
    asyncBlock.release();
}
```

## 複製 XblTitleStorageBlobMetadataResultHandle

下列程式碼範例示範如何建立 `XblTitleStorageBlobMetadataResultHandle` 的複本。

#### Flat C

```cpp theme={null}
XblTitleStorageBlobMetadataResultHandle handle = blobMetadataResultHandle;
XblTitleStorageBlobMetadataResultHandle duplicatedHandle;

HRESULT hr = XblTitleStorageBlobMetadataResultDuplicateHandle(handle, &duplicatedHandle);
```

## 關閉 XblTitleStorageBlobMetadataResultHandle

下列程式碼範例示範如何關閉 `XblTitleStorageBlobMetadataResultHandle`。

<Note>使用完此控制代碼後，您必須將其關閉。</Note>

#### Flat C

```cpp theme={null}
XblTitleStorageBlobMetadataResultHandle handle = blobMetadataResultHandle;
XblTitleStorageBlobMetadataResultCloseHandle(handle);
blobMetadataResultHandle = nullptr;
```

## 另請參閱

[XAsyncBlock](/zh-TW/reference/system/xasync/structs/xasyncblock)

[XblTitleStorageBlobMetadataResultCloseHandle](/zh-TW/reference/live/xsapi-c/title_storage_c/functions/xbltitlestorageblobmetadataresultclosehandle)

[XblTitleStorageGetBlobMetadataAsync](/zh-TW/reference/live/xsapi-c/title_storage_c/functions/xbltitlestoragegetblobmetadataasync)

[XblTitleStorageGetBlobMetadataResult](/zh-TW/reference/live/xsapi-c/title_storage_c/functions/xbltitlestoragegetblobmetadataresult)

[XblTitleStorageBlobMetadata](/zh-TW/reference/live/xsapi-c/title_storage_c/structs/xbltitlestorageblobmetadata)

[XblTitleStorageBlobMetadataResultGetItems](/zh-TW/reference/live/xsapi-c/title_storage_c/functions/xbltitlestorageblobmetadataresultgetitems)

[XblTitleStorageBlobMetadataResultHasNext](/zh-TW/reference/live/xsapi-c/title_storage_c/functions/xbltitlestorageblobmetadataresulthasnext)

[XblTitleStorageBlobMetadataResultGetNextAsync](/zh-TW/reference/live/xsapi-c/title_storage_c/functions/xbltitlestorageblobmetadataresultgetnextasync)

[XblTitleStorageBlobMetadataResultGetNextResult](/zh-TW/reference/live/xsapi-c/title_storage_c/functions/xbltitlestorageblobmetadataresultgetnextresult)

[XblTitleStorageBlobMetadataResultDuplicateHandle](/zh-TW/reference/live/xsapi-c/title_storage_c/functions/xbltitlestorageblobmetadataresultduplicatehandle)


## Related topics

- [遊戲儲存空間範例程式碼](/zh-TW/services/xbox-services/storage/title-storage/how-to/live-title-storage-howto-nav.md)
- [操作說明](/zh-TW/services/xbox-services/storage/title-storage/how-to/index.md)
- [從遊戲儲存空間下載 Blob](/zh-TW/services/xbox-services/storage/title-storage/how-to/live-downloading-title-storage-blob.md)
- [取得遊戲儲存空間服務設定的配額資訊](/zh-TW/services/xbox-services/storage/title-storage/how-to/live-getting-title-storage-quota-info.md)
- [從遊戲儲存空間刪除 Blob](/zh-TW/services/xbox-services/storage/title-storage/how-to/live-deleting-title-storage-blob.md)
