Поделиться через


Функция 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

См. также раздел

OpenService

GetServiceDirectory

SERVICE_SID_INFO