Compartir a través de


Método INetFwMgr::IsPortAllowed (netfw.h)

[La API de Firewall de Windows está disponible para su uso en los sistemas operativos especificados en la sección Requisitos. En versiones posteriores podría modificarse o no estar disponible. Para Windows Vista y versiones posteriores, se recomienda usar firewall de Windows con la API de seguridad avanzada .

Determina si una aplicación puede escuchar el tráfico entrante en el puerto especificado.

Sintaxis

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
);

Parámetros

[in] imageFileName

Nombre del archivo de imagen del proceso que escucha en la red. Debe ser una ruta de acceso completa, pero puede contener variables de entorno. Si imageFileName es NULL, la función determina si se permite el puerto para todas las aplicaciones.

[in] ipVersion

Versión IP del tráfico. Si localAddress no es NULL, no debe ser NET_FW_IP_VERSION_ANY.

[in] portNumber

Número de puerto IP local del tráfico.

[in] localAddress

Una dirección IPv4 decimal con puntos o una dirección hexadecimal IPv6 que especifica la dirección local del tráfico. Normalmente, esta es la dirección que se pasa al enlace. Si localAddress es NULL, la función determina si el puerto está permitido para todas las interfaces.

[in] ipProtocol

Protocolo IP del tráfico, ya sea NET_FW_IP_PROTOCOL_TCP o NET_FW_IP_PROTOCOL_UDP.

[out] allowed

Indica por un valor de VARIANT_TRUE o VARIANT_FALSE si el puerto está permitido para al menos algunas interfaces locales y direcciones remotas.

[out] restricted

Indica por un valor de VARIANT_TRUE o VARIANT_FALSE si algunas interfaces locales o direcciones remotas están bloqueadas para este puerto. Por ejemplo, si el puerto está restringido solo a la subred local.

Valor devuelto

C++

Código devuelto Descripción
E_ACCESSDENIED
La operación se detuvo debido a problemas de permisos.
E_INVALIDARG
Error en el método porque un parámetro no era válido.
E_OUTOFMEMORY
El método no pudo asignar la memoria necesaria.
E_POINTER
Error en el método porque un puntero no era válido.
 

VB

Si el método se realiza correctamente, el valor devuelto se S_OK.

Si se produce un error en el método, el valor devuelto es uno de los siguientes códigos de error.

Código devuelto Descripción
E_ACCESSDENIED
La operación se detuvo debido a problemas de permisos.
E_INVALIDARG
Error en el método porque un parámetro no era válido.
E_OUTOFMEMORY
El método no pudo asignar la memoria necesaria.
E_POINTER
Error en el método porque un puntero no era válido.

Comentarios

El método INetFwPolicy2::IsRuleGroupEnabled se recomienda generalmente en lugar de este método.

El método IsPortAllowed comprueba si se permitirá el tráfico con la configuración actual del firewall para:

  • Una aplicación específica.
  • Un puerto específico.
  • Una aplicación específica en un puerto específico.

En su operación IsPortAllowed considera si el firewall está habilitado o deshabilitado actualmente, si la aplicación está permitida en la lista de excepciones del perfil actual, si el puerto está permitido en la lista de excepciones del perfil actual, si se ha habilitado la opción de uso compartido de archivos e impresión y si se ha habilitado la opción de administración remota.

Debido a los muchos factores para determinar si se permite un puerto, se devolverá la información más específica que se proporciona a través de los parámetros de entrada de este método, lo más probable es que se devuelva un resultado claro con restricciones significativas.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista, Windows XP con SP2 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 con SP1 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado netfw.h
Archivo DLL FirewallAPI.dll; Hnetcfg.dll en Windows XP con SP2

Consulte también

INetFwMgr

NET_FW_IP_PROTOCOL

NET_FW_IP_VERSION