Функция 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
Длина буфера, предоставленного в lpPathBuffer, в единицах WCHARS. Этот аргумент игнорируется, если lpPathBuffer имеет значение NULL.
lpcchRequiredBufferLength
Это значение равно требуемой длине буфера в единицах WCHAR. Эта длина включает завершающий символ NULL.
Возвращаемое значение
Возвращает ERROR_SUCCESS при успешном завершении всех операций и записи в lpPathBuffer пути к состоянию, завершаемого значением NULL. Возвращает ERROR_INSUFFICIENT_BUFFER, если lpPathBuffer был недостаточно велик, чтобы содержать путь к состоянию, или если lpPathBuffer имеет значение NULL. В этом случае необходимая длина буфера в WCHAR возвращается через lpcchRequiredBufferLength. При возникновении другого сбоя возвращается код ошибки Win32.
Комментарии
Для ServiceDirectoryPersistentState безопасность каталога настроена таким образом, чтобы предоставить доступ на запись только к локальной системной учетной записи и идентификатору безопасности службы. Убедитесь, что идентификаторы безопасности служб включены для любой службы, которая вызывает этот API. Дополнительные сведения см. в разделе SERVICE_SID_INFO.
Аналогичный API, предоставляющий состояние службы, который может быть предоставлен совместно со связанными программами, см. в разделе GetSharedServiceDirectory.
Все каталоги состояний служб удаляются диспетчером управления службами после удаления службы.
Требования
Минимальная версия клиента | Windows 10 версии 2004 (10.0; Сборка 19041) |
Минимальная версия сервера | Windows Server версии 2004 (10.0; Сборка 19041) |
Верхняя часть | winsvc.h |
Библиотека | Onecore.lib |