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,并在 RequiredBufferLength 中返回所需的缓冲区长度(以 WCHAR 为单位)。 如果不是 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 |
Library | Onecore.lib |