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 字符串。 仅当 AllocateDestinationStringTRUE时,才会设置 UnicodeString->MaximumLength 成员。
[in] Sid
指向要转换为 Unicode 的 SID 结构的指针(SID 结构不受影响)。
[in] AllocateDestinationString
一个布尔标志,指示此例程是否将分配 UnicodeString 缓冲区。 如果 TRUE,则只分配 UnicodeString->Buffer 成员,并且调用方必须分配 UnicodeString 结构的其余部分。
返回值
RtlConvertSidToUnicodeString 例程可以返回以下值之一:
返回代码 | 描述 |
---|---|
|
转换成功。 |
|
如果 AllocateDestinationStringFALSE,并且提供的调用方 UnicodeString 缓冲区太小,无法容纳转换的 Unicode 字符串,则返回此值。 |
|
如果 AllocateDestinationStringTRUE,并且没有足够的内存来分配 UnicodeString 缓冲区,则返回此值。 |
|
指定的 SID 结构在结构上无效。 |
言论
生成的 Unicode 字符串采用两种形式之一。 如果 SID IdentifierAuthority 成员的值小于或等于 2^32,则 IdentifierAuthority 成员将生成为十进制。 例如,具有 IdentifierAuthority 的 SID 生成了 281,736:
S-1-281736-12-72-9-110
否则,IdentifierAuthority 将生成为十六进制。 例如,具有 IdentifierAuthority 为 173,495,281,736 的 SID 生成:
S-1-0x28651FE848-12-72-9-110
SID 中的所有其他成员都将生成为十进制。
如果 AllocateDestinationStringTRUE,则必须使用 RtlFreeUnicodeString解除分配分配的缓冲区。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 2000 |
目标平台 | 普遍 |
标头 | ntifs.h(包括 Ntifs.h、FltKernel.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |