Функция ConvertSecurityDescriptorToStringSecurityDescriptorA (sddl.h)

Функция ConvertSecurityDescriptorToStringSecurityDescriptor преобразует дескриптор безопасности в строковый формат. Для хранения или передачи дескриптора безопасности можно использовать строковый формат.

Чтобы преобразовать дескриптор безопасности в строковом формате обратно в допустимый функциональный дескриптор безопасности, вызовите функцию ConvertStringSecurityDescriptorToSecurityDescriptor .

Синтаксис

BOOL ConvertSecurityDescriptorToStringSecurityDescriptorA(
  [in]  PSECURITY_DESCRIPTOR SecurityDescriptor,
  [in]  DWORD                RequestedStringSDRevision,
  [in]  SECURITY_INFORMATION SecurityInformation,
  [out] LPSTR                *StringSecurityDescriptor,
  [out] PULONG               StringSecurityDescriptorLen
);

Параметры

[in] SecurityDescriptor

Указатель на преобразуемый дескриптор безопасности. Дескриптор безопасности может иметь абсолютный или относительный формат.

[in] RequestedStringSDRevision

Указывает уровень редакции выходной строки StringSecurityDescriptor . В настоящее время это значение должно быть SDDL_REVISION_1.

[in] SecurityInformation

Задает сочетание SECURITY_INFORMATION битовых флагов для указания компонентов дескриптора безопасности, которые необходимо включить в выходную строку.

Флаг BACKUP_SECURITY_INFORMATION не применим к этой функции. Если передается флаг BACKUP_SECURITY_INFORMATION, параметр SecurityInformation возвращает значение TRUE с выводом строки NULL .

[out] StringSecurityDescriptor

Указатель на переменную, которая получает указатель на строку дескриптора безопасности, завершающуюся значением NULL. Описание формата строки см. в разделе Формат строки дескриптора безопасности. Чтобы освободить возвращенный буфер, вызовите функцию LocalFree .

[out] StringSecurityDescriptorLen

Указатель на переменную, которая получает размер в TCHARстроки дескриптора безопасности, возвращаемой в буфере StringSecurityDescriptor . Этот параметр может иметь значение NULL , если вам не нужно получать размер. Размер представляет размер буфера в WCHAR, а не количество WCHARв строке.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError. Функция GetLastError может возвращать один из следующих кодов ошибок.

Код возврата Описание
ERROR_INVALID_PARAMETER
Недействительный параметр.
ERROR_UNKNOWN_REVISION
Недопустимый уровень редакции.
ERROR_NONE_MAPPED
Не удалось найти идентификатор безопасности (SID) во входном дескрипторе безопасности в операции поиска учетной записи.
ERROR_INVALID_ACL
Недопустимый список управления доступом (ACL). Эта ошибка возвращается, если флаг SE_DACL_PRESENT установлен во входном дескрипторе безопасности, а daCL имеет значение NULL.

Комментарии

Если dacl имеет значение NULL, а бит управления SE_DACL_PRESENT задан во входном дескрипторе безопасности, функция завершается ошибкой.

Если DACL имеет значение NULL, а бит элемента управления SE_DACL_PRESENT не задан во входном дескрипторе безопасности, результирующая строка дескриптора безопасности не имеет компонента D:. Дополнительные сведения см. в разделе Формат строки дескриптора безопасности.

Примечание

Заголовок sddl.h определяет ConvertSecurityDescriptorToStringSecurityDescriptor в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header sddl.h
Библиотека Advapi32.lib
DLL Advapi32.dll

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

Обзор контроль доступа

Базовые функции контроль доступа

ConvertSidToStringSid

ConvertStringSecurityDescriptorToSecurityDescriptor

ConvertStringSidToSid

SECURITY_DESCRIPTOR

SECURITY_INFORMATION