Функция RtlAbsoluteToSelfRelativeSD (ntifs.h)

Подпрограмма RtlAbsoluteToSelfRelativeSD создает новый дескриптор безопасности в относительном формате, используя дескриптор безопасности в абсолютном формате в качестве шаблона.

Синтаксис

NTSYSAPI NTSTATUS RtlAbsoluteToSelfRelativeSD(
  [in]      PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor,
  [out]     PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor,
  [in, out] PULONG               BufferLength
);

Параметры

[in] AbsoluteSecurityDescriptor

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

[out] SelfRelativeSecurityDescriptor

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

[in, out] BufferLength

Указатель на переменную, выделенную вызывающим объектом, которая указывает размер (в байтах) буфера, на который указывает параметр SelfRelativeSecurityDescriptor . Если буфер недостаточно велик для хранения дескриптора безопасности, RtlAbsoluteToSelfRelativeSD возвращает STATUS_BUFFER_TOO_SMALL и задает для этой переменной минимальный требуемый размер.

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

RtlAbsoluteToSelfRelativeSD возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например одно из следующих значений:

Код возврата Описание
STATUS_BAD_DESCRIPTOR_FORMAT
Буфер, на который указывает параметр AbsoluteSecurityDescriptor , не содержал SECURITY_DESCRIPTOR структуры в абсолютном формате. STATUS_BAD_DESCRIPTOR_FORMAT — это код ошибки.
STATUS_BUFFER_TOO_SMALL
Буфер, на который указывает параметр SelfRelativeSecurityDescriptor , был слишком мал для того, чтобы содержать дескриптор безопасности в само относительном формате. STATUS_BUFFER_TOO_SMALL — это код ошибки.

Комментарии

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

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

Дополнительные сведения о безопасности и управлении доступом см. в документации по Microsoft Windows SDK.

Требования

Требование Значение
Минимальная версия клиента Windows Server 2003 с пакетом обновления 1 (SP1)
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe (режим ядра); Ntdll.dll (пользовательский режим)
IRQL <= APC_LEVEL

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

ACL

RtlCreateSecurityDescriptor

RtlLengthSecurityDescriptor

RtlSelfRelativeToAbsolutesd

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor