進(jìn)程綜述
smss.exe進(jìn)程是微軟®公司為其發(fā)布的基于Windows NT系統(tǒng)(200/XP/Vista以及Win7等)定義的一個(gè)重要系統(tǒng)核心程序,官方描述為:Windows會(huì)話管理器。
會(huì)話管理器負(fù)責(zé)Windows操作系統(tǒng)啟動(dòng)及操作中的許多的重要步驟,比如打開額外的頁(yè)面文件、執(zhí)行延遲的文件改名和刪除操作,創(chuàng)建系統(tǒng)環(huán)境變量。他也將Csrss.exe和Winlogon.exe進(jìn)程啟動(dòng)起來,Winlogon.exe進(jìn)程會(huì)依次創(chuàng)建其他系統(tǒng)進(jìn)程。
smss.exe這是一個(gè)Windows后臺(tái)進(jìn)程,會(huì)隨著系統(tǒng)一起啟動(dòng),由于其是系統(tǒng)運(yùn)行的重要進(jìn)程,如果強(qiáng)行將其終止系統(tǒng)也會(huì)被關(guān)閉,如下圖所示:
smss.exe作為系統(tǒng)進(jìn)程在通常情況下都是安全的,我們可以在以下位置看到其程序文件:
所在位置:C:\Windows\System32\smss.exe(C代表系統(tǒng)安裝所在分區(qū)盤符)
功能詳解
smss.exe(會(huì)話管理器)是Windows系統(tǒng)中第一個(gè)創(chuàng)建的用戶模式進(jìn)程。負(fù)責(zé)完成執(zhí)行體和內(nèi)核初始化工作的內(nèi)核模式系統(tǒng)線程在最后階段創(chuàng)建了實(shí)際的Smss進(jìn)程。在啟動(dòng)Windows的過程中,smss.exe作用過程分為7個(gè)步驟,分別如下:
- 創(chuàng)建LPC port對(duì)象,為MSDOS定義符號(hào)連接,例如COM1、LPT1,假如安裝有Terminal Services,則創(chuàng)建\Sessions目錄
- 運(yùn)行注冊(cè)表里HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute定義的程序,一般默認(rèn)的是運(yùn)行Autochk
- 執(zhí)行HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations表鍵中的延遲,刪除,改名操作
- 加載HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs 初始化paging files和注冊(cè)表
- 創(chuàng)建系統(tǒng)環(huán)境變量,這些定義在HKLM\System\CurrentControlSet\Session Manager\Environment
- 加載和初始化Win32子系統(tǒng)的內(nèi)核模塊Win32k.sys
- 創(chuàng)建Win32子系統(tǒng)服務(wù)器進(jìn)程,包括Csrss.exe并創(chuàng)建Winlogon.exe進(jìn)程。
在注冊(cè)表的HKLM\SYSTEM\CurrentControlSet\Control\Session Manager下面,你可以找到許多配置信息,它們驅(qū)動(dòng)了Smss.exe的初始化步驟。Smss.exe中的主線程在執(zhí)行了這些初始化步驟以后, 一直在Csrss.exe和Winlogon.exe的進(jìn)程句柄上等待。如果這兩個(gè)進(jìn)程中的任何一個(gè)非正常終止了,則Smss讓系統(tǒng)崩潰掉(崩潰的代碼是 STATUS_SYSTEM_PROCESS_TERMINATED或0xC000021A),因?yàn)閃indows要依賴于這兩個(gè)進(jìn)程的存在才能運(yùn)行得下去。(拓展閱讀:svchost.exe是什么進(jìn)程?)
同時(shí)Smss.exe等待加載子系統(tǒng)的請(qǐng)求、調(diào)試事件,以及創(chuàng)建新的終端服務(wù)器會(huì)話(terminal server sessions)的請(qǐng)求。終端服務(wù)會(huì)話(Terminal Services session)的創(chuàng)建是由Smss.exe來完成的。當(dāng)Smss.exe接到一個(gè)創(chuàng)建會(huì)話的請(qǐng)求時(shí),它首先調(diào)用NtSetSystemInformation,請(qǐng)求建立內(nèi)核模式的會(huì)話數(shù)據(jù)結(jié)構(gòu)。又依次調(diào)用內(nèi)部的內(nèi)存管理器函數(shù)MmSessionCreate, 該函數(shù)建立起會(huì)話虛擬地址空間,該地址空間中包含會(huì)話中的換頁(yè)內(nèi)存池,以及由Win32子系統(tǒng)的內(nèi)核模式部分(Win32k.sys)和其他的會(huì)話空間設(shè)備驅(qū)動(dòng)程序所分配的、屬于每個(gè)會(huì)話的數(shù)據(jù)結(jié)構(gòu)。然后,Smss.exe為該會(huì)話創(chuàng)建Winlogon.exe和Csrss.exe的實(shí)例。