XPackageFindChunkAvailability
Returns the minimum availability for the collection of chunks that match the specified selectors.
Syntax
HRESULT XPackageFindChunkAvailability(
const char* packageIdentifier,
uint32_t selectorCount,
XPackageChunkSelector* selectors,
XPackageChunkAvailability* availability
)
Parameters
packageIdentifier _In_z_
Type: char*
A string that uniquely identifies the installed package on the disk. For more information about package identifiers, see Manage and license downloadable content (DLC).
selectorCount _In_
Type: uint32_t
The number of selectors in the selectors parameter.
selectors _In_reads_opt_(selectorCount)
Type: XPackageChunkSelector*
An array of selectors that specify the chunks to be checked.
availability _Out_
Type: XPackageChunkAvailability*
On return, lists the availability of the chunks.
Return value
Type: HRESULT
HRESULT success or error code.
Remarks
Note
This function isn't safe to call on a time-sensitive thread. For more information, see Time-sensitive threads.
XPackageFindChunkAvailability takes an array of chunk selectors, finds the associated chunks, and then returns the minimum availability for those chunks. Availability ranges according to the following values:
- Ready: The chunk is already installed and can be read.
- Pending: The chunk is not installed yet but will be.
- Installable: The chunk will not be installed, but it could be downloaded.
- Unavailable: The chunk cannot be downloaded.
The following example accepts a track name for a racing game and, if the track is not installed, prints the download size for the track:
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;
}
Requirements
Header: XPackage.h
Library: xgameruntime.lib
Supported platforms: Windows, Xbox One family consoles and Xbox Series consoles