Метод 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++
Код возврата | Описание |
---|---|
|
Операция была остановлена из-за проблем с разрешениями. |
|
Сбой метода, так как параметр был недопустимым. |
|
Методу не удалось выделить необходимую память. |
|
Сбой метода, так как указатель был недопустимым. |
VB
Если метод выполнен успешно, возвращаемое значение будет S_OK.Если метод завершается ошибкой, возвращаемое значение является одним из следующих кодов ошибок.
Код возврата | Описание |
---|---|
|
Операция была остановлена из-за проблем с разрешениями. |
|
Сбой метода, так как параметр был недопустимым. |
|
Методу не удалось выделить необходимую память. |
|
Сбой метода, так как указатель был недопустимым. |
Комментарии
Вместо этого метода обычно рекомендуется использовать метод 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) |