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

来源:互联网 发布:巨人网络市值 编辑:程序博客网 时间:2024/06/10 02:59
GetComputerNameExGetComputerNameEx函数检索与本地计算机相关联的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
原创粉丝点击