共用方式為


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
正在收集網路事件。
 

如果 option是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) 中使用,則值會是指定單一的一個 #D30F48C68F15340C6A528692C5BCC10E6 交易持續時間上限的毫秒數。 花費超過此持續時間的交易將會觸發監視程式事件。

FWPM_ENGINE_NAME_CACHE選項會保留供內部使用。

傳回值

類型: DWORD

傳回碼/值 Description
ERROR_SUCCESS
0
已成功擷取選項。
FWP_E_* 錯誤碼
0x80320001— 0x80320039
Windows 篩選平臺 () 特定錯誤。 如需詳細資訊,請參閱 其錯誤碼
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
標頭 fwpmu.h
程式庫 Fwpuclnt.lib
Dll Fwpuclnt.dll

另請參閱

FWPM_ENGINE_OPTION

FWP_VALUE0

FwpmEngineSetOption0