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


Функция GetMulticastIpAddressTable (netioapi.h)

Функция GetMulticastIpAddressTable извлекает таблицу IP-адресов многоадресной рассылки на локальном компьютере.

Синтаксис

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API GetMulticastIpAddressTable(
  [in]  ADDRESS_FAMILY                Family,
  [out] PMIB_MULTICASTIPADDRESS_TABLE *Table
);

Параметры

[in] Family

Извлекаемая семья адресов.

Возможные значения семейства адресов перечислены в файле заголовка Winsock2.h . Обратите внимание, что значения для семейства адресов AF_ и констант семейства протоколов PF_ идентичны (например, AF_INET и PF_INET), поэтому можно использовать любой из констант.

На Windows SDK, выпущенном для Windows Vista и более поздних версий, организация файлов заголовков изменилась, и возможные значения для этого элемента определяются в файле заголовка Ws2def.h. Обратите внимание, что файл заголовка Ws2def.h автоматически включается в Winsock2.h и никогда не должен использоваться напрямую.

В настоящее время поддерживаются значения AF_INET, AF_INET6 и AF_UNSPEC.

Значение Значение
AF_UNSPEC
0
Семейство адресов не указано. Если указан этот параметр, эта функция возвращает таблицу IP-адресов многоадресной рассылки, содержащую записи IPv4 и IPv6.
AF_INET
2
Семейство адресов IPv4. Если указан этот параметр, эта функция возвращает таблицу IP-адресов многоадресной рассылки, содержащую только записи IPv4.
AF_INET6
23
Семейство адресов IPv6. Если указан этот параметр, эта функция возвращает таблицу IP-адресов многоадресной рассылки, содержащую только записи IPv6.

[out] Table

Указатель на структуру MIB_MULTICASTIPADDRESS_TABLE , содержащую таблицу записей ip-адресов на локальном компьютере.

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

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

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

Код возврата Описание
ERROR_INVALID_PARAMETER
В функцию передан недопустимый параметр. Эта ошибка возвращается, если в параметре Table передается указатель NULL или параметр Family не указан как AF_INET, AF_INET6 или AF_UNSPEC.
ERROR_NOT_ENOUGH_MEMORY
Для завершения операции недостаточно ресурсов памяти.
ERROR_NOT_FOUND
Записи ip-адресов, указанные в параметре Family , не найдены.
ERROR_NOT_SUPPORTED
Запрос не поддерживается. Эта ошибка возвращается, если на локальном компьютере нет стека IPv4 и AF_INET был указан в параметре Family . Эта ошибка также возвращается, если на локальном компьютере нет стека IPv6 и AF_INET6 был указан в параметре Family . Эта ошибка также возвращается в версиях Windows, где эта функция не поддерживается.
Другое
Используйте FormatMessage , чтобы получить строку сообщения для возвращаемой ошибки.

Комментарии

Функция GetMulticastIpAddressTable определена в Windows Vista и более поздних версиях.

The
Функция GetMulticastIpAddressTable перечисляет IP-адреса многоадресной рассылки в локальной системе и возвращает эти сведения в MIB_MULTICASTIPADDRESS_TABLE структуре.

Записи IP-адресов многоадресной рассылки возвращаются в MIB_MULTICASTIPADDRESS_TABLE структуре в буфере, на который указывает параметр Table . Структура MIB_MULTICASTIPADDRESS_TABLE содержит число записей многоадресных IP-адресов и массив структур MIB_MULTICASTIPADDRESS_ROW для каждой записи многоадресного IP-адреса. Если возвращаемые структуры больше не требуются, освободите память, вызвав FreeMibTable.

Параметр Family должен быть инициализирован AF_INET, AF_INET6 или AF_UNSPEC.

Обратите внимание, что возвращаемая структура MIB_MULTICASTIPADDRESS_TABLE , на которую указывает параметр Table, может содержать заполнение для выравнивания между элементом NumEntries и первой записью массива MIB_MULTICASTIPADDRESS_ROW в элементе Tableструктуры MIB_MULTICASTIPADDRESS_TABLE . Между записями массива MIB_MULTICASTIPADDRESS_ROW также может присутствовать заполнение для выравнивания. Любой доступ к MIB_MULTICASTIPADDRESS_ROW записи массива должен предполагать, что может существовать заполнение.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header netioapi.h (включая Iphlpapi.h)
Библиотека Iphlpapi.lib
DLL Iphlpapi.dll

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

FreeMibTable

GetMulticastIpAddressEntry

MIB_MULTICASTIPADDRESS_ROW

MIB_MULTICASTIPADDRESS_TABLE