getSharedServiceDirectory 函式 (winsvc.h)
傳回服務的每個服務檔案系統位置的路徑,以及要讀取和/或寫入狀態的相關聯程式。
語法
DWORD GetSharedServiceDirectory(
SC_HANDLE ServiceHandle,
SERVICE_SHARED_DIRECTORY_TYPE DirectoryType,
PWCHAR PathBuffer,
DWORD PathBufferLength,
DWORD *RequiredBufferLength
);
參數
ServiceHandle
服務的控制碼。 OpenService函式會傳回此控制碼。
DirectoryType
識別要擷取之個別服務共用目錄路徑類型 之SERVICE_SHARED_DIRECTORY_TYPE 列舉的成員。
PathBuffer
將複製路徑字串的呼叫端配置緩衝區。 如果為 Null,則函式呼叫將會失敗,並 ERROR_INSUFFICIENT_BUFFER傳回必要緩衝區長度,在 WCHAR 中為 RequiredBufferLength。 如果為非 Null,則應在 PathBufferLength中指定緩衝區的長度。 寫入的路徑將會是 Null 終止。
PathBufferLength
PathBuffer中提供的緩衝區長度,以 WCHARS 為單位。 如果 PathBuffer 為 Null,則會忽略此引數。
RequiredBufferLength
此值會以 WCHAR 單位設定為緩衝區的必要長度。 此長度包含終止的 Null 字元。
傳回值
當所有作業都成功完成且 Null 終止的狀態路徑寫入 PathBuffer時,會傳回ERROR_SUCCESS。 如果 PathBuffer 不足以包含狀態路徑,或 PathBuffer 為 Null,則傳回ERROR_INSUFFICIENT_BUFFER。 在此情況下,WCHAR 中的必要緩衝區長度會透過 RequiredBufferLength傳回。 如果發生其他失敗,則會傳回 Win32 錯誤碼。
備註
針對 ServiceSharedDirectoryPersistentState,目錄的安全性會設定為只提供本機系統帳戶、服務 SID 和本機系統管理員的寫入權限。 請確定呼叫此 API 的任何服務都已啟用服務 SID。 如需詳細資訊,請參閱 SERVICE_SID_INFO。
如需專門提供服務狀態以供服務本身使用的類似 API,請參閱 GetServiceDirectory。
卸載服務之後,服務控制管理員會刪除所有服務狀態目錄。
規格需求
最低支援的用戶端 | Windows 11 (組建 22000) |
最低支援的伺服器 | Windows Server 2022 (組建 20348) |
標頭 | winsvc.h |
程式庫 | Onecore.lib |