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

Подпрограмма RtlConvertSidToUnicodeString создает печатаемое строковое представление идентификатора безопасности (SID) в Юникоде.

Синтаксис

NTSYSAPI NTSTATUS RtlConvertSidToUnicodeString(
  [in, out] PUNICODE_STRING UnicodeString,
  [in]      PSID            Sid,
  [in]      BOOLEAN         AllocateDestinationString
);

Параметры

[in, out] UnicodeString

Указатель на UNICODE_STRING структуру, содержащую созданную строку Юникода. Элемент UnicodeString-MaximumLength> задается, только если свойство AllocateDestinationString имеет значение TRUE.

[in] Sid

Указатель на структуру SID, которая должна быть преобразована в Юникод (структура SID не затрагивается).

[in] AllocateDestinationString

Логический флаг, указывающий, будет ли эта подпрограмма выделять буфер ЮникодString. Если значение РАВНО TRUE, то выделяется только член UnicodeString-Buffer>, а остальная часть структуры UnicodeString должна быть выделена вызывающим объектом.

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

Подпрограмма RtlConvertSidToUnicodeString может возвращать одно из следующих значений:

Код возврата Описание
STATUS_SUCCESS
Преобразование прошло успешно.
STATUS_BUFFER_OVERFLOW
Возвращается, если параметр AllocateDestinationString имеет значение FALSE , а буфер UnicodeString , предоставленный вызывающим объектом, слишком мал для хранения преобразованной строки Юникода.
STATUS_NO_MEMORY
Возвращается, если свойство AllocateDestinationString имеет значение TRUE и для выделения буфера ЮникодString недостаточно памяти.
STATUS_INVALID_SID
Указанная структура SID не является структурно допустимой.

Комментарии

Созданная строка Юникода будет принимать одну из двух форм. Если значение элемента IdentifierAuthority sid меньше или равно 2^32, элемент IdentifierAuthority будет создан как десятичный. Например, идентификатор SID с идентификатором IdentifierAuthority 281 736 создает:

 S-1-281736-12-72-9-110

В противном случае значение IdentifierAuthority будет создано как шестнадцатеричное. Например, идентификатор SID с идентификатором IdentifierAuthority 173 495 281 736 создает:

 S-1-0x28651FE848-12-72-9-110

Все остальные элементы в sid будут созданы как десятичные.

Если свойство AllocateDestinationString имеет значение TRUE, выделенный буфер должен быть освобожден с помощью RtlFreeUnicodeString.

Требования

Требование Значение
Минимальная версия клиента Windows 2000
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h, FltKernel.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

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

RtlFreeUnicodeString

SID

UNICODE_STRING