Функция GetAnycastIpAddressTable
Функция GetAnycastIpAddressTable извлекает таблицу IP-адресов любой рассылки на локальном компьютере.
Синтаксис
NETIOAPI_API GetAnycastIpAddressTable(
_In_ ADDRESS_FAMILY Family,
_Out_ PMIB_ANYCASTIPADDRESS_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_ANYCASTIPADDRESS_TABLE , содержащую таблицу записей IP-адресов любой рассылки на локальном компьютере.
Возвращаемое значение
GetAnycastIpAddressTable возвращает STATUS_SUCCESS, если функция выполнена успешно.
Если функция завершается ошибкой, GetAnycastIpAddressTable возвращает один из следующих кодов ошибок:
Код возврата | Description |
---|---|
STATUS_INVALID_PARAMETER | Недопустимый параметр был передан функции. Эта ошибка возвращается, если указатель NULL передается в параметре таблицы или параметр "Семейство " не указан как AF_INET, AF_INET6 или AF_UNSPEC. |
STATUS_NOT_ENOUGH_MEMORY | Недостаточно ресурсов памяти доступны для завершения операции. |
STATUS_NOT_FOUND | Никакие записи IP-адреса рассылки, указанные в параметре Family , не найдены. |
STATUS_NOT_SUPPORTED | Запрос не поддерживается. Эта ошибка возвращается, если на локальном компьютере не расположен стек IPv4 и AF_INET указан в параметре Family, или если на локальном компьютере нет стека IPv6, а AF_INET6 указан в параметре Family. Эта ошибка также возвращается в версиях Windows, где эта функция не поддерживается. |
Другое | Используйте функцию FormatMessage, чтобы получить строку сообщения для возвращаемой ошибки. |
Замечания
Функция GetAnycastIpAddressTable перечисляет IP-адреса любой рассылки на локальном компьютере и возвращает эти сведения в структуре MIB_ANYCASTIPADDRESS_TABLE.
Записи IP-адресов любой рассылки возвращаются в MIB_ANYCASTIPADDRESS_TABLE структуре в буфере, на который указывает параметр Table . Структура MIB_ANYCASTIPADDRESS_TABLE содержит число записей IP-адресов любой рассылки и массив структур MIB_ANYCASTIPADDRESS_ROW для каждой записи IP-адреса любой рассылки. Если эти возвращаемые структуры больше не требуются, драйвер должен освободить память, вызвав FreeMibTable.
Драйвер должен инициализировать параметр Family в AF_INET, AF_INET6 или AF_UNSPEC.
Обратите внимание, что возвращаемая MIB_ANYCASTIPADDRESS_TABLE структура, указывающая на параметр Table , может содержать заполнение для выравнивания между элементом NumEntries и первой записью массива MIB_ANYCASTIPADDRESS_ROW в элементе таблицы структуры MIB_ANYCASTIPADDRESS_TABLE. Заполнение для выравнивания также может присутствовать между записями массива MIB_ANYCASTIPADDRESS_ROW. Любой доступ к записи массива MIB_ANYCASTIPADDRESS_ROW должен предполагать, что заполнение может существовать.
Требования
Целевая платформа |
Универсальный |
Версия |
Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
Верхний колонтитул |
Netioapi.h (include Netioapi.h) |
Библиотека |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |