共用方式為


getServiceDirectory 函式 (winsvc.h)

傳回服務讀取和/或寫入狀態之個別服務檔案系統位置的路徑。

語法

DWORD GetServiceDirectory(
  SERVICE_STATUS_HANDLE  hServiceStatus,
  SERVICE_DIRECTORY_TYPE eDirectoryType,
  PWCHAR                 lpPathBuffer,
  DWORD                  cchPathBufferLength,
  DWORD                  *lpcchRequiredBufferLength
);

參數

hServiceStatus

目前服務之狀態資訊結構的控制碼。 RegisterServiceCtrlHandler函式會傳回此控制碼。

eDirectoryType

識別要擷取之個別服務目錄路徑類型之 SERVICE_DIRECTORY_TYPE 列舉的成員。

lpPathBuffer

將複製路徑字串的呼叫端配置緩衝區。 如果為 Null,則函式呼叫會失敗,並 ERROR_INSUFFICIENT_BUFFER傳回 WCHAR 中 lpcchRequiredBufferLength中所需的緩衝區長度。 如果為非 Null,則應在 cchPathBufferLength中指定緩衝區的長度。 寫入的路徑將會是 Null 終止。

cchPathBufferLength

以 WCHARS 單位表示的 lpPathBuffer中提供的緩衝區長度。 如果 lpPathBuffer 為 Null,則會忽略此引數。

lpcchRequiredBufferLength

此值會以 WCHAR 單位設定為緩衝區的必要長度。 此長度包含終止的 Null 字元。

傳回值

當所有作業都成功完成且 Null 終止的狀態路徑寫入 lpPathBuffer時,會傳回ERROR_SUCCESS。 如果 lpPathBuffer 不足以包含狀態路徑,或 lpPathBuffer 為 Null,則傳回ERROR_INSUFFICIENT_BUFFER。 在此情況下,WCHAR 中所需的緩衝區長度會透過 lpcchRequiredBufferLength傳回。 如果發生其他失敗,則會傳回 Win32 錯誤碼。

備註

針對 ServiceDirectoryPersistentState,目錄的安全性會設定為只提供本機系統帳戶和服務 SID 的寫入權限。 請確定呼叫此 API 的任何服務都已啟用服務 SID。 如需詳細資訊,請參閱 SERVICE_SID_INFO

如需提供可與相關聯程式共用之服務狀態的類似 API,請參閱 GetSharedServiceDirectory

卸載服務之後,服務控制管理員會刪除所有服務狀態目錄。

規格需求

   
最低支援的用戶端 Windows 10版本 2004 (10.0;組建 19041)
最低支援的伺服器 Windows Server 版本 2004 (10.0;組建 19041)
標頭 winsvc.h
程式庫 Onecore.lib

另請參閱

RegisterServiceCtrlHandler

GetSharedServiceDirectory

SERVICE_SID_INFO