RtlConvertSidToUnicodeString 函数 (ntifs.h)
RtlConvertSidToUnicodeString 例程生成安全标识符的可打印 Unicode 字符串表示形式, (SID) 。
语法
NTSYSAPI NTSTATUS RtlConvertSidToUnicodeString(
[in, out] PUNICODE_STRING UnicodeString,
[in] PSID Sid,
[in] BOOLEAN AllocateDestinationString
);
参数
[in, out] UnicodeString
指向 UNICODE_STRING 结构的指针,该结构包含生成的 Unicode 字符串。 仅当 AllocateDestinationString 为 TRUE 时,才会设置 UnicodeString-MaximumLength> 成员。
[in] Sid
指向要转换为 Unicode 的 SID 结构的指针, (SID 结构不受影响) 。
[in] AllocateDestinationString
一个布尔标志,指示此例程是否会分配 UnicodeString 缓冲区。 如果为 TRUE,则仅分配 UnicodeString-Buffer> 成员,并且调用方必须分配 UnicodeString 结构的其余部分。
返回值
RtlConvertSidToUnicodeString 例程可以返回以下值之一:
返回代码 | 说明 |
---|---|
|
转换成功。 |
|
如果 AllocateDestinationString 为 FALSE ,并且调用方提供的 UnicodeString 缓冲区太小,无法容纳转换后的 Unicode 字符串,则返回此值。 |
|
如果 AllocateDestinationString 为 TRUE ,并且内存不足,无法分配 UnicodeString 缓冲区,则返回此值。 |
|
指定的 SID 结构在结构上无效。 |
注解
生成的 Unicode 字符串将采用两种形式之一。 如果 SID 的 IdentifierAuthority 成员的值小于或等于 2^32,则 IdentifierAuthority 成员将以十进制形式生成。 例如,IdentifierAuthority 为 281,736 的 SID 生成:
S-1-281736-12-72-9-110
否则,IdentifierAuthority 将生成十六进制。 例如,IdentifierAuthority 为 173,495,281,736 的 SID 生成:
S-1-0x28651FE848-12-72-9-110
SID 中的所有其他成员都将以十进制形式生成。
如果 AllocateDestinationString 为 TRUE,则必须使用 RtlFreeUnicodeString 解除分配分配的缓冲区。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 |
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h、FltKernel.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |