SecLookupAccountName 函数 (ntifs.h)

SecLookupAccountName 接受帐户作为输入,并检索帐户的安全标识符(SID),以及找到帐户的域的名称。

语法

KSECDDDECLSPEC NTSTATUS SEC_ENTRY SecLookupAccountName(
  [in]               PUNICODE_STRING Name,
  [in, out]          PULONG          SidSize,
  [out]              PSID            Sid,
  [out]              PSID_NAME_USE   NameUse,
  [out]              PULONG          DomainSize,
  [in_out, optional] PUNICODE_STRING ReferencedDomain
);

参数

[in] Name

指向指定帐户名称的 Unicode 字符串的指针。 使用 domain_name\user_name 格式的完全限定字符串来确保 SecLookupAccountName 在所需域中查找帐户。

[in, out] SidSize

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

[out] Sid

指向接收与 Name 参数所指向的帐户名称对应的 SID 结构的缓冲区的指针。 如果此参数 NULLSidSize 必须为零。

[out] NameUse

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

[out] DomainSize

指向接收 ReferencedDomain 参数大小的 ULONG 的指针。 如果函数由于缓冲区太小而失败,则此变量将接收所需的缓冲区大小。 如果 input ReferencedDomain 参数为 NULL,则此参数将接收零。

[in_out, optional] ReferencedDomain

指向找到帐户名称的域名称的缓冲区的指针。 此参数是可选的,可以是 NULL。 对于未加入域的计算机,此缓冲区接收计算机名称。

返回值

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

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

言论

SecLookupAccountName 尝试查找指定名称的 SID。 该函数检查内置和管理定义的本地帐户。 接下来,该函数检查主域。 如果未找到该名称,则会检查受信任的域。

使用完全限定的帐户名称(例如,domain_name\user_name),而不是独立名称(例如,user_name)。 完全限定的名称是明确的,在执行查找时提供更好的性能。 此函数还支持完全限定的 DNS 名称(例如,example.example.com\user_name)和用户主体名称(例如,someone@example.com)。

除了查找本地帐户、本地域帐户和显式受信任的域帐户之外,SecLookupAccountName 还可以查找林中任何域中的任何帐户的名称。

SecLookupAccountName 等效于 Win32 LookupAccountName 函数。

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

要求

要求 价值
最低支持的客户端 Windows XP
目标平台 普遍
标头 ntifs.h (include Ntifs.h)
Ksecdd.lib
IRQL <= APC_LEVEL

另请参阅

SID

SID_NAME_USE

SecLookupAccountSid

SecLookupWellKnownSid