XLaunchNewGame
現在のゲームを終了し、割り当てられたリソースをすべて解放して、新しいゲームを起動します。
構文
void XLaunchNewGame(
const char* exePath,
const char* args,
XUserHandle defaultUser
)
パラメーター
exePath _In_z_
型: char*
起動する新しいゲームのパスとファイル名。 このパスは、現在のディレクトリからの相対パスでも絶対パスでもかまいません。 呼び出し元の実行可能ファイルへのパスを知る必要があるゲームは、モジュール ハンドルに nullptr を指定して、[GetModuleFilename] を呼び出すことができます。
args _In_opt_z_
型: char*
新しいゲームを起動するための、該当するゲーム固有のあらゆる引数。
defaultUser _In_opt_
型: XUserHandle
新しいゲームを起動しているユーザーのハンドル。 値が指定されていない場合、現在のユーザーが指定されます。
戻り値
型: void
この関数は、ゲームを再起動できない場合でも、値を返したり、例外を発生させたりすることはありません。
解説
注意
この関数は、時間依存のスレッドで呼び出すのに安全ではありません。 詳細については、「時間依存のスレッド」を参照してください。
この関数は、ゲームを再起動し、ゲームの現在のプロセスを終了し、新しいプロセスを使用してゲームを再起動します。 ゲームが実行されている仮想マシンを再起動せずにゲームを再起動します。 別の既定のユーザーとゲーム固有の引数を指定してゲームを再起動するオプションがあります。別の既定のユーザーを指定する方法の詳細については、「ユーザー ID と XUser」を参照してください。
この関数が新しいゲームの起動中にエラーを検出した場合でも、現在のプロセスは必ず終了します。 たとえば、exePath 、args、またはdefaultuserに指定されたいずれかの値が有効でない場合、この関数は値を返さず、例外も発生しません。
注意
この関数が呼び出されると、以前にマウントされたすべての DLC がマウント解除されます。ただし、XLaunchNewGame のターゲットをホストする DLC は除きます。 G: ドライブは、新しく起動された EXE ではなく、ベース パッケージのルートを参照し続けます。
注意
XLaunchNewGame が呼び出された後、新しく起動されたゲームが Suspend ハンドラーを設定する前にゲームが Suspend された場合、ゲームは終了します。 これは非常に限られた時間内であり、実際にはほとんど発生しないはずです。
注意
XMemTransferMemory (NDA トピック)認可が必須です を使用してシステムに転送されたメモリは保持されます。
要件
ヘッダー: XGame.h
ライブラリ: xgameruntime.lib
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体