次の方法で共有


XPackageGetMountPath

マウントされたインストールへのパスを取得します。

構文

HRESULT XPackageGetMountPath(  
         XPackageMountHandle mount,  
         size_t pathSize,  
         char* path  
)  

パラメーター

mount _In_
型: XPackageMountHandle

マウントのハンドル。

pathSize _In_
型: size_t

path パラメーターのサイズ (バイト単位)。 必要なパス サイズを決定するには、XPackageGetMountPathSize を使用します。

path _Out_writes_(pathSize)
型: char*

マウントされているインストールへのパス。

戻り値

型: HRESULT

HRESULT 成功またはエラー コード。

解説

注意

この関数は、時間依存のスレッドで呼び出すのに安全ではありません。 詳細については、「時間依存のスレッド」を参照してください。

XPackageGetMountPath では、指定されたパッケージ ID がマウントされ、そのマウント ハンドルが返されます。 これには数秒かかる場合があります。 パッケージ識別子の詳細については、「ダウンロード可能なコンテンツ (DLC) の管理とライセンス」を参照してください。

XPackageGetMountPathXPackageGetMountPathSize は、共にパッケージのコンテンツのファイル パスを返すために使用されます。

コンテンツ パッケージのみがマウントできます。 別のゲームをマウントしようとすると、E_ACCESS_DENIED が発生します。

次のコードの例は、パッケージが通常どのようにマウントされるかを示しています。

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;
}

要件

ヘッダー: XPackage.h

ライブラリ: xgameruntime.lib

サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体

関連項目

XPackage
PC と Xbox One 用のダウンロード コンテンツ パッケージ (DLC) を作成して使用する方法XPackageGetMountPathSize