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
指向缓冲区的指针,该缓冲区接收 SID 结构,该结构对应于 Name 参数指向的帐户名称。 如果此参数为 NULL, 则 SidSize 必须为零。
[out] NameUse
指向接收帐户类型的 SID_NAME_USE 枚举类型的指针。
[out] DomainSize
指向接收 ReferencedDomain 参数大小的 ULONG 的指针。 如果函数因缓冲区太小而失败,则此变量将接收所需的缓冲区大小。 如果输入 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 | Sid 或 ReferencedDomain 参数的缓冲区大小太小。 |
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) 和用户主体名称 (UPN) (例如 someone@example.com ,) 。
除了查找本地帐户、本地域帐户和显式受信任的域帐户外, SecLookupAccountName 还可以查找林中任何域中任何帐户的名称。
SecLookupAccountName 等效于 Win32 LookupAccountName 函数。
SecLookupAccountName 由 ksecdd 驱动程序导出,该驱动程序使用用户模式帮助程序服务实现此函数。 因此,在文件系统中使用此函数必须遵循与用户模式服务通信的常规规则。 在分页文件 I/O 期间无法使用 SecLookupAccountName。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP |
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h) |
Library | Ksecdd.lib |
IRQL | <= APC_LEVEL |