Share via


Windows Vista 的服務變更

服務模型有重大變更,可改善服務的效能、可靠性、安全性、管理和管理。

下表摘要說明 Windows Vista 服務的增強功能。

增強功能 Description
延遲自動啟動
系統啟動之後,很快就會啟動延遲的自動啟動服務。 這可改善系統啟動效能,同時仍為這些服務提供自動啟動。 若要設定延遲的自動啟動旗標,請使用SERVICE_CONFIG_DELAYED_AUTO_START_INFO呼叫ChangeServiceConfig2函式。
失敗偵測和復原
如果服務失敗,服務控制管理員 (SCM) 可以執行失敗動作,例如在嘗試從該失敗中復原時重新開機服務。 若要設定失敗動作,請使用SERVICE_CONFIG_FAILURE_ACTIONS呼叫ChangeServiceConfig2
Preshutdown 通知
服務可以在收到實際的關機通知之前,先在其HandlerEx函式中註冊以接收SERVICE_CONTROL_PRESHUTDOWN通知。 這會為服務提供較長的關機程式,以更久的時間正常關機。 若要設定逾時值,請使用SERVICE_CONFIG_PRESHUTDOWN_INFO呼叫ChangeServiceConfig2
受限制的網路存取
您可以使用服務 SID 來限制對埠、通訊協定或網路流量方向的存取。 若要限制服務的網路存取權,請使用 INetFwServiceRestriction 介面。
以最低許可權執行
服務可以在任何包含 LocalService、NetworkService、LocalSystem、網域帳戶或本機帳戶 (必要許可權的帳戶下執行,) ,並使用SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO呼叫ChangeServiceConfig2來指出所需的許可權。 SCM 會移除不需要的任何許可權。
服務隔離
服務可以使用包含服務 SID 的存取控制專案,隔離物件,例如檔案或登錄機碼,以供其獨佔使用。 將此 SID 指派給服務之後,服務擁有者可以修改物件的存取控制清單,以授與 SID 的存取權。 這可讓服務存取特定物件,而不需以高許可權帳戶執行,或降低物件的安全性。 若要設定服務 SID,請使用SERVICE_CONFIG_SERVICE_SID_INFO呼叫ChangeServiceConfig2
服務狀態變更通知
服務可以在建立、刪除服務或使用 NotifyServiceStatusChange 函式的狀態變更時註冊以通知。 這比在迴圈中呼叫 QueryServiceStatusEx 函 式來輪詢狀態更有效率。
會話 0 隔離
服務一律會在會話 0 中執行。 在 Windows Vista 之前,第一個登入的使用者也會指派給會話 0。 現在,會話 0 僅保留給與互動式使用者會話相關聯的服務和其他應用程式。 (要登入的第一位使用者已連線到會話 1,第二個登入的使用者會連線到會話 2,因此。) 會話 0 不支援與使用者互動的程式。
這項變更表示服務無法張貼或傳送訊息至應用程式,而應用程式無法傳送或張貼訊息至服務。 此外,服務無法直接顯示使用者介面專案,例如對話方塊。 服務可以使用 WTSSendMessage 函式在另一個會話中顯示對話方塊。

服務