XPackageUninstallChunks
指定されたセレクターに一致するチャンクをアンインストールします。
構文
HRESULT XPackageUninstallChunks(
const char* packageIdentifier,
uint32_t selectorCount,
XPackageChunkSelector* selectors
)
パラメーター
packageIdentifier _In_z_
型: char*
ディスクにインストールされているパッケージを一意に識別する文字列。 パッケージ識別子の詳細については、「ダウンロード可能なコンテンツ (DLC) の管理とライセンス」を参照してください。
selectorCount _In_
型: uint32_t
selectors パラメーター内のセレクターの数。
selectors _In_reads_(selectorCount)
型: XPackageChunkSelector*
アンインストールするチャンクを指定するセレクターの配列。
整数の ID だけを使用してアンインストールするチャンクを指定することはサポートされていません。行おうとすると、XPackageUninstallChunks で値 E_INVALIDARG が返されます。 アンインストールするチャンクを指定するには、言語やタグなど、セレクターに関する追加情報を指定します。
戻り値
型: HRESULT
HRESULT 成功またはエラー コード。
解説
注意
この関数は、時間依存のスレッドで呼び出すのに安全ではありません。 詳細については、「時間依存のスレッド」を参照してください。
XPackageUninstallChunks では、指定したインストール セレクターに一致するチャンクが削除されます。 これにより、パッケージが機能するために必要なチャンクが削除されることはありません。 たとえば、現在実行中のゲームの言語用アセットを提供するために必要なチャンクを削除することはできません。
チャンクが削除されても、タイトルは停止されません。 削除したチャンク内のファイル、およびアクセスする必要がなくなったチャンク内のファイルのハンドルをすべて閉じるのは、タイトルで行う必要があります。
次の例では、XPackageUninstallChunks を使用して、タグ "BigMaps" を含むマップ パッケージをアンインストールします。
HRESULT UninstallBigMaps()
{
char id[XPACKAGE_IDENTIFIER_MAX_LENGTH];
HRESULT hr = XPackageGetCurrentProcessPackageIdentifier(_countof(id), id);
if (FAILED(hr)) return hr;
XPackageChunkSelector selector;
selector.type = XPackageChunkSelectorType::Tag;
selector.tag = "BigMaps";
hr = XPackageUninstallChunks(id, 1, &selector);
return hr;
}
要件
ヘッダー: XPackage.h
ライブラリ: xgameruntime.lib
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体