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


Метод INetFwMgr::IsPortAllowed (netfw.h)

[API брандмауэра Windows доступен для использования в операционных системах, указанных в разделе Требования. В последующих версиях он может быть изменен или недоступен. Для Windows Vista и более поздних версий рекомендуется использовать API брандмауэра Windows в режиме повышенной безопасности .]

Определяет, может ли приложение прослушивать входящий трафик через указанный порт.

Синтаксис

HRESULT IsPortAllowed(
  [in]  BSTR               imageFileName,
  [in]  NET_FW_IP_VERSION  ipVersion,
  [in]  LONG               portNumber,
  [in]  BSTR               localAddress,
  [in]  NET_FW_IP_PROTOCOL ipProtocol,
  [out] VARIANT            *allowed,
  [out] VARIANT            *restricted
);

Параметры

[in] imageFileName

Имя файла образа процесса, прослушивающего данные в сети. Это должен быть полный путь, но он может содержать переменные среды. Если imageFileName имеет значение NULL, функция определяет, разрешен ли порт для всех приложений.

[in] ipVersion

IP-версия трафика. Если параметр localAddress не равен NULL, это не должно быть NET_FW_IP_VERSION_ANY.

[in] portNumber

Номер локального IP-порта трафика.

[in] localAddress

IPv4-адрес с точками или шестнадцатеричный адрес IPv6, указывающий локальный адрес трафика. Как правило, это адрес, передаваемый для привязки. Если параметр localAddress имеет значение NULL, функция определяет, разрешен ли порт для всех интерфейсов.

[in] ipProtocol

IP-протокол трафика, NET_FW_IP_PROTOCOL_TCP или NET_FW_IP_PROTOCOL_UDP.

[out] allowed

Указывает значением VARIANT_TRUE или VARIANT_FALSE, разрешен ли порт хотя бы для некоторых локальных интерфейсов и удаленных адресов.

[out] restricted

Указывает значением VARIANT_TRUE или VARIANT_FALSE, заблокированы ли некоторые локальные интерфейсы или удаленные адреса для этого порта. Например, если порт ограничен только локальной подсетью.

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

C++

Код возврата Описание
E_ACCESSDENIED
Операция была остановлена из-за проблем с разрешениями.
E_INVALIDARG
Сбой метода, так как параметр был недопустимым.
E_OUTOFMEMORY
Методу не удалось выделить необходимую память.
E_POINTER
Сбой метода, так как указатель был недопустимым.
 

VB

Если метод выполнен успешно, возвращаемое значение будет S_OK.

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

Код возврата Описание
E_ACCESSDENIED
Операция была остановлена из-за проблем с разрешениями.
E_INVALIDARG
Сбой метода, так как параметр был недопустимым.
E_OUTOFMEMORY
Методу не удалось выделить необходимую память.
E_POINTER
Сбой метода, так как указатель был недопустимым.

Комментарии

Вместо этого метода обычно рекомендуется использовать метод INetFwPolicy2::IsRuleGroupEnabled .

Метод IsPortAllowed проверяет, будет ли разрешен трафик с текущей конфигурацией брандмауэра для:

  • Определенное приложение.
  • Определенный порт.
  • Определенное приложение на определенном порту.

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

Из-за множества факторов, определяющих, разрешен ли порт, чем больше конкретных сведений, которые предоставляются с помощью входных параметров этого метода, тем более вероятно, что будет возвращен четкий результат с существенными ограничениями.

Требования

Требование Значение
Минимальная версия клиента Windows Vista, Windows XP с пакетом обновления 2 (SP2) [только классические приложения]
Минимальная версия сервера Windows Server 2003 с пакетом обновления 1 (SP1) [только классические приложения]
Целевая платформа Windows
Header netfw.h
DLL FirewallAPI.dll; Hnetcfg.dll в Windows XP с пакетом обновления 2 (SP2)

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

INetFwMgr

NET_FW_IP_PROTOCOL

NET_FW_IP_VERSION