跳至內容

服務控制管理器

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

服務控制管理器(Service Control Manager,簡稱SCM)是Windows NT作業系統中的特殊系統處理程序,其控制Windows服務處理程序的啟動、停止和互動。[1]它的可執行檔案位於 %SystemRoot%\System32\services.exe。服務處理程序與SCM的互動通過已定義的API完成,同一API也被互動式Windows服務管理工具使用,例如MMC擴充Services.msc命令列的服務控制實用工具sc.exe

實現

[編輯]

延遲的自動啟動服務

[編輯]

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

裝置驅動程式

[編輯]

登錄檔值Type(類型)為SERVICE_KERNEL_DRIVERSERVICE_FILE_SYSTEM_DRIVER的服務會被特殊處理:這代表其為裝置驅動程式,ScStartService() 會呼叫 ScLoadDeviceDriver() 函數來載入相應的驅動程式(通常是副檔名為 .sys 的檔案,大多位於 %SystemRoot%\System32\Drivers\ 目錄)。為了此目的,NtLoadDriver系統呼叫已被參照,SeLoadDriverPrivilege也已添加到SCM處理程序。

網絡驅動器

[編輯]

SCM還提供了一個與Windows服務無關的額外功能:它會在一個網絡驅動器連接被建立或刪除時通知圖形化使用者介面應用程式(例如Windows Explorer),通過廣播視窗訊息 WM_DEVICECHANGE

參見

[編輯]

註釋

[編輯]

參考資料

[編輯]