XPersistentLocalStorageMountForPackage
指定したパッケージの永続ローカル ストレージ (PLS) を読み取り専用ディスクとしてマウントします。
構文
HRESULT XPersistentLocalStorageMountForPackage (
const char* packageIdentifier,
XPackageMountHandle* mountHandle
)
パラメーター
packageIdentifier _In_
型: char*
PLS が属するストア パッケージを一意に識別する文字列。 パッケージ識別子の詳細については、「ダウンロード コンテンツ (DLC) の管理とライセンス」を参照してください。
mountHandle _Out_writes_to_(pathSize,pathUsed)
型: XPackageMountHandle
PLS がマウントされたディスクのマウント ハンドル。
戻り値
型: HRESULT
正常に実行された場合は S_OK が返され、それ以外の場合はエラー コードが返されます。 エラー コードの一覧については、「エラー コード」を参照してください。 指定したタイトルの PLS が存在しないために関数が失敗した場合は、 FILE_NOT_FOUND に設定されます。 共有可能な永続ローカル ストレージを有効にしていないタイトルの PLS にアクセスしようとして関数が失敗した場合は、ACCESS_DENIED を取得します。
解説
注意
この関数は、時間依存のスレッドで呼び出すのに安全ではありません。 詳細については、「時間依存のスレッド」を参照してください。
タイトルが共有可能な PLS をサポートするには、MicrosoftGame.config で そのように宣言する必要があります。共有可能な永続的なローカル ストレージの詳細については、「ローカル ストレージ」を参照してください。
注意
タイトルが PLS を共有可能としてマークする場合は、ゲームを中断する前に、すべてのハンドルを PLS に閉じ、それ以外の場合はゲームの中断が失敗し、ゲームが終了することを確認する必要があります。
次のコード スニペットは、別のタイトルの共有可能 PLS にアクセスする例を示しています。
HRESULT MountPersistentLocalStorageForPackage(char* packageIdentifier)
{
XPackageMountHandle* mountHandle;
HRESULT hr = XPersistentLocalStorageMountForPackage (packageIdentifier, &mountHandle);
if (FAILED(hr)) return hr;
size_t pathSize;
hr = XGetMountPathSize(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("PLS %s mounted at path %s\n", packageIdentifier, path);
delete[] path;
// Unmounts PLS path if this is the last handle
// to it.
XPackageCloseMountHandle(mountHandle);
return S_OK;
}
要件
ヘッダー: XPersistentLocalStorage.h
ライブラリ: xgameruntime.lib
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体
関連項目
XPersistentLocalStorage
新しい MicrosoftGame.config ファイルを使用する方法
ローカル ストレージ