XPackageGetMountPathSize

Gets the size required for an array to hold a mount path returned by XPackageGetMountPath.

Syntax

HRESULT XPackageGetMountPathSize(  
         XPackageMountHandle mount,  
         size_t* pathSize  
)  

Parameters

mount   _In_
Type: XPackageMountHandle

The handle to the mounted installation.

pathSize   _Out_
Type: size_t*

On return, contains the size required for an array.

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.

Together, XPackageGetMountPathSize and XPackageGetMountPath are used to return the file path to a package's contents.

XPackageGetMountPath mounts the specified package identifier and returns a mount handle to it. This might take several seconds. For more information about package identifiers, see Manage and license downloadable content (DLC).

Only content packages can be mounted. An attempt to mount another game will yield E_ACCESS_DENIED.

The following code example shows how packages are usually mounted:

HRESULT MountDlc(char* dlcIdentifier)
{
    XPackageMountHandle mountHandle;
    HRESULT hr = XPackageMount(dlcIdentifier, &mountHandle);
    if (FAILED(hr)) return hr;

    size_t pathSize;
    hr = XPackageGetMountPathSize(mountHandle, &pathSize);
    if (FAILED(hr))
    {
        XPackageCloseMountHandle(mountHandle);
        return hr;
    }

    char* path = new (std::nothrow) char[pathSize];
    if (path == nullptr)
    {
        XPackageCloseMountHandle(mountHandle);
        return E_OUTOFMEMORY;
    }

    hr = XPackageGetMountPath(mountHandle, pathSize, path);
    if (FAILED(hr))
    {
        XPackageCloseMountHandle(mountHandle);
        delete[] path;
        return hr;
    }

    printf("Dlc %s mounted at path %s\n", dlcIdentifier, path);

    delete[] path;

    // Unmounts DLC path if this is the last handle
    // to it.
    XPackageCloseMountHandle(mountHandle);
    return S_OK;
}

Requirements

Header: XPackage.h

Library: xgameruntime.lib

Supported platforms: Windows, Xbox One family consoles and Xbox Series consoles

See also

XPackage
How to create and use Downloadable Content Packages (DLC) for PC and Xbox One
XPackageGetMountPath