SecLookupAccountSid 函数 (ntifs.h)

SecLookupAccountSid 接受 SID) (安全标识符作为输入。 它检索此 SID 的帐户名称和找到此 SID 的第一个域的名称。

语法

KSECDDDECLSPEC NTSTATUS SEC_ENTRY SecLookupAccountSid(
  [in]            PSID            Sid,
  [out]           PULONG          NameSize,
  [in, out]       PUNICODE_STRING NameBuffer,
  [out]           PULONG          DomainSize,
  [out, optional] PUNICODE_STRING DomainBuffer,
  [out]           PSID_NAME_USE   NameUse
);

参数

[in] Sid

指向要查找的 SID 的指针。

[out] NameSize

指向变量的指针,该变量指定 NameBuffer 的大小。 输入时,此值指定输入 NameBuffer 的大小(以字节为单位)。 如果函数因缓冲区太小而失败,则此变量将接收所需的缓冲区大小。 成功后,此变量包含返回的 NameBuffer 的大小。

[in, out] NameBuffer

指向缓冲区的指针,该缓冲区接收与 Sid 关联的帐户的名称。 如果此参数为 NULL, 则 NameSize 将为零。

[out] DomainSize

指向 ULONG 的指针,该 ULONG 指定 DomainBuffer 参数的大小。 如果函数因缓冲区太小而失败,则此变量将接收所需的缓冲区大小。 如果 DomainBuffer 参数为 NULL,则此参数将设置为零。

[out, optional] DomainBuffer

指向缓冲区的指针,该缓冲区接收找到此 SID 的第一个域的名称。

[out] NameUse

指向接收帐户类型的 SID_NAME_USE 枚举类型的指针。

返回值

SecLookupAccountSid 在成功时返回STATUS_SUCCESS或失败时返回以下错误代码之一。

返回代码 说明
SEC_E_INTERNAL_ERROR 尝试连接到本地系统机构 (LSA) 或本地过程调用 (LPC) 安全提供程序失败时发生内部错误。
STATUS_ACCESS_DENIED 与当前正在执行的线程关联的进程 ID 与当前进程 ID 不匹配。
STATUS_BUFFER_TOO_SMALL NameBufferReferencedDomain 参数的缓冲区大小太小。
STATUS_INVALID_PARAMETER Name 参数的长度超出了向本地系统颁发机构 (LSA) 的消息中允许的长度。
STATUS_NO_MEMORY 无法为此函数使用的临时内部缓冲区分配足够的内存。
STATUS_NONE_MAPPED 找不到 Sid 参数。
STATUS_PROCESS_IS_TERMINATING 此过程已终止,因此无法在 LPC) 连接 (建立本地过程调用。

注解

SecLookupAccountSid 尝试通过首先检查已知 SID 列表来查找指定 SID 的名称。 如果提供的 SID 不对应于已知的 SID,则函数会检查内置和管理定义的本地帐户。 接下来,函数检查主域。 将对照与其 SID 前缀对应的受信任域检查主域无法识别的安全标识符。

如果函数找不到 SID 的帐户名称, SecLookupAccountSid 将失败。 如果网络超时阻止函数查找名称,则可能会发生这种情况。 对于没有相应帐户名称的 SID,例如标识登录会话的登录 SID,也会发生这种情况。

除了查找本地帐户、本地域帐户和显式受信任的域帐户的 SID 外, SecLookupAccountSid 还可以查找林中任何域中任何帐户的 SID,包括仅在林中某个帐户的 SID 历史字段中显示的 SID。 SIDhistory 字段存储已从另一个域移动的帐户的前 SID。 若要查找 SID,SecLookupAccountSid 会查询林的全局目录。

SecLookupAccountSid 等效于 Win32 LookupAccountSid 函数。

SecLookupAccountSid 由 ksecdd 驱动程序导出,该驱动程序使用用户模式帮助程序服务实现此函数。 因此,在文件系统中使用此函数必须遵循与用户模式服务通信的常规规则。 在分页文件 I/O 期间无法使用 SecLookupAccountSid

要求

要求
最低受支持的客户端 Windows XP
目标平台 通用
标头 ntifs.h (包括 Ntifs.h)
Library Ksecdd.lib
IRQL <= APC_LEVEL

另请参阅

SID

SID_NAME_USE

SecLookupAccountName

SecLookupWellKnownSid