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 |
---|---|
|
A operação foi interrompida devido a problemas de permissões. |
|
O método falhou porque um parâmetro não era válido. |
|
O método não pôde alocar a memória necessária. |
|
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 |
---|---|
|
A operação foi interrompida devido a problemas de permissões. |
|
O método falhou porque um parâmetro não era válido. |
|
O método não pôde alocar a memória necessária. |
|
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 |