Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Функция GetOwnerModuleFromTcp6Entry извлекает данные о модуле, который выдал привязку контекста для определенной конечной точки TCP IPv6 в строке таблицы MIB.
Синтаксис
IPHLPAPI_DLL_LINKAGE DWORD GetOwnerModuleFromTcp6Entry(
[in] PMIB_TCP6ROW_OWNER_MODULE pTcpEntry,
[in] TCPIP_OWNER_MODULE_INFO_CLASS Class,
[out] PVOID pBuffer,
[in, out] PDWORD pdwSize
);
Параметры
[in] pTcpEntry
Указатель на структуру MIB_TCP6ROW_OWNER_MODULE , содержащую запись конечной точки TCP IPv6, используемую для получения модуля владельца.
[in] Class
Значение перечисления TCPIP_OWNER_MODULE_INFO_CLASS , указывающее тип данных, которые необходимо получить в отношении модуля владельца. Перечисление TCPIP_OWNER_MODULE_INFO_CLASS определяется в файле заголовка Iprtrmib.h .
Для этого параметра необходимо задать значение TCPIP_OWNER_MODULE_INFO_BASIC.
[out] pBuffer
Указатель на буфер, содержащий структуру TCPIP_OWNER_MODULE_BASIC_INFO с данными модуля владельца. Тип данных, возвращаемых в этом буфере, определяется значением параметра Class .
Следующие структуры используются для данных в Buffer , если классу присвоено соответствующее значение.
| Значение перечисления классов | Формат данных буфера |
|---|---|
| TCPIP_OWNER_MODULE_BASIC_INFO | TCPIP_OWNER_MODULE_BASIC_INFO |
[in, out] pdwSize
Предполагаемый размер структуры, возвращаемой в буфере, в байтах. Если это значение слишком мало, функция возвращает ERROR_INSUFFICIENT_BUFFER , и это поле будет содержать правильный размер структуры.
Возвращаемое значение
Если вызов функции выполнен успешно, возвращается значение , NO_ERROR .
Если функция завершается сбоем, возвращаемое значение представляет собой один из следующих кодов ошибок.
| Код возврата | Описание |
|---|---|
|
Для таблицы было выделено недостаточно места. Размер таблицы возвращается в параметре pdwSize и должен использоваться в последующем вызове этой функции для успешного извлечения таблицы. |
|
Неправильный параметр. Это значение возвращается, если один из параметров pTcpEntry или pdwSize имеет значение NULL. Это значение также возвращается, если параметр Class не равен TCPIP_OWNER_MODULE_INFO_BASIC. |
|
Недостаточно памяти для выполнения операции. |
|
Элемент не обнаружен. Это значение возвращается, если элемент dwOwningPidMIB_TCP6ROW_OWNER_MODULE , на который указывает параметр pTcpEntry , был равен нулю или не найден. |
|
Выполнена только часть запроса. |
Комментарии
Параметр Buffer содержит не только структуру с указателями на определенные данные, например указатели на строки с нулевым завершением, которые содержат имя и путь модуля владельца, но и сами данные; — это строки имени и пути. Поэтому при расчете размера буфера убедитесь, что у вас достаточно места для структуры, а также данных, на которые указывают члены структуры.
Рекомендуется разрешить записи таблицы TCP в модули-владельцы. В некоторых случаях имя модуля владельца, возвращаемое в структуре TCPIP_OWNER_MODULE_BASIC_INFO , может быть именем процесса (например, "svchost.exe"), именем службы (например, "RPC") или именем компонента (например, "timer.dll").
Для компьютеров под управлением Windows Vista или более поздней версии элементы pModuleName и pModulePathTCPIP_OWNER_MODULE_BASIC_INFO , полученные функцией GetOwnerModuleFromTcpEntry , могут указывать на пустую строку для некоторых TCP-подключений. Приложения, запускающие TCP-подключения, расположенные в системной папке Windows (по умолчанию C:\Windows\System32), считаются защищенными. Если функция GetOwnerModuleFromTcpEntry вызывается пользователем, не включаемым в группу Администраторы, вызов функции будет выполнен успешно, но элементы pModuleName и pModulePath будут указывать на память, содержащую пустую строку для TCP-подключений, запущенных защищенными приложениями.
Для компьютеров под управлением Windows Vista или более поздней версии доступ к элементам pModuleName и pModulePath структуры TCPIP_OWNER_MODULE_BASIC_INFO ограничен контролем учетных записей пользователей (UAC). Если приложение, которое вызывает эту функцию, выполняется пользователем, вошедшего в систему как участник группы администраторов, отличный от встроенного администратора, этот вызов будет выполнен успешно, но доступ к этим членам возвращает пустую строку, если приложение не было отмечено в файле манифеста с параметром requestedExecutionLevel , для которого задано значение requireAdministrator. Если в приложении в Windows Vista или более поздних версиях отсутствует этот файл манифеста, пользователь, вошедший в группу администраторов, кроме встроенного администратора, должен выполнять приложение в расширенной оболочке в качестве встроенного администратора (администратора запуска от имени), чтобы получить доступ к защищенным членам pModuleName и pModulePath .
Требования
| Минимальная версия клиента | Windows Vista, Windows XP с пакетом обновления 2 (SP2) [только классические приложения] |
| Минимальная версия сервера | Windows Server 2008, Windows Server 2003 с пакетом обновления 1 (SP1) [только классические приложения] |
| Целевая платформа | Windows |
| Header | iphlpapi.h |
| Библиотека | Iphlpapi.lib |
| DLL | Iphlpapi.dll |