auto asyncBlock = std::make_unique<XAsyncBlock>();asyncBlock->queue = queue;asyncBlock->context = nullptr;asyncBlock->callback = [](XAsyncBlock* asyncBlock){ std::unique_ptr<XAsyncBlock> asyncBlockPtr{ asyncBlock }; // Take over ownership of XAsyncBlock*. size_t usedBytes; size_t quotaBytes; HRESULT hr = XblTitleStorageGetQuotaResult(asyncBlock, &usedBytes, "aBytes);};HRESULT hr = XblTitleStorageGetQuotaAsync( xboxLiveContext, scid, storageType, asyncBlock.get());if (SUCCEEDED(hr)){ // The call succeeded, so release std::unique_ptr ownership of XAsyncBlock* because // the callback takes over ownership. If the call fails, however, std::unique_ptr keeps // ownership and deletes XAsyncBlock*. asyncBlock.release();}