Функция 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.
Возвращаемое значение
Возвращает ERROR_SUCCESS, когда все операции успешно завершены, а путь состояния, завершающийся null, записывается в PathBuffer. Возвращает ERROR_INSUFFICIENT_BUFFER, если PathBuffer не был достаточно велик, чтобы содержать путь к состоянию, или значение , если PathBuffer имеет значение NULL. В этом случае необходимая длина буфера в WCHAR возвращается через RequiredBufferLength. Если происходит какой-то другой сбой, возвращается код ошибки Win32.
Комментарии
Для ServiceSharedDirectoryPersistentState безопасность каталога предоставляет доступ на запись только к локальной системной учетной записи, идентификатору безопасности службы и локальным администраторам. Убедитесь, что идентификаторы безопасности служб включены для любой службы, которая вызывает этот API. Дополнительные сведения см. в разделе SERVICE_SID_INFO.
Сведения о аналогичном API, который предоставляет состояние службы исключительно для использования самой службой, см. в разделе GetServiceDirectory.
Все каталоги состояния службы удаляются диспетчером управления службами после удаления службы.
Требования
Минимальная версия клиента | Windows 11 (сборка 22000) |
Минимальная версия сервера | Windows Server 2022 (сборка 20348) |
Верхняя часть | winsvc.h |
Библиотека | Onecore.lib |