服務記錄清單

由於每個服務專案都是從已安裝服務的資料庫讀取,因此 SCM 會為服務建立服務記錄。 服務記錄包括:

  • 服務名稱
  • 啟動類型 (自動啟動或需求啟動)
  • 服務狀態 (請參閱 SERVICE_STATUS 結構)
    類型
    目前狀態
    可接受的控制程式代碼
    結束碼
    等候提示
  • 相依性清單的指標

安裝服務時,會指定帳戶的使用者名稱和密碼。 SCM 會將使用者名稱儲存在登錄中,並將密碼儲存在本機安全性授權單位 (LSA) 的安全部分。 系統管理員可以建立密碼永不過期的帳戶。 或者,系統管理員也可以建立密碼過期和管理帳戶的帳戶,方法是定期變更密碼。

SCM 會保留兩份使用者帳戶的密碼、目前的密碼和備份密碼。 第一次安裝服務時指定的密碼會儲存為目前的密碼,且備份密碼不會初始化。 當 SCM 嘗試在使用者帳戶的安全性內容中執行服務時,它會使用目前的密碼。 如果成功使用目前的密碼,它也會儲存為備份密碼。 如果使用 ChangeServiceConfig 函式或 Services 控制台公用程式修改密碼,則新密碼會儲存為目前的密碼,而先前的密碼會儲存為備份密碼。 如果 SCM 嘗試啟動服務且目前的密碼失敗,則會使用備份密碼。 如果成功使用備份密碼,則會儲存為目前的密碼。

當服務使用 SetServiceStatus 函式傳送服務狀態通知時,SCM 會更新服務狀態。 SCM 會藉由查詢 I/O 系統來維護驅動程式服務的狀態,而不是接收狀態通知,如同服務一樣。

服務可以藉由呼叫 SetServiceBits 函式來註冊其他類型資訊。 NetServerGetInfoNetServerEnum函式會取得支援的服務類型。