Compartilhar via


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

[A API do Firewall do Windows está disponível para uso nos sistemas operacionais especificados na seção Requisitos. Ele poderá ser alterado ou ficar indisponível em versões subsequentes. Para o Windows Vista e posterior, é recomendável usar o Firewall do Windows com a API de Segurança Avançada.]

Determina se um aplicativo pode escutar o tráfego de entrada na porta especificada.

Sintaxe

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

O nome do arquivo de imagem do processo escutando na rede. Ele deve ser um caminho totalmente qualificado, mas pode conter variáveis de ambiente. Se imageFileName for NULL, a função determinará se a porta é permitida para todos os aplicativos.

[in] ipVersion

Versão ip do tráfego. Se localAddress não for NULL, isso não deverá ser NET_FW_IP_VERSION_ANY.

[in] portNumber

Número da porta IP local do tráfego.

[in] localAddress

Um endereço IPv4 pontilhado-decimal ou um endereço hexadecimal IPv6 especificando o endereço local do tráfego. Normalmente, esse é o endereço passado para associação. Se localAddress for NULL, a função determinará se a porta é permitida para todas as interfaces.

[in] ipProtocol

Protocolo IP do tráfego, NET_FW_IP_PROTOCOL_TCP ou NET_FW_IP_PROTOCOL_UDP.

[out] allowed

Indica por um valor de VARIANT_TRUE ou VARIANT_FALSE se a porta é permitida para pelo menos algumas interfaces locais e endereços remotos.

[out] restricted

Indica por um valor de VARIANT_TRUE ou VARIANT_FALSE se algumas interfaces locais ou endereços remotos estão bloqueados para essa porta. Por exemplo, se a porta for restrita somente à sub-rede local.

Retornar valor

C++

Código de retorno Descrição
E_ACCESSDENIED
A operação foi interrompida devido a problemas de permissões.
E_INVALIDARG
O método falhou porque um parâmetro não era válido.
E_OUTOFMEMORY
O método não pôde alocar a memória necessária.
E_POINTER
O método falhou porque um ponteiro não era válido.
 

VB

Se o método for bem-sucedido, o valor retornado será S_OK.

Se o método falhar, o valor retornado será um dos seguintes códigos de erro.

Código de retorno Descrição
E_ACCESSDENIED
A operação foi interrompida devido a problemas de permissões.
E_INVALIDARG
O método falhou porque um parâmetro não era válido.
E_OUTOFMEMORY
O método não pôde alocar a memória necessária.
E_POINTER
O método falhou porque um ponteiro não era válido.

Comentários

O método INetFwPolicy2::IsRuleGroupEnabled geralmente é recomendado no lugar desse método.

O método IsPortAllowed verifica se o tráfego será permitido com a configuração de firewall atual para:

  • Um aplicativo específico.
  • Uma porta específica.
  • Um aplicativo específico em uma porta específica.

Em sua operação , IsPortAllowed considera se o firewall está habilitado ou desabilitado no momento, se o aplicativo é permitido na Lista de Exceções do perfil atual, se a porta é permitida na Lista de Exceções do perfil atual, se a opção de compartilhamento de arquivo e impressão foi habilitada e se a opção de administração remota foi habilitada.

Devido aos muitos fatores para determinar se uma porta é permitida, quanto mais informações específicas forem fornecidas por meio dos parâmetros de entrada desse método, mais provável será retornado um resultado claro com restrições significativas.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista, Windows XP com SP2 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 com SP1 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho netfw.h
DLL FirewallAPI.dll; Hnetcfg.dll no Windows XP com SP2

Confira também

INetFwMgr

NET_FW_IP_PROTOCOL

NET_FW_IP_VERSION