Função RtlConvertSidToUnicodeString (ntifs.h)

A rotina RtlConvertSidToUnicodeString gera uma representação de cadeia de caracteres Unicode imprimível de um SID (identificador de segurança).

Sintaxe

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

Parâmetros

[in, out] UnicodeString

Um ponteiro para uma estrutura UNICODE_STRING para conter a cadeia de caracteres Unicode gerada. O membro UnicodeString-MaximumLength> será definido somente se AllocateDestinationString for TRUE.

[in] Sid

Um ponteiro para a estrutura SID que deve ser convertida em Unicode (a estrutura sid não é afetada).

[in] AllocateDestinationString

Um sinalizador booliano que indica se essa rotina alocará o buffer UnicodeString. Se TRUE, somente o membro UnicodeString-Buffer> será alocado e o restante da estrutura UnicodeString deverá ser alocado pelo chamador.

Retornar valor

A rotina RtlConvertSidToUnicodeString pode retornar um dos seguintes valores:

Código de retorno Descrição
STATUS_SUCCESS
A conversão foi bem-sucedida.
STATUS_BUFFER_OVERFLOW
Isso será retornado se AllocateDestinationString for FALSE e o buffer UnicodeString fornecido pelo chamador for muito pequeno para manter a cadeia de caracteres Unicode convertida.
STATUS_NO_MEMORY
Isso será retornado se AllocateDestinationString for TRUE e não houver memória suficiente para alocar o buffer UnicodeString .
STATUS_INVALID_SID
A estrutura SID especificada não é estruturalmente válida.

Comentários

A cadeia de caracteres Unicode gerada assumirá uma das duas formas. Se o valor do membro IdentifierAuthority do SID for menor ou igual a 2^32, o membro IdentifierAuthority será gerado como decimal. Por exemplo, um SID com um IdentifierAuthority de 281.736 gera:

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

Caso contrário, o IdentifierAuthority será gerado como hexadecimal. Por exemplo, um SID com um IdentifierAuthority de 173.495.281.736 gera:

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

Todos os outros membros no SID serão gerados como decimal.

Se AllocateDestinationString for TRUE, o buffer alocado deverá ser desalocado usando RtlFreeUnicodeString.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000
Plataforma de Destino Universal
Cabeçalho ntifs.h (include Ntifs.h, FltKernel.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Confira também

RtlFreeUnicodeString

SID

UNICODE_STRING