セッションマネージャ サブシステム( ) は、 Windows NT 3.1以降のMicrosoft Windows NTファミリオペレーティング システムsmss.exeのコンポーネントであり、これらのオペレーティング システムの起動プロセス中に実行されます。
セッションの初期化
セッションマネージャサブシステムは、カーネルによって開始される最初のユーザーモードプロセスです。開始されると、HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management,[1]レジストリエントリにある環境変数HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environmentと、レジストリキーにリストされているDOSデバイスマッピング (例: CON:、NUL:、AUX:、COM1:、COM2:、COM3:、COM4:、PRN:、LPT1:、LPT2 : 、LPT3:、およびドライブ文字) からの構成データを使用して、追加のページングファイルHKLM\System\CurrentControlSet\Control\Session Manager\DOS Devicesを作成します。これを使用して、永続的なサブドライブを作成できます。
マネージャは、 Win32サブシステムのカーネルモードとユーザーモードを起動する役割を担います。このサブシステムには、(カーネルモード)、(ユーザーモード)、(ユーザーモード)が含まれます。[2]レジストリキーの値にリストされている他のサブシステムも起動されます。
win32k.syswinsrv.dllcsrss.exeRequiredHKLM\System\CurrentControlSet\Control\Session Manager\SubSystems
マネージャは、セッションの開始時に要求された操作を実行する責任もあります。やHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecuteなどの にリストされているコマンドが実行されます。これらのコマンドは、ブートプロセスの後のステップでサービスがロードされる前に実行されます。[3]でキューに入れられた名前変更操作。これは、以前使用されていたファイル(ドライバなど)を再起動の一部として置き換えるために使用されます。[4]autochkconvertHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
Windows Vista 以降、セッション マネージャー サブシステムは、システム プロセス専用のセッションであるセッション 0 用に、 Windows スタートアップ アプリケーション ( wininit.exe) と 2 番目のクライアント/サーバー ランタイム サブシステム ( ) を起動する一時インスタンスを作成します。ここから、Windows スタートアップ アプリケーションはサービス コントロール マネージャー( ) を起動し、サービス コントロール マネージャーは「自動開始」に設定されているすべての Windows サービスを開始します。[4]アプリケーションは、ローカル セキュリティ機関サブシステム サービス( ) も開始します。Windows Vista より前では、これらのプロセスは Windows スタートアップ アプリケーションではなく、 Windows ログオンによって開始されていました。[5]csrss.exeservices.exelsass.exe
セッションが設定されると、セッションマネージャサブシステムはWinlogon(Windowsログオンアプリケーション)を起動します。Winlogonは、ローカルまたはリモートのWindowsシステムへの対話型ログオンを処理する役割を担います。[5]
手術
ブートプロセスが完了すると、プログラムはメモリ内に常駐し、Windowsタスクマネージャwinlogon.exeで実行中であることが確認できます。その後、またはが終了するのを待ちcsrss.exe、その時点でWindowsがシャットダウンします。プロセスが予想どおりに終了しない場合は、smss.exeシステムがハングするか、バグチェックが発生します。[6]また、必要に応じて新しいユーザーセッションを開始します。Windowsの一部のバージョンでは、特別なツールを使用して、の重要なプロセスステータスをsmss.exe削除できます。その後、ブルースクリーンなしで終了できますが、使用する機能はsmss.exe次回の再起動まで動作を停止します。
ローカル セッション マネージャー サービス ( ) は、非同期ローカル プロセス間通信(ALPC) ポートlsm.exeを介して SMSS に要求を送信し、新しいセッションを開始します。
SmSsWinStationApiPort
ユーザーがシステムにログオンするたびに、最初のセッション マネージャーは新しいセッションを構成するために新しいインスタンスを作成します。この新しいプロセスは、新しいセッション用に Win32 サブシステムと Winlogon プロセスを開始します。これにより、複数のユーザーがWindows Serverシステムに同時にログオンできるようになります。[5]
参照
- Microsoft Windows コンポーネントの一覧
init— Unixスタイルのシステムにおける同様のプロセス
参考文献
- ^ 「スタートアップ プロセスのトラブルシューティング」。Windows XP リソース キット。Microsoft Technet。2005 年 11 月 3 日。2011 年10 月 24 日に取得。
- ^ Matt Pietrek (1996)。「Poking Around Under the Hood: A Programmer's View of Windows NT 4.0」。Microsoft Systems Journal。2012年11月18日時点のオリジナルよりアーカイブ。
- ^ 「スタートアップ プロセスのトラブルシューティング」。Windows XP リソース キット。Microsoft Technet。2005 年 11 月 3 日。2011 年10 月 24 日に取得。
- ^ ab Ionescu, Alex; Russinovich, Mark; Solomon, David A. (2012). Windows 内部、パート 2 (第 6 版). ワシントン州レドモンド: Microsoft. pp. 522–527. ISBN 978-0735665873。
- ^ abc アーカイブドキュメンテーション。「Windows の管理: Windows Vista カーネルの内部: パート 2」。learn.microsoft.com。2023年 5 月 13 日閲覧。
- ^ Microsoft Corporation (2007). 「Windows 2000 の既定のプロセス」。Microsoft Corporation。2009年 6 月 14 日閲覧。
さらに読む
- セッション、デスクトップ、Windows ステーション
- セッション 0 分離が Windows のサービスとドライバーに与える影響
- セッション 0 分離 - Windows 7 - Microsoft
