Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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