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

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

Синтаксис

BOOL ConvertStringSecurityDescriptorToSecurityDescriptorA(
  [in]  LPCSTR               StringSecurityDescriptor,
  [in]  DWORD                StringSDRevision,
  [out] PSECURITY_DESCRIPTOR *SecurityDescriptor,
  [out] PULONG               SecurityDescriptorSize
);

Параметры

[in] StringSecurityDescriptor

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

[in] StringSDRevision

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

[out] SecurityDescriptor

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

[out] SecurityDescriptorSize

Указатель на переменную, которая получает размер преобразованного дескриптора безопасности (в байтах). Этот параметр может принимать значение NULL.

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

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

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

Код возврата Описание
ERROR_INVALID_PARAMETER
Недействительный параметр.
ERROR_UNKNOWN_REVISION
Недопустимый уровень редакции SDDL.
ERROR_NONE_MAPPED
Идентификатор безопасности (SID) во входной строке дескриптора безопасности не найден в операции поиска учетной записи.

Комментарии

Если ace_type является ACCESS_ALLOWED_OBJECT_ACE_TYPE и ни в object_guid , ни в inherit_object_guid не указан GUID , то ConvertStringSecurityDescriptorToSecurityDescriptor преобразует ace_type в ACCESS_ALLOWED_ACE_TYPE. Сведения о полях ace_type, object_guid и inherit_object_guid см. в разделе Строки Ace.

Примечание

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

Требования

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

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

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

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

ConvertSecurityDescriptorToStringSecurityDescriptor

ConvertSidToStringSid

ConvertStringSidToSid

MakeAbsolutesd

SECURITY_DESCRIPTOR