Compartilhar via


Função FwpmEngineGetOption0 (fwpmu.h)

A função FwpmEngineGetOption0 recupera uma opção de mecanismo de filtro.

Sintaxe

DWORD FwpmEngineGetOption0(
  [in]  HANDLE             engineHandle,
  [in]  FWPM_ENGINE_OPTION option,
  [out] FWP_VALUE0         **value
);

Parâmetros

[in] engineHandle

Tipo: HANDLE

Identificador de uma sessão aberta para o mecanismo de filtro. Chame FwpmEngineOpen0 para abrir uma sessão para o mecanismo de filtro.

[in] option

Tipo: FWPM_ENGINE_OPTION

A opção a ser recuperada.

[out] value

Tipo: FWP_VALUE0**

O valor da opção. O tipo de dados contido no parâmetro value será FWP_UINT32.

Se a opção for FWPM_ENGINE_COLLECT_NET_EVENTS, o valor será um dos seguintes.

Valor Significado
0
Eventos de rede não estão sendo coletados.
1
Eventos de rede estão sendo coletados.
 

Se a opção for FWPM_ENGINE_NET_EVENT_MATCH_ANY_KEYWORDS, o valor será uma combinação bit a bit dos valores a seguir.

Valor Significado
FWPM_NET_EVENT_KEYWORD_INBOUND_MCAST
1
Eventos de rede multicast de entrada estão sendo coletados.
FWPM_NET_EVENT_KEYWORD_INBOUND_BCAST
2
Eventos de rede de difusão de entrada não estão sendo coletados.
 

Se a opção for FWPM_ENGINE_PACKET_QUEUING (disponível apenas em Windows 8 e Windows Server 2012), o valor será um dos seguintes.

Valor Significado
FWPM_ENGINE_OPTION_PACKET_QUEUE_NONE
0
Nenhum enfileiramento de pacotes está habilitado.
FWPM_ENGINE_OPTION_PACKET_QUEUE_INBOUND
1
A fila de pacotes de entrada está habilitada.
FWPM_ENGINE_OPTION_PACKET_QUEUE_OUTBOUND
2
A fila de pacotes de saída está habilitada.
 

Se a opção for FWPM_ENGINE_MONITOR_IPSEC_CONNECTIONS (disponível apenas em Windows 8 e Windows Server 2012), o valor será um dos seguintes.

Valor Significado
0
O recurso de Monitoramento de Conexão IPsec está desabilitado. Nenhum evento de conexão IPsec ou notificações estão sendo registrados.
1
O recurso de Monitoramento de Conexão IPsec está habilitado. Novos eventos de conexão IPsec e notificações estão sendo registrados.
 

Se a opção for FWPM_ENGINE_TXN_WATCHDOG_TIMEOUT_IN_MSEC (disponível apenas em Windows 8 e Windows Server 2012), o valor será o tempo em milissegundos que especifica a duração máxima para uma única transação WFP. As transações demorando mais do que essa duração dispararão um evento watchdog.

A opção FWPM_ENGINE_NAME_CACHE é reservada para uso interno.

Retornar valor

Tipo: DWORD

Valor/código retornado Descrição
ERROR_SUCCESS
0
A opção foi recuperada com êxito.
código de erro FWP_E_*
0x80320001 — 0x80320039
Um erro específico da Plataforma de Filtragem do Windows (WFP). Consulte Códigos de erro do WFP para obter detalhes.
código de erro RPC_*
0x80010001 — 0x80010122
Falha ao se comunicar com o mecanismo de firewall remoto ou local.

Comentários

O chamador deve liberar o objeto retornado por uma chamada para FwpmFreeMemory0.

O chamador precisa FWPM_ACTRL_READ acesso ao mecanismo de filtro. Consulte Controle de Acesso para obter mais informações.

FwpmEngineGetOption0 é uma implementação específica de FwpmEngineGetOption. Consulte Nomes de Version-Independent WFP e Direcionamento de versões específicas do Windows para obter mais informações.

Exemplos

O exemplo C++ a seguir ilustra o uso de FwpmEngineGetOption0 para determinar se os eventos de rede estão sendo coletados.

#include <windows.h>
#include <fwpmu.h>
#include <stdio.h>

#pragma comment(lib, "Fwpuclnt.lib")

void main()
{
    HANDLE engineHandle = NULL; 
    DWORD  result = ERROR_SUCCESS; 

    FWPM_ENGINE_OPTION option = FWPM_ENGINE_COLLECT_NET_EVENTS;
    FWP_VALUE0* fwpValue = NULL;

    result = FwpmEngineOpen0( NULL, RPC_C_AUTHN_WINNT, NULL, NULL, &engineHandle );
    if (result != ERROR_SUCCESS)
    {
        printf("FwpmEngineOpen0 failed.\n");
        return;
    }

    result = FwpmEngineGetOption0( engineHandle, option, &fwpValue);

    if (result != ERROR_SUCCESS)
    {
        printf("FwpmEngineGetOption0 failed.\n");
        return;
    }
    else if(fwpValue->type == FWP_UINT32)
    {
        if(fwpValue->uint32 == 1 ) 
            printf("Network events are being collected.\n");
        else
            printf("Network events are NOT being collected.\n");
    }
    else
        printf("Unexpected data type received.\n");

    FwpmFreeMemory0((void**)&fwpValue); 

    return;
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho fwpmu.h
Biblioteca Fwpuclnt.lib
DLL Fwpuclnt.dll

Confira também

FWPM_ENGINE_OPTION

FWP_VALUE0

FwpmEngineSetOption0