Funzione RtlConvertSidToUnicodeString (ntifs.h)

La routine RtlConvertSidToUnicodeString genera una rappresentazione di stringa Unicode stampabile di un SID (Security Identifier).

Sintassi

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

Parametri

[in, out] UnicodeString

Puntatore a una struttura UNICODE_STRING per contenere la stringa Unicode generata. Il membro UnicodeString-MaximumLength> viene impostato solo se AllocateDestinationString è TRUE.

[in] Sid

Puntatore alla struttura SID da convertire in Unicode (la struttura SID non è interessata).

[in] AllocateDestinationString

Flag booleano che indica se questa routine alloca il buffer UnicodeString. Se TRUE, viene allocato solo il membro UnicodeString-Buffer> e il resto della struttura UnicodeString deve essere allocato dal chiamante.

Valore restituito

La routine RtlConvertSidToUnicodeString può restituire uno dei valori seguenti:

Codice restituito Descrizione
STATUS_SUCCESS
La conversione è riuscita.
STATUS_BUFFER_OVERFLOW
Viene restituito se AllocateDestinationString è FALSE e il buffer UnicodeString fornito dal chiamante è troppo piccolo per contenere la stringa Unicode convertita.
STATUS_NO_MEMORY
Viene restituito se AllocateDestinationString è TRUE e memoria insufficiente per allocare il buffer UnicodeString .
STATUS_INVALID_SID
La struttura SID specificata non è strutturalmente valida.

Commenti

La stringa Unicode generata assumerà una delle due forme. Se il valore del membro IdentifierAuthority del SID è minore o uguale a 2^32, il membro IdentifierAuthority verrà generato come decimale. Ad esempio, un SID con identificatoreAuthority di 281.736 genera:

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

In caso contrario, l'identificatoreAuthority verrà generato come esadecimale. Ad esempio, un SID con identificatoreAuthority pari a 173.495.281.736 genera:

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

Tutti gli altri membri del SID verranno generati come decimali.

Se AllocateDestinationString è TRUE, il buffer allocato deve essere deallocato usando RtlFreeUnicodeString.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000
Piattaforma di destinazione Universale
Intestazione ntifs.h (include Ntifs.h, FltKernel.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Vedi anche

RtlFreeUnicodeString

SID

UNICODE_STRING