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


Функция GetMulticastIpAddressTable

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

Синтаксис

NETIOAPI_API GetMulticastIpAddressTable(
  _In_  ADDRESS_FAMILY                Family,
  _Out_ PMIB_MULTICASTIPADDRESS_TABLE *Table
);

Параметры

  • семья [in]
    Семейство адресов, извлекаемого.

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

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

    В настоящее время для семейства адресов поддерживаются следующие значения:

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

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

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

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

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

GetMulticastIpAddressTable возвращает STATUS_SUCCESS, если функция выполнена успешно.

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

Возвращаемый код Описание
STATUS_INVALID_PARAMETER

Недопустимый параметр был передан функции. Эта ошибка возвращается, если указатель NULL передается в параметретаблицы или параметр family не указан как AF_INET, AF_INET6 или AF_UNSPEC.

STATUS_NOT_ENOUGH_MEMORY

Недостаточно ресурсов памяти доступны для завершения операции.

STATUS_NOT_FOUND

Никакие записи IP-адреса рассылки, указанные в параметре семейства, не найдены.

STATUS_NOT_SUPPORTED

Запрос не поддерживается. Эта ошибка возвращается, если на локальном компьютере не расположен стек IPv4, а AF_INET указан в параметре Family или если на локальном компьютере нет стека IPv6, а AF_INET6 указан в параметре Family. Эта ошибка также возвращается в версиях Windows, где эта функция не поддерживается.

Другие

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

Замечания

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

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

Драйвер должен инициализировать параметр семейства для AF_INET, AF_INET6 или AF_UNSPEC.

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

Требования

Целевая платформа

универсальные

Версия

Доступно в Windows Vista и более поздних версиях операционных систем Windows.

Заголовок

Netioapi.h (include Netioapi.h)

Библиотека

Netio.lib

IRQL

< DISPATCH_LEVEL

См. также

GetMulticastIpAddressEntry

MIB_MULTICASTIPADDRESS_ROW

MIB_MULTICASTIPADDRESS_TABLE