Функция 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 может возвращать один из следующих кодов ошибок.
Код возврата | Описание |
---|---|
|
Недействительный параметр. |
|
Недопустимый уровень редакции. |
|
Не удалось найти идентификатор безопасности (SID) во входном дескрипторе безопасности в операции поиска учетной записи. |
|
Недопустимый список управления доступом (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 |
См. также раздел
Базовые функции контроль доступа