Функция SetPerTcp6ConnectionEStats (iphlpapi.h)
Функция SetPerTcp6ConnectionEStats задает значение в сведениях для чтения и записи tcp-подключения IPv6. Эта функция используется для включения или отключения расширенной статистики для tcp-подключения IPv6.
Синтаксис
IPHLPAPI_DLL_LINKAGE ULONG SetPerTcp6ConnectionEStats(
PMIB_TCP6ROW Row,
TCP_ESTATS_TYPE EstatsType,
PUCHAR Rw,
ULONG RwVersion,
ULONG RwSize,
ULONG Offset
);
Параметры
Row
Указатель на структуру MIB_TCP6ROW для tcp-подключения IPv6.
EstatsType
Тип расширенной статистики для задается TCP. Этот параметр определяет данные и формат сведений, ожидаемых в параметре Rw .
Этот параметр может быть одним из значений из типа перечисления TCP_ESTATS_TYPE , определенного в файле заголовка Tcpestats.h .
Значение | Значение |
---|---|
|
Это значение указывает расширенные сведения о передаче данных для TCP-подключения.
Если указано это значение, буфер, на который указывает параметр Rw , должен указывать на TCP_ESTATS_DATA_RW_v0 структуру. |
|
Это значение указывает перегрузку отправителя для TCP-подключения.
Если это значение указано, буфер, на который указывает параметр Rw , должен указывать на TCP_ESTATS_SND_CONG_RW_v0 структуру. |
|
Это значение указывает расширенные сведения об измерении пути для TCP-подключения.
Если это значение указано, буфер, на который указывает параметр Rw , должен указывать на TCP_ESTATS_PATH_RW_v0 структуру. |
|
Это значение указывает расширенные сведения о очереди вывода для TCP-подключения.
Если указано это значение, буфер, на который указывает параметр Rw , должен указывать на TCP_ESTATS_SEND_BUFF_RW_v0 структуру. |
|
Это значение указывает расширенные сведения о локальном приемнике для TCP-подключения.
Если это значение указано, буфер, на который указывает параметр Rw , должен указывать на TCP_ESTATS_REC_RW_v0 структуру. |
|
Это значение указывает расширенные сведения о удаленном приемнике для TCP-подключения.
Если указано это значение, буфер, на который указывает параметр Rw , должен указывать на TCP_ESTATS_OBS_REC_RW_v0 структуру. |
|
Это значение указывает статистику оценки пропускной способности для TCP-подключения по пропускной способности.
Если это значение указано, буфер, на который указывает параметр Rw , должен указывать на TCP_ESTATS_BANDWIDTH_RW_v0 структуру. |
|
Это значение указывает детализированную статистику оценки времени кругового пути (RTT) для TCP-подключения.
Если указано это значение, буфер, на который указывает параметр Rw , должен указывать на TCP_ESTATS_FINE_RTT_RW_v0 структуру. |
Rw
Указатель на буфер, содержащий устанавливаемые сведения для чтения и записи. Буфер должен содержать значение перечисления TCP_BOOLEAN_OPTIONAL для каждого элемента структуры, указывающее способ обновления каждого элемента.
RwVersion
Версия устанавливаемых сведений для чтения и записи. Этот параметр должен иметь нулевое значение для Windows Vista, Windows Server 2008 и Windows 7.
RwSize
Размер (в байтах) буфера, на который указывает параметр Rw .
Offset
Смещение (в байтах) к члену в структуре, на который указывает устанавливаемый параметр Rw . Этот параметр в настоящее время не используется и должен иметь нулевое значение.
Возвращаемое значение
Если функция выполняется успешно, возвращаемое значение будет NO_ERROR.
Если функция завершается сбоем, возвращаемое значение представляет собой один из следующих кодов ошибок.
Код возврата | Описание |
---|---|
|
Отказано в доступе". Эта ошибка возвращается при нескольких условиях, которые включают следующее: у пользователя отсутствуют необходимые права администратора на локальном компьютере или приложение не выполняется в расширенной оболочке в качестве встроенного администратора (администратора запуска от имени). |
|
Неправильный параметр". Эта ошибка возвращается, если параметр Row является указателем NULL . |
|
Предоставленный буфер пользователя недопустим для запрошенной операции. Эта ошибка возвращается, если параметр Row является указателем NULL , а параметр RwSize не равен нулю. |
|
Эта запрошенная запись не найдена. Эта ошибка возвращается, если не удалось найти TCP-подключение, указанное в параметре Row . |
|
Запрос не поддерживается. Эта ошибка возвращается, если для параметра RwVersion или Offset не задано значение 0. |
|
Используйте FormatMessage , чтобы получить строку сообщения для возвращенной ошибки. |
Комментарии
Функция SetPerTcp6ConnectionEStats определена в Windows Vista и более поздних версиях.
Функция SetPerTcp6ConnectionEStats используется для включения или отключения расширенной статистики для tcp-подключения IPv6, переданного в параметре Row . Расширенная статистика по TCP-подключению отключена по умолчанию.
Функция SetPerTcp6ConnectionEStats используется для задания значения элемента в сведениях для чтения и записи для расширенной статистики для tcp-подключения IPv6. Тип и формат задается с помощью параметра EstatsType . Параметр Rw содержит указатель на передаваемую структуру. Элемент, задается в этой структуре с помощью параметра Offset . Необходимо указать все элементы в структуре, на которую указывает параметр Rw .
В настоящее время поддерживается только нулевая версия статистики tcp-подключений. Поэтому для параметра RwVersion, передаваемого в SetPerTcp6ConnectionEStats , необходимо задать значение 0.
Структура, на которую указывает параметр Rw , переданный этой функции, зависит от значения перечисления, переданного в параметре EstatsType . В следующей таблице ниже указан тип структуры, который должен передаваться в параметре Rw для каждого возможного типа параметра EstatsType .
EstatsType | Структура, на которую указывает Rw |
---|---|
TcpConnectionEstatsData | TCP_ESTATS_DATA_RW_v0 |
TcpConnectionEstatsSndCong | TCP_ESTATS_SND_CONG_RW_v0 |
TcpConnectionEstatsPath | TCP_ESTATS_PATH_RW_v0 |
TcpConnectionEstatsSendBuff | TCP_ESTATS_SEND_BUFF_RW_v0 |
TcpConnectionEstatsRec | TCP_ESTATS_REC_RW_v0 |
TcpConnectionEstatsObsRec | TCP_ESTATS_OBS_REC_RW_v0 |
TcpConnectionEstatsBandwidth | TCP_ESTATS_BANDWIDTH_RW_v0 |
TcpConnectionEstatsFineRtt | TCP_ESTATS_FINE_RTT_RW_v0 |
Параметр Offset в настоящее время не используется. Все возможные структуры, на которые указывает параметр Rw , имеют один член, за исключением структуры TCP_ESTATS_BANDWIDTH_RW_v0 . Если для параметра EstatsType задано значение TcpConnectionEstatsBandwidth, структура TCP_ESTATS_BANDWIDTH_RW_v0 , на которую указывает параметр Rw , должна иметь оба элемента структуры, равные предпочтительным значениям в одном вызове функции SetPerTcp6ConnectionEStats .
Если параметр RwSize имеет значение 0, функция SetPerTcp6ConnectionEStats возвращает NO_ERROR и не вносит изменений в состояние расширенной статистики.
Функция GetTcp6Table используется для получения таблицы tcp-подключений IPv6 на локальном компьютере. Эта функция возвращает MIB_TCP6TABLE структуру, содержащую массив MIB_TCP6ROW записей. Параметр Row , передаваемый в функцию SetPerTcp6ConnectionEStats , должен быть записью для существующего TCP-подключения IPv6.
После включения расширенной статистики в TCP-подключении для IPv6 приложение вызывает функцию GetPerTcp6ConnectionEStats для получения расширенной статистики по TCP-подключению.
Функция GetPerTcp6ConnectionEStats предназначена для использования ПРОТОКОЛА TCP для диагностики проблем с производительностью как в сети, так и в приложении. Если сетевое приложение работает плохо, TCP может определить, находится ли узкое место в отправителе, получателе или самой сети. Если узкое место находится в сети, TCP может предоставить конкретные сведения о его природе.
Сведения о расширенной статистике TCP для подключения IPv4 см. в разделах Функции GetPerTcpConnectionEStats и SetPerTcpConnectionEStats .
Функция SetPerTcp6ConnectionEStats может вызываться только пользователем, вошедшего в систему как член группы администраторов. Если метод SetPerTcp6ConnectionEStats вызывается пользователем, не включаемым в группу Администраторы, вызов функции завершится ошибкой и возвращается ERROR_ACCESS_DENIED . Эта функция также может завершиться сбоем из-за контроля учетных записей (UAC) в Windows Vista и Windows Server 2008. Если приложение, содержащее эту функцию, выполняется пользователем, вошедшего в систему как участник группы администраторов, отличный от встроенного администратора, этот вызов завершится ошибкой, если приложение не было отмечено в файле манифеста параметром requestedExecutionLevel , для которого задано значение requireAdministrator. Если в приложении в Windows Vista или Windows Server 2008 отсутствует этот файл манифеста, пользователь, вошедший в систему как член группы администраторов, отличный от встроенного администратора, должен выполнять приложение в расширенной оболочке в качестве встроенного администратора (администратора запуска от имени) для успешного выполнения этой функции.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | iphlpapi.h |
Библиотека | Iphlpapi.lib |
DLL | Iphlpapi.dll |