Функция 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, например одно из следующих значений:
Возвращаемый код | Описание |
---|---|
|
Буфер, на который указывает параметр AbsoluteSecurityDescriptor, не содержал SECURITY_DESCRIPTOR структуру в абсолютном формате. STATUS_BAD_DESCRIPTOR_FORMAT — это код ошибки. |
|
Буфер, на который указывает параметр 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 |