Home / ... / 各種コンピュータシステム / Windows系システム / Windowsのプロセスツリー

Windowsのプロセスツリー



Windowsの主なプロセス インデックス

※下記のプロセスツリーは、各種資料を元にWindows 2000 SP4 環境で検証した結果をまとめたもの。
  一部、XPについての情報も入っています。Vista については、まだ情報収集中。
  太字 のプロセスは、止めると問題が起こる、重要なプロセス。

 [ System Idle Process ※↓ ]
  │
  ├[ Interrupts ※↓ ]
  ├[ DPCs ※↓ ]
  │
  └[ System プロセス
※↓ : ブートローダから起動されるWindowsカーネルプロセス(ntoskrnl.exe , hal.dll , ドライバ など]
    │
    └[ セッションマネージャ
※↓ : Windows起動段階で多くの重要な作業を行うサブシステムプロセス ( smss.exe  ]
      │
      ├[ Client Server Runtime Process
※↓ : Windowsサブシステムのユーザモード部分( csrss.exe  ]
      │  (↑ 一部調査中 . )
       └[ Windows ログオンプロセス
※↓ :ユーザからのログオンとログオフ要求を処理するプロセス( winlogon.exe ]
         │ (↑ 一部調査中 . )
         ├[ ログオン画面
※↓ : ( GINA(msgina.dll) or Windows Logon UI (logonui.exe) ) ]
         │
         ├[ ローカルセキュリティ認証サーバ
※↓ : ローカル認証サブシステムプロセス( lsass.exe  ]
         │ ├[ IPSec ポリシーの管理と調整を行うサービス ]
         │ │ (↑ IPSec Policy Agent Service : polagent.dll
         │ │
         │ ├[ ドメインコントローラへのチャネルを保持し パススルー認証を行うサービス ]
         │ │ (↑ Net Logon Services : NETLOGON.DLL
         │ │
         │ ├[ ローカル・ユーザー・アカウントの管理サービス ]
         │ │ (↑ Security Accounts Manager Services : SAMSRV.DLL
         │ │
         │ └[ Userinit プロセス
※↓ : ログイン時のユーザー環境を初期化するプロセス ( userinit.exe ]
         │    │
         │    └[
Windows Explorer ※↓ : Windows のグラフィカルシェル explorer.exe ) ]
         │       ├[ キーボード言語インジケータ
※↓ :タスクトレイに言語選択のアイコンを置き多言語機能を提供 ]
         │       │ (↑ Keyboard Language Indicator Applet : Internat.exe
         │       │
         │       └[ その他の各種ソフト ] ・・・
         │
         ├[ Windows NT Multiple Provider Notification Application ※↓ ] ・・・ 調査中 .
         ├[ Windows Update Automatic Updates ※↓ ]・・・ 調査中 .
         │
         └[ サービス・コントロール・マネージャ
※↓:サービスの起動・終了を管理するサービス管理マネージャプロセス]
            │(↑ Services and Controller app : services.exe
            │
            ├[ イベント・ログの記録サービス (Event Logging Service : EVENTLOG.DLL)]
            ├[ ディスク管理サービス (Logical Disk Manager Service : dmserver.dll ) ]
            ├[ デバイス管理サービス (Plug and Play Service : UMPNPMGR.DLL ) ]
            ├[ 重要キー の管理サービス (証明書、認証キーなど) Protected Storage Server : cryptsvc.dll ) ]
            ├[ システム管理情報のドライバ・インターフェイス・サービス ]
            │ (↑ WMI Driver Extensions Service : wmicore.dll
            ├[ プリンタのスプーラ・サービス (Print Spooler Service : spoolsv.exe , spoolss.dll ]
            ├[ 他のパソコンからレジストリーの操作を可能にするサービス (Remote Registry Service : regsvc.exe ]
            ├[ タスクスケジューラサービス (Task Scheduler Service : MSTask.exe ) ]
            ├[ その他の各種DLLサービス ] ・・・
            │
            ├[ WMIサービス
※↓ : (Windows リモート管理のインターフェイスとオブジェクトの提供サービス) ]
            │ (↑ WMI Service : WinMgmt.exe
            ├[ その他の各種EXEサービス ] ・・・
            │
            ├[ Generic Host Process for Win32 Services ※↓ ]
            │  │ (↑ svchost.exe : 各種ネットワーク・サービスを起動するプロセス)]
            │  │
            │  └[ ネットワークの接続管理サービス (Network Connections Manager Service : netman.dll ]
            │
            ├[ Generic Host Process for Win32 Services ]
            │  └[ リモート・プロシージャ呼び出しサービス (Remote Procedure Call Service : rpcss.dll ]
            │
            ├[ Generic Host Process for Win32 Services ]
            │  └[ Windows 自動更新サービス ( wuauserv.dll ) ]
            │
            └[ Generic Host Process for Win32 Services ] ・・・
               └[ その他の各種 svchost.exe から起動されるネットワーク・サービス
]


Windows の主なプロセスの概説

 表の「レベル」は、System Idle Process を0として、プロセスツリーの何段目になるかを示したもので、一般的なものではなく、ここで勝手にそう呼んでいるだけ。

レベル
プロセス名 解説
0
System Idle Process :
 アイドルプロセス(プロセスID 0)と呼ばれる。

 プロセスツリーの表示で、どのプロセスにも割り当てられない、「CPUのアイドル時間」を表示するために便宜上表示されるもので、ファイルとしてもプロセスとしても実体は無い。

 プロセスを表示させるツールによって名称が異なっている。

アイドルプロセス に付けられる名前のリスト.
ツール ツール ファイル名
プロセスID 0 の名称
タスクマネージャ TASKMGR.EXE System Idle Process
Process Viewer
Pviewer.exe Idle
Process Status
Pstat.exe Idle Process
Process Explode
Pview.exe System Process
Task List
Tlist.exe System Process
QuickSlice
Qslice.exe Systemprocess

1
Interrupts DPCs :
 プロセスツリーの表示で、どのプロセスにも割り当てられない、「ハードウェア割り込み」と「遅延プロシージャコール」の処理に使われたCPU時間を表示するために便宜上表示されるもので、ファイルやプロセスとしての実体は無い。
  • Interrupts : ハードウェア割り込みに費やされた時間.
  • DPCs : 遅延プロシージャコール(Deferred Procedure Calls = DPCs)に費やされた時間.

1
System プロセス (ntoskrnl.exe, hal.dll, ハードウェアドライバ など)
 ブートローダから起動される、「System プロセス」と呼ばれる、 ntoskrnl.exe を中心としたカーネルモードで実行される Windows のカーネルプロセス。

 実体は NTカーネル(例:ntoskrnl.exe)と、 HAL(Hardware Abstraction Layer)および各種ドライバ

  Windows サブシステム カーネルモード部分 である カーネルモードデバイスドライバ (Multi-User Win32 Driver : Win32k.sys)は、システムプロセスの下でスレッドとして動作する。

 「System プロセス」と「セッションマネージャ」は、 Win32APIのDLL は含まない。



NT Kernel & System C:\WINNT\System32\ ntoskrnl.exe
NT Layer DLL C:\WINNT\system32\ ntdll.dll
HAL(Hardware Abstraction Layer) DLL
C:\WINNT\System32\ hal.dll
Multi-User Win32 Driver
 カーネルモードデバイスドライバ
 Windows サブシステムのカーネルモード部分。
C:\WINNT\System32\ Win32k.sys
ハードウェアドライバ
カーネルに組み込まれる、各種ソフトのDLL
(ウィルス対策ソフト、ファイアウォールソフト、仮想化ソフトなどのドライバ)
  • Windows NT OpenType/Type 1 Font Driver (Adobe)
  • その他



  • C:\WINNT\System32\ATMFD.DLL
  • C:\WINNT\SYSTEM32\*.DLL
  • C:\Program Files\ ・・・ \*.SYS
  • C:\Program Files\ ・・・ \*.DLL
  • C:\Program Files\Common Files\ ・・・ \*.sys

2
セッションマネージャ :Session Manager Subsystem (smss.exe)
 最初のユーザーモードのプロセスで、Windows起動段階で多くの重要な作業(ページファイルの追加、起動時のファイル名の変更と削除処理、システム環境変数の作成など)を行うサブシステム。

 更に標準では、「Windowsサブシステム」と「Windowsログオンプロセス」の2つのプロセスを起動する。

 レジストリキー "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager" には、セッションマネージャが行う初期段階の処理のための情報の多くが含まれている。

 Windowsシステムは、「Windowsサブシステム」と「Windowsログオンプロセス」の2つのプロセスの存在を前提としている。
 これらのプロセスの一方が異常終了した場合、セッションマネージャはシステムをクラッシュする。

 「System プロセス」と「セッションマネージャ」は、 Win32APIのDLL を含まない。


Windows NT Session Manager C:\WINNT\System32\ smss.exe
NT Layer DLL C:\WINNT\system32\ ntdll.dll ( ※↓ )
Windows 2000 System File Checker
C:\WINNT\System32\sfcfiles.dll

3
Client Server Runtime Process :Client/Server Runtime Subsystem (csrss.exe, CSRSRV.dll)
  Windows サブシステム ユーザモード部分
  Windows サブシステム カーネルモード部分 は、 カーネルモードデバイスドライバ (Multi-User Win32 Driver : Win32k.sys)で、システムプロセスの下で動作する。

 Windows サブシステムは、メモリ管理、プロセス管理、グラフィックス描画などを行なう、Windows NT系OSの中心的なサブシステムとして、Windowsアプリケーションに実行環境= Windows API の提供を行っている。

 Windowsアプリケーションに実行環境を提供するサブシステムには Win32サブシステム(または Win64サブシステム) の他に、 MS-DOSサブシステム Win16サブシステム WOW64 (Win64上でWin32をエミュレートするサブシステム)、 OS/2サブシステム (Windows NT, 2000のみ)、 POSIXサブシステム (Windows NT, 2000のみ) または Interixサブシステム (Windows XP 以降) がある。

 Windows 環境サブシステムは、大体 以下の様な仕組みで Windows API を提供している。
  1. アプリケーションが Windows API を呼び出す呼び出す。
    アプリケーションが呼び出す Windows API のDLL は全て スタブDLL と呼ばれるダミーのDLL。

  2.   スタブDLL の Windows API が呼び出されると、「ローカル・プロシージャ・コール(LPC)サービス」を介して、Windowsサブシステム上で Windows API を呼び出される。

    ( 一般のアプリケーションも、Windowsサブシステムも、ユーザー・モードで動作しており、直接アプリケーションからWindowsサブシステム上の Windows API を呼び出す事は出来ない。 LPCサービスが間に入って間接的にWindows API を呼び出している。 )

  3.  WindowsサブシステムがWindows API を呼び出す際には、カーネルモードデバイスドライバがWindowsサブシステムの内部にカーネルモードで動作するシステムスレッドを作成して実行する。
     こうする事で、カーネルモードのシステムスレッドが、ユーザーモードで動作する
    Windowsサブシステムプロセス内のデータに効率的にアクセス出来る。
(参考:「 本当に知っている?Windows XPの基礎 第1回 なぜアプリがハングしてもOSは大丈夫か? 図6


[ 構成要素などについて調査中 ]
Client Server Runtime Process
C:\WINNT\system32\ csrss.exe
(↑ Main component of Win32 subsystem.)
C:\WINNT\system32\ CSRSRV.dll
Windows NT BASE API Client DLL C:\WINNT\system32\Kernel32.dll
Windows 2000 USER API Client DLL C:\WINNT\system32\USER32.dll
GDI Client DLL C:\WINNT\system32\Gdi32.dll
Advanced Windows 32 Base API C:\WINNT\system32\Advapi32.dll


NT Layer DLL C:\WINNT\system32\ ntdll.dll
Windows NT BASE API Server DLL C:\WINNT\system32\basesrv.dll ( Windows Server DLL )
Windows Server DLL C:\WINNT\system32\winsrv.dll ( Windows Server DLL )

C:\WINNT\system32\KERNEL32.dll ( Win API DLL ※↓

C:\WINNT\system32\GDI32.dll ( Win API DLL ※↓


Microsoft C Runtime Library C:\WINNT\system32\MSVCRT.dll ( VC Runtime )
その他、各種 Windows API DLL
C:\WINNT\SYSTEM32\*.DLL


3
Windows ログオンプロセス (winlogon.exe)
 Windows ログオンプロセスは、ユーザーからのログオンとログオフ要求を処理する。
 Winlogon は、SASキーが押されたとき、ユーザーからのログオン要求通知が発生したことを検知して、ログオン画面の表示
とユーザ名・パスワードの受け付け処理※↓ )を行っている。
 
ログオン認証の処理は、「ローカルセキュリティ認証サーバ※↓と呼ばれる別のプロセスで行っている

 SASキーの組み合わせは、ユーザーモードのプロセスでは補足できないので、ログオン・プロセスのふりをするマルウェアからパスワードを保護できる。

 (注:SASキー:SecureAttention Sequence Key ・・・ WindowsのデフォルトSASは、Ctrl+ Alt+Delete)。
[ 構成要素などについて調査中 ]
Windows NT Logon Application
Windows NT Logon Application
C:\WINNT\system32\ winlogon.exe
C:\WINNT\system32\ msgina.dll
NT Layer DLL C:\WINNT\system32\ ntdll.dll
Windows NT BASE API Client DLL C:\WINNT\system32\KERNEL32.dll ( Win API DLL ※↓
Advanced Windows 32 Base API C:\WINNT\system32\ADVAPI32.dll ( Win API DLL ※↓
GDI Client DLL
C:\WINNT\system32\GDI32.dll ( Win API DLL ※↓
Windows 2000 USER API Client DLL C:\WINNT\system32\USER32.dll ( Win API DLL ※↓
Common Controls Library C:\WINNT\system32\COMCTL32.dll ( Win API DLL ※↓
Common Dialogs DLL C:\WINNT\system32\comdlg32.dll ( Win API DLL ※↓
Windows Shell Common Dll C:\WINNT\system32\SHELL32.dll ( Win API DLL ※↓
Shell Light-weight Utility Library C:\WINNT\system32\SHLWAPI.dll ( Win API DLL ※↓
Crypto API32
C:\WINNT\system32\CRYPT32.dll
Cryptography Manager
C:\WINNT\system32\cryptdll.dll
ADs Router Layer DLL
C:\WINNT\system32\ACTIVEDS.DLL ( Win API DLL ※↓ )
ADs LDAP Provider C DLL
C:\WINNT\system32\ADSLDPC.DLL ( Win API DLL ※↓ )
Win32 LDAP API DLL
C:\WINNT\system32\WLDAP32.DLL ( Win API DLL ※↓ )
Network DDE Share Management APIs
C:\WINNT\system32\nddeapi.dll
Userenv ←?(ProfileMappingAPIなどグループポリシー管理関係) C:\WINNT\system32\profmap.dll
Remote Procedure Call Runtime
C:\WINNT\system32\rpcrt4.dll
Security Support Provider Interface
C:\WINNT\system32\secur32.dll
Windows File Protection
C:\WINNT\system32\sfc.dll
Userenv
C:\WINNT\system32\USERENV.DLL
Microsoft C Runtime Library C:\WINNT\system32\MSVCRT.dll ( VC Runtime )





4
ログオン画面
GINA ( C:\WINNT\syste32\ msgina.dll ) または Windows Logon UI ( C:\Windows\ logonui.exe
 Windows XP 以降では、 logonui.exe(LSA Executable and Server DLL) が ログオン 画面・ユーザ切替え画面の表示とログオン認証を行う。
 当然、ログオンした状態では終了している。

 Windows NT と 2000 では、msgina.dll(GINA=Graphical Identificationand Authentication )というDLLを、winlogon.exe から呼び出して、ログオン画面の表示とログオン認証を行っている。 


4
ローカルセキュリティ認証サーバ :Local Security Authority Subsystem Service (lsass.exe)
 セキュリティ サブシステム。
 Windows ログオンプロセスの下で動作し、カーネルに対してセキュリティ サービスを提供し、ログオンの認証などを行う。

 セキュリティ サブシステムは、Windows 2000 から新たに追加された Kerberos認証機能 ファイルの暗号化機能 などを、システムとして支援するサブシステム。
 セキュリティ サブシステムは、実際には下記の様にいくつかのコンポーネントで構成されている。
 セキュリティ サブシステムの下で動作する、各サービスの詳細は、 「
Windowsの主なサービス」 を参照のこと。
  • LSA Local Security Authority :ローカルセキュリティ認証サーバ):
     ローカル システムのセキュリティに関するすべての情報を制御する。

    • Net Logonサービス
       LSA の下で動作するサービス。
       ドメイン環境でのログオン処理を司る。

    • SAM(Security Accounts Manager)サービス
       LSA の下で動作するサービス。
       ユーザー アカウントやグループ アカウント情報を管理する。

    • IPSec Policy Agent Service
       LSA の下で動作するサービス。
       TCP/IP ネットワーク上のクライアントとサーバーの間にエンド ツー エンドのセキュリティを提供する。
       安全な認証を行うための認証プロトコルである Kerberos V5 NTLM (Kerberos未使用時の認証プロトコル)が含まれている。


LSA Executable and Server DLL (Export Version)
LSA Executable and Server DLL (128-Bit-Version)
C:\WINNT\system32\ l sass.exe
C:\WINNT\system32\ LSASRV.DLL
Security Support Provider Interface
C:\WINNT\system32\ secur32.dll
Crypto API32 C:\WINNT\system32\ CRYPT32.dll
Cryptography Manager C:\WINNT\system32\ cryptdll.dll
Net Logon Services DLL
C:\WINNT\system32\ NETLOGON.DLL
Net Win32 API DLL
C:\WINNT\system32\ Netapi32.dll
SAM Server DLL
C:\WINNT\system32\ SAMSRV.DLL
Kerberos Security Package
C:\WINNT\system32\ kerberos.dll
IPSec Policy Agent Service
C:\WINNT\system32\ polagent.dll

4
Windows NT Multiple Provider Notification Application C:\WINNT\system32\ mpnotify.exe
  調査中 .
ログオンした状態では終了している。

  • CTX102385 - ワークステーションでカスタムGINAを使用している場合、Ctrl+Alt+Delキーを押してNTのパスワードを変更してもSSONアカウント情報が更新されない - Citrix Knowledge Center
  • CTX114359 - 埋め込み式クライアントのワークステーション上でパススルー認証を使用する場合MPnotify.exeが必要になる - Citrix Knowledge Center:
mpnotify.exe - File Information [Is mine authentic?] :

4
Windows Update Automatic Updates C:\WINNT\system32\ wuauclt.exe
  調査中 .
  Windows Update の更新情報を検索し、システムに通知する.
 起動してしばらくすると
終了する。


5
Userinit Logon Application C:\WINNT\system32\ userinit.exe ):
 ログイン時に、次のレジストリに格納されているユーザー環境を初期化するための処理を行う。
  • HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
 初期化の処理には以下の様な処理がある。
  • ログインスクリプトの実行
  • グループポリシーの適応
  • ネットワーク接続の確立
  • Windowsシェルの開始(上述のWinlogonキーの下にあるShell値で定義されたシェル。デフォルトは Explorer.exe)
 初期化が終了すると、このプロセスは終了する。


6
Windows エクスプローラ C:\WINNT\ Explorer.EXE
 ログオン時に Userinit.exe から起動される Windows のグラフィカルシェルで、タスクバーやデスクトップの表示を行う。

 Explorerは Userinit.exe の子プロセスで、Winlogon プロセスの孫プロセスと言えるプロセスだが、ユーザがログオンした時点では、Userinit プロセスは動作を既に終了している。
 このため Process Explorer や Tlist などのツールではExplorerの親プロセスは表示されない。



7
キーボード言語インジケータ (Keyboard Language Indicator Applet : C:\WINNT\system32\ Internat.exe
 ログオン時にシェル(Explorer.exe)から起動されるプロセスで、Windows の多言語機能を提供する。

 このプロセスがタスクトレイに言語選択のアイコンを置く 。


4
サービスコントロールマネージャ (C:\WINNT\system32\ services.exe
 サービスの起動・終了を管理するサービス管理マネージャ。

 Windows のブート時にサービスを自動起動し、シャットダウン時に終了させる。

 各サービスの詳細は、
Windowsの主なサービス」を参照のこと。


5
WMI (Windows Management Instrumentation : C:\WINNT\system32\wbem\ winmgmt.exe
 Windows 管理技術の中核を担うコンポーネント。
 以下の様なスクリプトを作成する際に使用する。
  • サーバーのユーザーアカウントを扱うスクリプト。
  • リモート コンピュータ上のプロセスの起動するスクリプト。
  • 特定の日時にプロセスを実行するスケジュールの設定するスクリプト。
  • リモート コンピュータの再起動するスクリプト。
  • ローカル コンピュータまたはリモート コンピュータにインストールされているアプリケーションのリストを取得するスクリプト。
  • ローカル コンピュータまたはリモート コンピュータ上の Windows イベント ログを照会するスクリプト。
参考:

5
Generic Host Process for Win32 Services C:\WINNT\system32\ svchost.exe
 Windows OS内の各種サービスを起動するための親となるプロセス。

 各種のネットワーク・サービスは、起動時に svchost.exe を経由して起動するようになっている。

 レジストリ キー " HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost" には、svchost.exeが起動するサービスが記述されている。 このレジストリキー配下では、サービスがグループごとに分類されている。

 svchost.exe の下で動作する、各サービスについての詳細は、 Windows-Services - Zoho Writer を参照のこと。









     RSS of this page

     
     

    他のサイト: