Поделиться через


Функция RtlEthernetStringToAddressA (ip2string.h)

Функция RtlEthernetStringToAddress преобразует строковое представление MAC-адреса Ethernet в двоичный формат адреса Ethernet.

Синтаксис

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

Параметры

[in] S

Указатель на буфер, содержащий строковое представление MAC-адреса Ethernet, завершающееся null.

[out] Terminator

Параметр, получающий указатель на символ, завершив преобразованную строку. Вызывающий объект может использовать его для извлечения дополнительных сведений из строки.

[out] Addr

Указатель, в котором должно храниться двоичное представление MAC-адреса Ethernet.

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение будет STATUS_SUCCESS.

Если функция завершается сбоем, возвращаемое значение представляет собой один из следующих кодов ошибок.

Код возврата Описание
STATUS_INVALID_PARAMETER
В функцию передан недопустимый параметр. Эта ошибка возвращается, если строка, на которую указывает параметр S , не содержит правильного строкового представления MAC-адреса Ethernet.

Этот код ошибки определен в файле заголовка Ntstatus.h .

Другое
Используйте FormatMessage , чтобы получить строку сообщения для возвращенной ошибки.

Комментарии

Функция RtlEthernetStringToAddress используется для преобразования строкового представления адреса уровня канала связи данных Ethernet EUI-48 (также известного как MAC-адрес) в двоичный формат адреса Ethernet. Строка представляет числовой адрес Ethernet, выраженный в стандартной нотации "-", отличной от DIX. Возвращаемое значение — это число, подходящее для использования в качестве адреса Ethernet. Все адреса Ethernet возвращаются в сетевом порядке (байты упорядочены слева направо).

Строка, на которую указывает параметр S , должна быть представлена в виде строки MAC-адреса Ethernet в стандартной нотации "-", отличной от DIX. Базовое строковое представление MAC-адреса Ethernet состоит из 6 пар шестнадцатеричных чисел, разделенных дефисами (например, F4-CE-46-2D-90-8C).

При успешном выполнении параметр Terminator указывает на символ, завершающий преобразованную строку. Это позволяет приложению передать строку, содержащую адрес Ethernet и дополнительные сведения, в функцию RtlEthernetStringToAddress , а затем проанализировать оставшиеся сведения.

RtlEthernetStringToAddress — это удобная функция, которая не требует загрузки библиотеки DLL windows Sockets для доступа к функции, предоставленной в windows Sockets, для выполнения преобразования строк в адрес Ethernet.

Если определен юникод или _UNICODE, RtlEthernetStringToAddress определяется как RtlEthernetStringToAddressW, версия Юникода этой функции. Параметры S и Terminator определяются для типа данных PCWSTR .

Если и UNICODE, и _UNICODE не определены, RtlEthernetStringToAddress определяется как RtlEthernetStringToAddressA, версия ANSI этой функции. Параметры S и Terminator определяются для типа данных PCSTR .

Тип данных DL_EUI48 определяется в файле заголовка Mstcpip.h .

Примечание

Заголовок ip2string.h определяет RtlEthernetStringToAddress в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 7 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header ip2string.h (включая Mstcpip.h, Ip2string.h)
Библиотека ntdll.lib
DLL ntdll.dll

См. также раздел

RtlEthernetAddressToString