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 |