RtlEthernetStringToAddressA 函数 (ip2string.h)

RtlEthernetStringToAddress 函数将以太网 MAC 地址的字符串表示形式转换为以太网地址的二进制格式。

语法

NTSYSAPI NTSTATUS RtlEthernetStringToAddressA(
  [in]  PCSTR    S,
  [out] PCSTR    *Terminator,
  [out] DL_EUI48 *Addr
);

参数

[in] S

指向缓冲区的指针,该缓冲区包含以 NULL 结尾的以太网 MAC 地址字符串表示形式。

[out] Terminator

一个参数,用于接收指向终止转换字符串的字符的指针。 调用方可以使用它从字符串中提取更多信息。

[out] Addr

一个指针,用于存储以太网 MAC 地址的二进制表示形式。

返回值

如果函数成功,则返回值 STATUS_SUCCESS

如果函数失败,则返回值为以下错误代码之一。

返回代码 说明
STATUS_INVALID_PARAMETER
向该函数传递了无效参数。 如果 S 参数指向的字符串不包含以太网 MAC 地址的正确字符串表示形式,则返回此错误。

此错误代码在 Ntstatus.h 头文件中定义。

其他
使用 FormatMessage 获取返回错误的消息字符串。

注解

RtlEthernetStringToAddress 函数用于将以太网 EUI-48 数据链路层地址的字符串表示形式转换为以太网地址 (也称为 MAC 地址,) 为二进制格式的以太网地址。 字符串表示以非 DIX 标准“-'”表示法表示的数字以太网地址。 返回的值是一个适合用作以太网地址的数字。 所有以太网地址都按网络顺序返回 (字节从左到右) 。

S 参数指向的字符串必须以非 DIX 标准“-”表示法的以太网 MAC 地址字符串的形式表示。 以太网 MAC 地址的基本字符串表示形式由 6 对十六进制数字组成,这些数字由 F4-CE-46-2D-90-8C (短划线分隔,例如) 。

成功后, 终止符 参数指向终止转换的字符串的字符。 这样,应用程序就可以将包含以太网地址和其他信息的字符串传递给 RtlEthernetStringToAddress 函数,然后分析其余信息。

RtlEthernetStringToAddress 是一种便捷函数,它不需要加载 Windows 套接字 DLL 即可访问 Windows 套接字中提供的函数,以执行字符串到以太网地址转换。

定义 UNICODE 或 _UNICODE时, RtlEthernetStringToAddress 将定义为 RtlEthernetStringToAddressW(此函数的 Unicode 版本)。 S终止符参数定义为 PCWSTR 数据类型。

如果未定义 UNICODE 和 _UNICODE, 则 RtlEthernetStringToAddress 将定义为 RtlEthernetStringToAddressA(此函数的 ANSI 版本)。 S终止符参数定义为 PCSTR 数据类型。

DL_EUI48数据类型在 Mstcpip.h 头文件中定义。

注意

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

要求

要求
最低受支持的客户端 Windows 7 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2 [桌面应用 |UWP 应用]
目标平台 Windows
标头 ip2string.h (包括 Mstcpip.h、Ip2string.h)
Library ntdll.lib
DLL ntdll.dll

另请参阅

RtlEthernetAddressToString