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**

选项值。 参数中包含的数据类型将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) 中可用,则值将是指定单个 WFP 事务的最大持续时间的时间(以毫秒为单位)。 超过此持续时间的事务将触发监视器事件。

FWPM_ENGINE_NAME_CACHE选项保留供内部使用。

返回值

类型:DWORD

返回代码/值 说明
ERROR_SUCCESS
0
已成功检索选项。
FWP_E_* 错误代码
0x80320001— 0x80320039
Windows 筛选平台 (WFP) 特定错误。 有关详细信息 ,请参阅 WFP 错误代码
RPC_* 错误代码
0x80010001 — 0x80010122
无法与远程或本地防火墙引擎通信。

注解

调用方必须通过调用 FwpmFreeMemory0 来释放返回的对象。

调用方需要 FWPM_ACTRL_READ 筛选器引擎的访问权限。 有关详细信息,请参阅访问控制

FwpmEngineGetOption0 是 FwpmEngineGetOption 的特定实现。 有关详细信息 ,请参阅 WFP 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
标头 fwpmu.h
Library Fwpuclnt.lib
DLL Fwpuclnt.dll

另请参阅

FWPM_ENGINE_OPTION

FWP_VALUE0

FwpmEngineSetOption0