複製鏈接
請複製以下鏈接發送給好友

服務控制管理器

鎖定
服務控制管理器(Service Control Manager,簡稱SCM)是Windows NT操作系統中的特殊系統進程,其控制Windows服務進程的啓動、停止和交互。
中文名
服務控制管理器
外文名
Service Control Manager
簡    稱
SCM
領    域
計算機

服務控制管理器簡介

它的可執行文件位於%SystemRoot%\System32\services.exe。服務進程與SCM的交互通過已定義的API完成,同一API也被交互式Windows服務管理工具使用,例如MMC擴展Services.msc和命令行的服務控制實用工具sc.exe。 [1] 

服務控制管理器實現

服務控制管理器延遲的自動啓動服務

延遲的自動啓動服務在Windows Vista中被添加,目的是解決系統啓動耗時過長的問題,以及提高關鍵服務的啓動速度。在設計之初,自動啓動的服務初始化方法是為其他應用程序和服務依賴的基本系統服務所涉及。SCM僅在處理所有非延遲的自動啓動服務後初始化延遲服務(調用ScInitDelayStart()函數)。此函數用工作線程延遲並排隊工作項(默認120秒)。除在延遲之後初始化,延遲與非延遲的自動啓動服務沒有其他區別。 [1] 

服務控制管理器設備驅動程序

註冊表值Type(類型)為SERVICE_KERNEL_DRIVER或SERVICE_FILE_SYSTEM_DRIVER的服務會被特殊處理:這代表其為設備驅動程序,ScStartService()會調用ScLoadDeviceDriver()函數來加載相應的驅動程序(通常是擴展名為.sys的文件,大多位於%SystemRoot%\System32\Drivers\目錄)。為了此目的,NtLoadDriver系統調用已被引用,SeLoadDriverPrivilege也已添加到SCM進程。 [1] 

服務控制管理器網絡驅動器

SCM還提供了一個與Windows服務無關的額外功能:它會在一個網絡驅動器連接被創建或刪除時通知圖形用户界面應用程序(例如Windows Explorer),通過廣播窗口消息WM_DEVICECHANGE。 [1] 

服務控制管理器Windows服務

Windows服務是指Windows NT操作系統中的一種運行在後台的計算機程序。它在概念上類似於Unix守護進程。Windows服務必須匹配服務控制管理器(負責管理Windows服務的組件)的接口規則和協議。
Windows服務可以配置為在操作系統啓動時運行,並且在Windows運行期間持續在後台運行。服務也可以手動或基於某個事件而啓動。Windows NT操作系統包含眾多服務,分別運行在三種用户帳户環境中:系統、網絡服務和本地服務。這些Windows組件通常採用Windows服務託管進程。因為Windows服務運行在其自身的專用用户帳户中,它們可以在用户未登錄時活動。
在Windows Vista之前,安裝為“交互服務”的服務可以與Windows桌面交互和顯示圖形用户界面。但在Windows Vista中,交互服務已被棄用,並且可能無法正常運行。 [2] 

服務控制管理器Svchost.exe

Svchost.exe微軟的窗口操作系統裏專門用來運行DLL程序的前導程序。 它正確的位置應該位於操作系統盤根目錄的\Windows\system32目錄下(64位系統則亦在系統盤根目錄的\Windows\SysWOW64)。如果在其他地方看到,那麼很可能是病毒程序。 [2] 
參考資料
  • 1.    Russinovich, Solomon & Ionescu (2009:79)Template:Citation broken
  • 2.    How to create a Windows service by using Sc.exe. Support. Microsoft. 11 September 2011