LookupAccountSid函数接受安全标识符(SID)作为输入。它检索此SID的帐户的名称以及找到此SID的第一个域的名称。
BOOL LookupAccountSid(
LPCTSTR 【lpSystemName】, | //系统名字符串的地址 |
PSID 【希德】, | //安全标识符的地址 |
LPTSTR 【名称】, | //帐号的字符串地址 |
LPDWORD 【cbName】, | //帐号大小的地址 |
LPTSTR 【ReferencedDomainName】, | //引用域的字符串地址 |
LPDWORD 【cbReferencedDomainName】, | //大小域字符串的地址 |
PSID_NAME_USE 【peUse】 | // SID类型的结构地址 |
); |
参数
【lpSystemName】
指向指定系统的以null结尾的字符串。该字符串可以是远程计算机的名称。如果此字符串为NULL,则会在本地系统上查找SID。
【希德】
指向要查找帐户名称的SID结构。
【名称】
指向缓冲区,接收一个空值终止的字符串,表示与【希德】参数对应的帐户名称。
【cbName】
指向DWORD变量。在输入时,此值指定【名称】缓冲区的大小(以字节为单位)(ANSI版本)或字符(Unicode版本)。如果该函数因缓冲区太小而失败,则该变量将接收所需的缓冲区大小,包括终止空字符。
【ReferencedDomainName】
指向缓冲区,该缓冲区将接收一个以空字符结尾的字符串,并提供找到该帐户名的域名。
对于Windows NT系统,本地计算机的安全数据库中大多数帐户返回的域名是该系统最后一个启动时的计算机名称。排除反斜杠。如果计算机的名称更改,则旧名称将继续作为域名返回,直到系统重新启动。
对于Windows NT Server系统,为本地计算机的安全数据库中的大多数帐户返回的域名是Windows NT Server作为域控制器的域的名称。
一些帐户是由系统预定义的。为这些帐户返回的域名是BUILTIN。
【cbReferencedDomainName】
指向DWORD变量。在输入时,此值指定【ReferencedDomainName】缓冲区的大小(以字节为单位)(ANSI版本)或字符(Unicode版本)。如果该函数因缓冲区太小而失败,则该变量将接收所需的缓冲区大小,包括终止空字符。
【peUse】
指向SID_NAME_USE枚举类型,指示函数返回时的帐户类型。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
LookupAccountSid函数尝试通过首先检查众所周知的SID列表来找到指定的安全标识符的名称。如果提供的SID与一个众所周知的SID不对应,则该函数将检查内置和管理定义的本地帐户。接下来,该函数检查主域。根据与其SID前缀相对应的受信任域检查主域不能识别的安全标识符。
也可以看看