XPackageFindChunkAvailability
指定されたセレクターと一致するチャンクのコレクションの最低限の使用可能性を返します。
構文
HRESULT XPackageFindChunkAvailability(
const char* packageIdentifier,
uint32_t selectorCount,
XPackageChunkSelector* selectors,
XPackageChunkAvailability* availability
)
パラメーター
packageIdentifier _In_z_
型: char*
ディスクにインストールされているパッケージを一意に識別する文字列。 パッケージ識別子の詳細については、「ダウンロード可能なコンテンツ (DLC) の管理とライセンス」を参照してください。
selectorCount _In_
型: uint32_t
selectors パラメーター内のセレクターの数。
selectors _In_reads_opt_(selectorCount)
型: XPackageChunkSelector*
確認するチャンクを指定するセレクターの配列。
availability _Out_
型: XPackageChunkAvailability*
戻ったとき、チャンクの使用可能性のリストが格納されます。
戻り値
型: HRESULT
HRESULT 成功またはエラー コード。
解説
注意
この関数は、時間依存のスレッドで呼び出すのに安全ではありません。 詳細については、「時間依存のスレッド」を参照してください。
XPackageFindChunkAvailability は、チャンク セレクターの配列を取り、関連するチャンクを見つけ、これらのチャンクの最低限の使用可能性を返します。 使用可能性には、次のような値があります。
- Ready: チャンクは既にインストール済みで、読み取り可能です。
- Pending: チャンクはまだインストールされていませんが、インストールされる予定です。
- Installable: チャンクのインストールは予定されていませんが、ダウンロードは可能です。
- Unavailable: チャンクはダウンロードできません。
次の例では、レーシング ゲームのトラック名を受け取り、トラックがインストールされていない場合は、トラックのダウンロード サイズを印刷します。
HRESULT ListDownloadSize(char* trackName)
{
XPackageChunkSelector selector;
selector.type = XPackageChunkSelectorType::Tag;
selector.tag = trackName;
char id[XPACKAGE_IDENTIFIER_MAX_LENGTH];
HRESULT hr = XPackageGetCurrentProcessPackageIdentifier(_countof(id), id);
if (FAILED(hr)) return hr;
XPackageChunkAvailability availability;
hr = XPackageFindChunkAvailability(id, 1, &selector, &availability);
if (FAILED(hr)) return hr;
if (availability == XPackageChunkAvailability::Installable)
{
uint64_t downloadSize;
hr = XPackageEstimateDownloadSize(id, 1, &selector, &downloadSize, nullptr);
if (FAILED(hr)) return hr;
printf("Download Size for track %s: %I64u\n", trackName, downloadSize);
}
return hr;
}
要件
ヘッダー: XPackage.h
ライブラリ: xgameruntime.lib
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体