Функция GetExtendedTcpTable (iphlpapi.h)
Функция GetExtendedTcpTable извлекает таблицу, содержащую список конечных точек TCP, доступных приложению.
Синтаксис
IPHLPAPI_DLL_LINKAGE DWORD GetExtendedTcpTable(
[out] PVOID pTcpTable,
[in, out] PDWORD pdwSize,
[in] BOOL bOrder,
[in] ULONG ulAf,
[in] TCP_TABLE_CLASS TableClass,
[in] ULONG Reserved
);
Параметры
[out] pTcpTable
Указатель на структуру таблицы, содержащую отфильтрованные конечные точки TCP, доступные приложению. Сведения об определении типа возвращаемой таблицы на основе конкретных сочетаний входных параметров см. в разделе Примечания далее в этом документе.
[in, out] pdwSize
Предполагаемый размер структуры, возвращаемой в pTcpTable, в байтах. Если это значение слишком мало, функция возвращает ERROR_INSUFFICIENT_BUFFER , и это поле будет содержать правильный размер структуры.
[in] bOrder
Значение типа , указывающее, следует ли отсортировать таблицу tcp-подключений. Если для этого параметра задано значение TRUE, конечные точки TCP в таблице сортируются по возрастанию, начиная с самого низкого локального IP-адреса. Если для этого параметра задано значение FALSE, конечные точки TCP в таблице отображаются в том порядке, в котором они были получены.
Следующие значения сравниваются (как указано) при упорядочении конечных точек TCP:
- Локальный IP-адрес
- Локальный идентификатор область (применяется, если для параметра ulAf задано значение AF_INET6)
- Локальный TCP-порт
- Удаленный IP-адрес
- Идентификатор удаленного область (применимо, если параметр ulAf имеет значение AF_INET6)
- Удаленный TCP-порт
[in] ulAf
Версия IP-адреса, используемого конечными точками TCP.
Значение | Значение |
---|---|
|
Используется протокол IPv4. |
|
Используется IPv6. |
[in] TableClass
Тип извлекаемой структуры таблицы TCP. Этот параметр может быть одним из значений перечисления TCP_TABLE_CLASS .
На Windows SDK, выпущенном для Windows Vista и более поздних версий, организация файлов заголовков изменилась, и перечисление TCP_TABLE_CLASS определяется в файле заголовка Iprtrmib.h, а не в файле заголовка Iphlpapi.h.
Значение перечисления TCP_TABLE_CLASS объединяется со значением параметра ulAf , чтобы определить извлекаемую расширенную информацию TCP.
[in] Reserved
Зарезервировано. Это значение должно быть равно нулю.
Возвращаемое значение
Если вызов выполнен успешно, возвращается значение NO_ERROR .
Если функция завершается сбоем, возвращается один из следующих кодов ошибок.
Код возврата | Описание |
---|---|
|
Для таблицы было выделено недостаточно места. Размер таблицы возвращается в параметре pdwSize и должен использоваться при последующем вызове этой функции для успешного извлечения таблицы.
Эта ошибка также возвращается, если параметр pTcpTable имеет значение NULL. |
|
В функцию передан недопустимый параметр. Эта ошибка возвращается, если параметр TableClass содержит значение, не определенное в перечислении TCP_TABLE_CLASS . |
Комментарии
Тип таблицы, возвращаемый этой функцией, зависит от конкретного сочетания параметров ulAf и TableClass .
Если для параметра ulAf задано значение AF_INET, в следующей таблице указан тип таблицы TCP, извлекаемый в структуре, на которую указывает параметр pTcpTable для каждого возможного значения TableClass .
Значение TableClass | Структура pTcpTable |
---|---|
TCP_TABLE_BASIC_ALL | MIB_TCPTABLE |
TCP_TABLE_BASIC_CONNECTIONS | MIB_TCPTABLE |
TCP_TABLE_BASIC_LISTENER | MIB_TCPTABLE |
TCP_TABLE_OWNER_MODULE_ALL | MIB_TCPTABLE_OWNER_MODULE |
TCP_TABLE_OWNER_MODULE_CONNECTIONS | MIB_TCPTABLE_OWNER_MODULE |
TCP_TABLE_OWNER_MODULE_LISTENER | MIB_TCPTABLE_OWNER_MODULE |
TCP_TABLE_OWNER_PID_ALL | MIB_TCPTABLE_OWNER_PID |
TCP_TABLE_OWNER_PID_CONNECTIONS | MIB_TCPTABLE_OWNER_PID |
TCP_TABLE_OWNER_PID_LISTENER | MIB_TCPTABLE_OWNER_PID |
Если для параметра ulAf задано значение AF_INET6, в следующей таблице указан тип таблицы TCP, который необходимо получить в структуре, на которую указывает параметр pTcpTable для каждого возможного значения TableClass .
Значение TableClass | Структура pTcpTable |
---|---|
TCP_TABLE_OWNER_MODULE_ALL | MIB_TCP6TABLE_OWNER_MODULE |
TCP_TABLE_OWNER_MODULE_CONNECTIONS | MIB_TCP6TABLE_OWNER_MODULE |
TCP_TABLE_OWNER_MODULE_LISTENER | MIB_TCP6TABLE_OWNER_MODULE |
TCP_TABLE_OWNER_PID_ALL | MIB_TCP6TABLE_OWNER_PID |
TCP_TABLE_OWNER_PID_CONNECTIONS | MIB_TCP6TABLE_OWNER_PID |
TCP_TABLE_OWNER_PID_LISTENER | MIB_TCP6TABLE_OWNER_PID |
Функция GetExtendedTcpTable, вызываемая с параметром ulAf , равным AF_INET6 , а tableClass — TCP_TABLE_BASIC_LISTENER, TCP_TABLE_BASIC_CONNECTIONS или TCP_TABLE_BASIC_ALL , не поддерживается и возвращает ERROR_NOT_SUPPORTED.
На Windows SDK, выпущенном для Windows Vista и более поздних версий, организация файлов заголовков изменилась. Различные структуры MIB_TCPTABLE определяются в файле заголовка Tcpmib.h , а не в файле заголовка Iprtrmib.h . Обратите внимание, что файл заголовка Tcpmib.h автоматически включается в iprtrmib.h, который автоматически включается в файл заголовка Iphlpapi.h . Файлы заголовков Tcpmib.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 |