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


Функция 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.

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Server 2003 с пакетом обновления 1 (SP1)
целевая платформа Всеобщий
заголовка ntifs.h (include Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe (режим ядра); Ntdll.dll (режим пользователя)
IRQL <= APC_LEVEL

См. также

ACL

RtlCreateSecurityDescriptor

RtlLengthSecurityDescriptor

RtlSelfRelativeToAbsoluteSD

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor