LookupAccountNameA 函数 (winbase.h)
LookupAccountName 函数接受系统名称和帐户作为输入。 它检索帐户(SID)的
LsaLookupNames 函数还可以检索计算机帐户。
语法
BOOL LookupAccountNameA(
[in, optional] LPCSTR lpSystemName,
[in] LPCSTR lpAccountName,
[out, optional] PSID Sid,
[in, out] LPDWORD cbSid,
[out, optional] LPSTR ReferencedDomainName,
[in, out] LPDWORD cchReferencedDomainName,
[out] PSID_NAME_USE peUse
);
参数
[in, optional] lpSystemName
指向指定系统名称的 null终止的字符串的指针。 此字符串可以是远程计算机的名称。 如果此字符串 NULL,则帐户名称转换将在本地系统上开始。 如果无法在本地系统上解析名称,此函数将尝试使用本地系统信任的域控制器解析名称。 通常,仅当帐户位于不受信任的域中且该域中的计算机的名称已知时,才为
[in] lpAccountName
指向指定帐户名称的 null-terminated 字符串的指针。
使用 domain_name\user_name 格式的完全限定字符串来确保 LookupAccountName 在所需域中查找帐户。
[out, optional] Sid
指向接收 SID 结构的缓冲区的指针,该结构对应于 lpAccountName 参数指向的帐户名称。 如果此参数 NULL,则 cbSid 必须为零。
[in, out] cbSid
指向变量的指针。 在输入时,此值指定 Sid 缓冲区的大小(以字节为单位)。 如果函数由于缓冲区太小或 cbSid 为零而失败,则此变量将接收所需的缓冲区大小。
[out, optional] ReferencedDomainName
指向接收找到帐户名称的域名称的缓冲区的指针。 对于未加入域的计算机,此缓冲区接收计算机名称。 如果此参数 NULL,则该函数将返回所需的缓冲区大小。
[in, out] cchReferencedDomainName
指向变量的指针。 在输入时,此值指定 ReferencedDomainName 缓冲区 TCHARs 的大小。 如果函数由于缓冲区太小而失败,则此变量将接收所需的缓冲区大小,包括终止 null 字符。 如果 ReferencedDomainName 参数 NULL,则此参数必须为零。
[out] peUse
指向 SID_NAME_USE 枚举类型的指针,指示函数返回时帐户的类型。
返回值
如果函数成功,该函数将返回非零。
如果函数失败,则返回零。 有关扩展错误信息,请调用 GetLastError。
言论
LookupAccountName 函数通过首先检查已知 SID 列表来尝试查找指定名称的 SID。 如果名称与已知的 SID 不对应,该函数会检查内置和管理定义的本地帐户。 接下来,该函数检查主域。 如果未找到该名称,则会检查受信任的域。
使用完全限定的帐户名称(例如,domain_name\user_name),而不是独立名称(例如,user_name)。 完全限定的名称是明确的,在执行查找时提供更好的性能。 此函数还支持完全限定的 DNS 名称(例如,example.example.com\user_name)和 用户主体名称(UPN)(例如,someone@example.com)。
除了查找本地帐户、本地域帐户和显式受信任的域帐户之外,LookupAccountName 还可以查找林中任何域中任何帐户的名称。
注意
winbase.h 标头将 LookupAccountName 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows XP [桌面应用 |UWP 应用] |
支持的最低服务器 | Windows Server 2003 [桌面应用 |UWP 应用] |
目标平台 | 窗户 |
标头 | winbase.h (包括 Windows.h) |
库 | Advapi32.lib |
DLL | Advapi32.dll |