Compartilhar via


Função RtlConvertSidToUnicodeString (ntifs.h)

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

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 estiver 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 do do Buffer>UnicodeString será alocado e o restante da estrutura de UnicodeString deverá ser alocada pelo chamador.

Valor de retorno

A rotina de 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 chamador fornecido buffer de UnicodeString for muito pequeno para manter a cadeia de caracteres Unicode convertida.
STATUS_NO_MEMORY
Isso será retornado se AllocateDestinationString estiver TRUE e não houver memória suficiente para alocar o buffer de unicodeString.
STATUS_INVALID_SID
A estrutura de sid especificada não é estruturalmente válida.

Observações

A cadeia de caracteres Unicode gerada terá um dos dois formulários. 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 decimais.

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

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000
da Plataforma de Destino Universal
cabeçalho ntifs.h (inclua Ntifs.h, FltKernel.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Consulte também

rtlFreeUnicodeString

SID

UNICODE_STRING