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


Функция MakeSelfRelativeSD (securitybaseapi.h)

Функция MakeSelfRelativeSD создает дескриптор безопасности в относительном формате, используя дескриптор безопасности в абсолютном формате в качестве шаблона.

Синтаксис

BOOL MakeSelfRelativeSD(
  [in]            PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
  [out, optional] PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
  [in, out]       LPDWORD              lpdwBufferLength
);

Параметры

[in] pAbsoluteSecurityDescriptor

Указатель на структуру SECURITY_DESCRIPTOR в абсолютном формате. Функция создает версию этого дескриптора безопасности в относительном формате, не изменяя исходный.

[out, optional] pSelfRelativeSecurityDescriptor

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

[in, out] lpdwBufferLength

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

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

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

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

Возвращаемый код/значение Описание
ERROR_INSUFFICIENT_BUFFER
0x7A
Один или несколько буферов слишком малы.

Комментарии

Дескриптор безопасности в абсолютном формате содержит указатели на содержащиеся в нем сведения, а не сами сведения. Дескриптор безопасности в автономном формате содержит сведения в непрерывном блоке памяти. В самостоятельном дескрипторе безопасности структура SECURITY_DESCRIPTOR всегда запускает сведения, но другие компоненты дескриптора безопасности могут следовать за структурой в любом порядке. Вместо использования адресов памяти компоненты дескриптора безопасности идентифицируются по смещениям от начала дескриптора безопасности. Этот формат удобен, когда дескриптор безопасности должен храниться на диске или передаваться по протоколу связи.

Сервер, который копирует защищенные объекты на различные носители, может использовать функцию MakeSelfRelativeSD для создания самостоятельного дескриптора безопасности из абсолютного дескриптора безопасности и функции MakeAbsoluteSD для создания абсолютного дескриптора безопасности из дескриптора безопасности.

Требования

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

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

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

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

MakeAbsoluteSD

SECURITY_DESCRIPTOR