GetComputerNameEx函数检索与本地计算机相关联的NetBIOS或DNS名称。

GetComputerNameEx

GetComputerNameEx函数检索与本地计算机相关联的NetBIOS或DNS名称。名称是在系统启动时建立的,当系统从注册表读取它们时。


BOOL GetComputerNameEx(
  COMPUTER_NAME_FORMAT NameType,
  LPTSTR lpBuffer,
  LPDWORD lpnSize
);

参数
NAMETYPE 
[in]要检索的名称类型。此参数是COMPUTER_NAME_FORMAT枚举类型的值。下表提供了其他信息。价值意义
ComputerNameDnsDomain分配给本地计算机的DNS域的名称。如果本地计算机是群集中的节点,则lpBuffer会收到群集虚拟服务器的DNS域名。
ComputerNameDnsFullyQualified唯一标识本地计算机的完全限定DNS名称。该名称是DNS主机名和DNS域名的组合,使用的形式HostName.DomainName。如果本地计算机是群集中的节点,则lpBuffer将收到群集虚拟服务器的完全限定DNS名称。
ComputerNameDnsHostname本地计算机的DNS主机名。如果本地计算机是群集中的节点,则lpBuffer会收到群集虚拟服务器的DNS主机名。
ComputerNameNetBIOS本地计算机的NetBIOS名称。如果本地计算机是群集中的节点,则lpBuffer会收到群集虚拟服务器的NetBIOS名称。
ComputerNamePhysicalDnsDomain分配给本地计算机的DNS域的名称。如果本地计算机是群集中的节点,则lpBuffer会收到本地计算机的DNS域名,而不是群集虚拟服务器的名称。
ComputerNamePhysicalDnsFullyQualified唯一标识计算机的完全限定DNS名称。如果本地计算机是群集中的节点,则lpBuffer将收到本地计算机的完全限定DNS名称,而不是群集虚拟服务器的名称。
完全限定的DNS名称是DNS主机名和DNS域名的组合,使用形式HostName.DomainName。
 
ComputerNamePhysicalDnsHostname本地计算机的DNS主机名。如果本地计算机是群集中的节点,则lpBuffer会收到本地计算机的DNS主机名,而不是群集虚拟服务器的名称。
ComputerNamePhysicalNetBIOS本地计算机的NetBIOS名称。如果本地计算机是群集中的节点,则lpBuffer将接收本地计算机的NetBIOS名称,而不是群集虚拟服务器的名称。

lpBuffer 
[out]指向接收包含计算机名称或集群虚拟服务器名称的以空字符结尾的字符串的缓冲区。 
名称的长度可能会大于MAX_COMPUTERNAME_LENGTH个字符,因为DNS允许更长的名称。要确保此缓冲区足够大,请将此参数设置为NULL,并使用lpnSize参数中返回的所需缓冲区大小。

lpnSize 
[in,out] On输入,在TCHAR中指定缓冲区的大小。在输出时,接收复制到目标缓冲区的TCHAR数,不包括终止空字符。
如果缓冲区太小,则该函数失败,GetLastError返回ERROR_MORE_DATA。此参数接收所需缓冲区的大小,包括终止空字符。

如果lpBuffer为NULL,则此参数必须为0。

返回值
如果函数成功,则返回值为非零值。

如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError。

备注
如果未为本地计算机设置组策略,则GetComputerNameEx函数将检索在系统启动时建立的NetBIOS或DNS名称。如果设置了组策略,则该函数返回由组策略设置的主域名。由SetComputerName或SetComputerNameEx函数进行的名称更改在用户重新启动计算机之前才会生效。

如果本地计算机未配置为使用DNS名称,GetComputerNameEx将不会返回DNS信息。要配置计算机执行此操作,请按照操作系统帮助中概述的步骤进行更改,然后更改计算机的主DNS后缀,然后重新启动计算机。

如果本地计算机是群集中的节点,则此功能的行为可能会受到影响。有关更多信息,请参阅ResUtilGetEnvironmentWithNetName和UseNetworkName。

如果您正在使用不同DNS布局的环境,那么计算机的FQDN与其域的FQDN不符,请改用LsaQueryInformationPolicy。 

要编译使用此功能的应用程序,请将_WIN32_WINNT宏定义为0x0500或更高版本。有关详细信息,请参阅使用Windows头。

要求
客户端需要Windows XP或Windows 2000 Professional。 
服务器需要Windows Server 2003或Windows 2000 Server。 
头文件在Winbase.h中声明; 包括Windows.h。
 
库链接到Kernel32.lib。
 
DLL需要Kernel32.dll。  
Unicode实现为GetComputerNameExW(Unicode)和GetComputerNameExA(ANSI)。
 

也可以看看
计算机名称,系统信息功能,COMPUTER_NAME_FORMAT,GetComputerName,ResUtilGetEnvironmentWithNetName,ResUtilSetResourceServiceStartParameters,ResUtilSetResourceServiceEnvironment,SetComputerName,SetComputerNameEx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值