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 [仅限桌面应用]
目标平台 窗户
标头 sysinfoapi.h (包括 Windows.h)
Kernel32.lib
DLL Kernel32.dll

另请参阅

COMPUTER_NAME_FORMAT

计算机名称

DnsHostnameToComputerName

GetComputerName

GetComputerNameEx

SetComputerName

系统信息函数