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


Функция 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 задан только в том случае, если AllocateDestinationStringTRUE.

[in] Sid

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

[in] AllocateDestinationString

Логический флаг, указывающий, будет ли эта подпрограмма выделять буфер ЮникодString. Если true, выделяется только элемент > буфера ЮникодString, а остальная часть ЮникодСтринг должна быть выделена вызывающим объектом.

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

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

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

Замечания

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

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

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

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

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

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

Требования

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

См. также

RtlFreeUnicodeString

SID

UNICODE_STRING