SetComputerNameExA 函数 (sysinfoapi.h)

为本地计算机设置新的 NetBIOS 或 DNS 名称。 在用户重启计算机之前, SetComputerNameEx 所做的名称更改不会生效。

语法

BOOL SetComputerNameExA(
  [in] COMPUTER_NAME_FORMAT NameType,
  [in] LPCSTR               lpBuffer
);

参数

[in] NameType

要设置的名称的类型。 此参数可以是 COMPUTER_NAME_FORMAT 枚举类型中的以下值之一。

含义
ComputerNamePhysicalDnsDomain
设置计算机的主 DNS 后缀。
ComputerNamePhysicalDnsHostname
将 NetBIOS 和计算机名称 (完整 DNS 名称的第一个标签) 设置为 lpBuffer 中指定的名称。 如果名称超过MAX_COMPUTERNAME_LENGTH个字符,NetBIOS 名称将被截断为MAX_COMPUTERNAME_LENGTH个字符,不包括终止 null 字符。
ComputerNamePhysicalNetBIOS
将 NetBIOS 名称设置为 lpBuffer 中指定的名称。 名称不能超过MAX_COMPUTERNAME_LENGTH个字符,不包括终止 null 字符。

警告:使用此选项设置 NetBIOS 名称会破坏相互依赖的 NetBIOS 和 DNS 名称的约定。 如果违反此约定,则使用 DnsHostnameToComputerName 函数从 DNS 名称的第一个标签派生 NetBIOS 名称的应用程序将失败。

[in] lpBuffer

新名称。 名称不能包含控制字符、前导或尾随空格或以下任何字符:“ / \ [ ] : | <> + = ;, ?

返回值

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

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

SetComputerNameEx 可以设置计算机名称 (完整 DNS 名称的第一个标签) 或本地计算机的主 DNS 后缀。 它无法在一次调用中设置完全限定的 DNS 名称。

如果本地计算机是群集中的节点, 则 SetComputerNameEx 将设置本地计算机的 NetBIOS 或 DNS 名称,而不是群集虚拟服务器的名称。

调用 SetComputerNameEx 函数的进程必须具有本地计算机上的管理员权限。

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

注意

sysinfoapi.h 标头将 SetComputerNameEx 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 sysinfoapi.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

COMPUTER_NAME_FORMAT

计算机名称

DnsHostnameToComputerName

GetComputerName

GetComputerNameEx

SetComputerName

系统信息函数