Windows XP Mode で正常にログオフできない場合がある

こんにちは。Windows テクノロジー サポートの田辺です。

今回は Windows XP Mode の動作と注意点についてのご紹介です。

プログラムからユーザーの強制ログオフを行う場合には、ExitWindowsEx 関数に EWX_FORCE フラグを指定して呼び出すのが一般的です。

しかしながら、Windows XP Mode の仮想マシンにログオンしているユーザーをログオフさせる際、同フラグを指定して ExitWindowsEx 関数を呼び出すと、シャットダウンを指示する EWX_SHUTDOWN フラグを指定していないにも関わらず、以下の画面表示に遷移して そのまま画面が切り替わらない現象が発生し、Windows XP Mode の仮想マシンにログオンが出来ない現象が発生します。

上記ダイアログ ボックスが消えないことが原因となり、以後 Windows XP Mode の仮想マシンにログオンする事ができません。

尚、Windows XP Mode のシームレス アプリケーションにつきましては、上記ダイアログが表示されている状態であっても、影響を受けることはありません。

- 回避策について

"仮想マシンをシャットダウンしています" のダイアログが表示された状態でも、Windows XP Mode の仮想マシンとしては 正常にログオフは行われているため、当該ダイアログが表示されている状態で、ダイアログの [×] ボタンをクリックすることで仮想マシンを休止状態にする事が可能です。

この場合、仮想マシンの観点からはログオフをしてから休止状態に移行させている状態と変わりませんので、Windows XP Mode の仮想マシンは次回開始時にも正常に動作します。

- 詳細情報

これらの現象は Windows XP Mode 内で動作している統合機能の動作が影響して発生します。

通常であればログオフ完了後ログオン画面に遷移する動作となりますが、統合機能が有効な場合には、ログオン画面に切り替わらずに "仮想マシンをシャットダウンしています" のダイアログが表示されたままとなります。

そのため、Windows XP Mode の仮想マシンで 既定で有効となっている統合機能を無効化している場合には、この事象は発生しません。

プログラムにてログオフを実施する運用をご検討いただいている場合には、当該動作についてご留意下さい。