Поделиться через


Функция FwpmEngineGetOption0 (fwpmu.h)

Функция FwpmEngineGetOption0 извлекает параметр обработчика фильтра.

Синтаксис

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

Параметры

[in] engineHandle

Тип: HANDLE

Дескриптор открытого сеанса для подсистемы фильтрации. Вызовите FwpmEngineOpen0 , чтобы открыть сеанс для подсистемы фильтрации.

[in] option

Тип: FWPM_ENGINE_OPTION

Извлекаемая возможность.

[out] value

Тип: FWP_VALUE0**

Значение параметра. Тип данных, содержащийся в параметре value , будет FWP_UINT32.

Если параметримеет FWPM_ENGINE_COLLECT_NET_EVENTS, значение будет иметь одно из следующих значений.

Значение Значение
0
Сетевые события не собираются.
1
Собираются сетевые события.
 

Если параметрFWPM_ENGINE_NET_EVENT_MATCH_ANY_KEYWORDS, значение будет побитовое сочетание следующих значений.

Значение Значение
FWPM_NET_EVENT_KEYWORD_INBOUND_MCAST
1
Собираются входящие сетевые события многоадресной рассылки.
FWPM_NET_EVENT_KEYWORD_INBOUND_BCAST
2
Входящие широковещательные сетевые события не собираются.
 

Если параметрFWPM_ENGINE_PACKET_QUEUING (доступен только в Windows 8 и Windows Server 2012), значение будет одним из следующих.

Значение Значение
FWPM_ENGINE_OPTION_PACKET_QUEUE_NONE
0
Очередь пакетов не включена.
FWPM_ENGINE_OPTION_PACKET_QUEUE_INBOUND
1
Очередь входящих пакетов включена.
FWPM_ENGINE_OPTION_PACKET_QUEUE_OUTBOUND
2
Очередь исходящих пакетов включена.
 

Если параметр имеет значение FWPM_ENGINE_MONITOR_IPSEC_CONNECTIONS (доступно только в Windows 8 и Windows Server 2012), значение будет одним из следующих.

Значение Значение
0
Функция мониторинга подключений IPsec отключена. События подключения IPsec или уведомления не регистрируются.
1
Включена функция мониторинга подключений IPsec. Регистрируются новые события подключения IPsec и уведомления.
 

Если параметр имеет значение FWPM_ENGINE_TXN_WATCHDOG_TIMEOUT_IN_MSEC (доступно только в Windows 8 и Windows Server 2012), значением будет время в миллисекундах, указывающее максимальную продолжительность одной транзакции ВПП. Транзакции, превышающие этот период, активируют событие наблюдения.

Параметр FWPM_ENGINE_NAME_CACHE зарезервирован для внутреннего использования.

Возвращаемое значение

Тип: DWORD

Возвращаемый код/значение Описание
ERROR_SUCCESS
0
Параметр успешно получен.
Код ошибки FWP_E_*
0x80320001 — 0x80320039
Ошибка, определяемая платформой фильтрации Windows (WFP). Дополнительные сведения см. в разделе Коды ошибок ВПП .
Код ошибки RPC_*
0x80010001 — 0x80010122
Сбой связи с подсистемой удаленного или локального брандмауэра.

Комментарии

Вызывающий объект должен освободить возвращенный объект путем вызова FwpmFreeMemory0.

Вызывающему объекту требуется FWPM_ACTRL_READ доступ к механизму фильтрации. Дополнительные сведения см. в разделе контроль доступа.

FwpmEngineGetOption0 — это конкретная реализация FwpmEngineGetOption. Дополнительные сведения см. в разделах ИМЕНА Version-Independent ВПП и Выбор конкретных версий Windows .

Примеры

В следующем примере C++ показано использование FwpmEngineGetOption0 для определения того, собираются ли сетевые события.

#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;
}

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header fwpmu.h
Библиотека Fwpuclnt.lib
DLL Fwpuclnt.dll

См. также раздел

FWPM_ENGINE_OPTION

FWP_VALUE0

FwpmEngineSetOption0