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,則值會是下列其中一項。
值 | 意義 |
---|---|
|
不會收集網路事件。 |
|
正在收集網路事件。 |
如果 option是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) 中使用,則值會是指定單一的一個 #D30F48C68F15340C6A528692C5BCC10E6 交易持續時間上限的毫秒數。 花費超過此持續時間的交易將會觸發監視程式事件。
FWPM_ENGINE_NAME_CACHE選項會保留供內部使用。
傳回值
類型: DWORD
傳回碼/值 | Description |
---|---|
|
已成功擷取選項。 |
|
Windows 篩選平臺 () 特定錯誤。 如需詳細資訊,請參閱 其錯誤碼 。 |
|
無法與遠端或本機防火牆引擎通訊。 |
備註
呼叫端必須透過 呼叫 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 |
標頭 | fwpmu.h |
程式庫 | Fwpuclnt.lib |
Dll | Fwpuclnt.dll |