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


Функция GetExtendedUdpTable (iphlpapi.h)

Функция GetExtendedUdpTable извлекает таблицу, содержащую список конечных точек UDP, доступных приложению.

Синтаксис

IPHLPAPI_DLL_LINKAGE DWORD GetExtendedUdpTable(
  [out]     PVOID           pUdpTable,
  [in, out] PDWORD          pdwSize,
  [in]      BOOL            bOrder,
  [in]      ULONG           ulAf,
  [in]      UDP_TABLE_CLASS TableClass,
  [in]      ULONG           Reserved
);

Параметры

[out] pUdpTable

Указатель на структуру таблицы, содержащую отфильтрованные конечные точки UDP, доступные приложению. Сведения об определении типа возвращаемой таблицы на основе конкретных сочетаний входных параметров см. в разделе Примечания далее в этом документе.

[in, out] pdwSize

Предполагаемый размер структуры, возвращаемой в pUdpTable, в байтах. Если это значение слишком мало, функция возвращает ERROR_INSUFFICIENT_BUFFER , и это поле будет содержать правильный размер структуры.

[in] bOrder

Значение типа , указывающее, следует ли отсортировать таблицу конечных точек UDP. Если для этого параметра задано значение TRUE, конечные точки UDP в таблице сортируются по возрастанию, начиная с самого низкого локального IP-адреса. Если для этого параметра задано значение FALSE, конечные точки UDP в таблице отображаются в том порядке, в котором они были получены.

При упорядочении конечных точек UDP сравниваются следующие значения:

  1. Локальный IP-адрес
  2. Локальный идентификатор область (применяется, если для параметра ulAf задано значение AF_INET6)
  3. Локальный UDP-порт

[in] ulAf

Версия IP-адреса, используемого конечной точкой UDP.

Значение Значение
AF_INET
Используется протокол IPv4.
AF_INET6
Используется IPv6.

[in] TableClass

Тип извлекаемой структуры таблицы UDP. Этот параметр может быть одним из значений перечисления UDP_TABLE_CLASS .

В windows SDK, выпущенном для Windows Vista и более поздних версий, организация файлов заголовков изменилась, и перечисление UDP_TABLE_CLASS определяется в файле заголовка Iprtrmib.h , а не в файле заголовка Iphlpapi.h .

Значение перечисления UDP_TABLE_CLASS объединяется со значением параметра ulAf для определения извлекаемых расширенных сведений UDP.

[in] Reserved

Зарезервировано. Это значение должно быть равно нулю.

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

Если вызов выполнен успешно, возвращается значение NO_ERROR .

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

Код возврата Описание
ERROR_INSUFFICIENT_BUFFER
Для таблицы было выделено недостаточно места. Размер таблицы возвращается в параметре pdwSize и должен использоваться при последующем вызове этой функции для успешного извлечения таблицы.

Эта ошибка также возвращается, если параметр pUdpTable имеет значение NULL.

ERROR_INVALID_PARAMETER
В функцию передан недопустимый параметр. Эта ошибка возвращается, если параметр TableClass содержит значение, не определенное в перечислении UDP_TABLE_CLASS .

Комментарии

Тип таблицы, возвращаемый этой функцией, зависит от конкретного сочетания параметров ulAf и TableClass .

Если для параметра ulAf задано значение AF_INET, в следующей таблице указан тип таблицы UDP, который необходимо получить в структуре, на которую указывает параметр pUdpTable для каждого возможного значения TableClass .

Значение TableClass Структура pUdpTable
UDP_TABLE_BASIC MIB_UDPTABLE
UDP_TABLE_OWNER_MODULE MIB_UDPTABLE_OWNER_MODULE
UDP_TABLE_OWNER_PID MIB_UDPTABLE_OWNER_PID
 

Если для параметра ulAf задано значение AF_INET6, в следующей таблице указан тип таблицы TCP, который необходимо получить в структуре, на которую указывает параметр pUdpTable для каждого возможного значения TableClass .

Значение TableClass Структура pUdpTable
UDP_TABLE_BASIC MIB_UDP6TABLE
UDP_TABLE_OWNER_MODULE MIB_UDP6TABLE_OWNER_MODULE
UDP_TABLE_OWNER_PID MIB_UDP6TABLE_OWNER_PID
 

Функция GetExtendedUdpTable при вызове с параметром ulAf , заданным в AF_INET6 , а tableClassUDP_TABLE_BASIC , поддерживается только в Windows Vista и более поздних версиях.

В Windows Server 2003 с пакетом обновления 1 (SP1) и Windows XP с пакетом обновления 2 (SP2) функция GetExtendedUdpTable, вызываемая с параметромulAf , для параметра AF_INET6 и tableClass , для UDP_TABLE_BASIC завершается сбоем и возвращает ERROR_NOT_SUPPORTED.

В windows SDK, выпущенном для Windows Vista и более поздних версий, организация файлов заголовков изменилась. Различные структуры MIB_UDPTABLE определяются в файле заголовка Udpmib.h , а не в файле заголовка Iprtrmib.h . Обратите внимание, что файл заголовка Udpmib.h автоматически включается в iprtrmib.h, который автоматически включается в файл заголовка Iphlpapi.h . Файлы заголовков Udpmib.h и Iprtrmib.h никогда не должны использоваться напрямую.

Требования

   
Минимальная версия клиента Windows Vista, Windows XP с пакетом обновления 2 (SP2) [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008, Windows Server 2003 с пакетом обновления 1 (SP1) [классические приложения | Приложения UWP]
Целевая платформа Windows
Header iphlpapi.h
Библиотека Iphlpapi.lib
DLL Iphlpapi.dll

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

MIB_UDP6TABLE

MIB_UDP6TABLE_OWNER_MODULE

MIB_UDP6TABLE_OWNER_PID

MIB_UDPTABLE

MIB_UDPTABLE_OWNER_MODULE

MIB_UDPTABLE_OWNER_PID

UDP_TABLE_CLASS