FwpmEngineGetOption0 函数 (fwpmu.h)
FwpmEngineGetOption0 函数检索筛选器引擎选项。
语法
DWORD FwpmEngineGetOption0(
[in] HANDLE engineHandle,
[in] FWPM_ENGINE_OPTION option,
[out] FWP_VALUE0 **value
);
参数
[in] engineHandle
类型: HANDLE
筛选器引擎的打开会话的句柄。 调用 FwpmEngineOpen0 以打开与筛选器引擎的会话。
[in] option
要检索的选项。
[out] value
类型: FWP_VALUE0**
选项值。 值参数中包含的数据类型将FWP_UINT32。
如果选项FWPM_ENGINE_COLLECT_NET_EVENTS,则值将为下列值之一。
值 | 含义 |
---|---|
|
未收集网络事件。 |
|
正在收集网络事件。 |
如果选项FWPM_ENGINE_NET_EVENT_MATCH_ANY_KEYWORDS,则值将是以下值的按位组合。
值 | 含义 |
---|---|
|
正在收集入站多播网络事件。 |
|
未收集入站广播网络事件。 |
如果选项FWPM_ENGINE_PACKET_QUEUING (仅在 Windows 8 和 Windows Server 2012) 中可用,则 值将为下列值之一。
值 | 含义 |
---|---|
|
未启用数据包队列。 |
|
已启用入站数据包队列。 |
|
已启用出站数据包队列。 |
如果选项FWPM_ENGINE_MONITOR_IPSEC_CONNECTIONS (仅在 Windows 8 和 Windows Server 2012) 中可用,则 值将为以下值之一。
值 | 含义 |
---|---|
|
IPsec 连接监视功能已禁用。 未记录任何 IPsec 连接事件或通知。 |
|
IPsec 连接监视功能已启用。 正在记录新的 IPsec 连接事件和通知。 |
如果选项FWPM_ENGINE_TXN_WATCHDOG_TIMEOUT_IN_MSEC (仅在Windows 8和Windows Server 2012) 中可用,则值将是指定单个 WFP 事务的最大持续时间的时间(以毫秒为单位)。 超过此持续时间的事务将触发监视器事件。
FWPM_ENGINE_NAME_CACHE选项保留供内部使用。
返回值
类型:DWORD
返回代码/值 | 说明 |
---|---|
|
已成功检索选项。 |
|
Windows 筛选平台 (WFP) 特定错误。 有关详细信息 ,请参阅 WFP 错误代码 。 |
|
无法与远程或本地防火墙引擎通信。 |
注解
调用方必须通过调用 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 |