次の方法で共有


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されます。

optionFWPM_ENGINE_COLLECT_NET_EVENTSの場合、は次のいずれかになります。

意味
0
ネットワーク イベントが収集されていません。
1
ネットワーク イベントが収集されています。
 

optionFWPM_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 接続イベントと通知がログに記録されています。
 

オプション(Windows 8 および Windows Server 2012 でのみ使用可能) FWPM_ENGINE_TXN_WATCHDOG_TIMEOUT_IN_MSEC場合、は 1 つの WFP トランザクションの最大期間を指定する時間 (ミリ秒単位) になります。 この期間より長い時間がかかるトランザクションでは、ウォッチドッグ イベントがトリガーされます。

FWPM_ENGINE_NAME_CACHE オプションは、内部使用のために予約されています。

戻り値

型: DWORD

リターン コード/値 Description
ERROR_SUCCESS
0
オプションが正常に取得されました。
FWP_E_* エラー コード
0x80320001 — 0x80320039
Windows フィルタリング プラットフォーム (WFP) 固有のエラー。 詳細については、「 WFP エラー コード 」を参照してください。
RPC_* エラー コード
0x80010001 — 0x80010122
リモートまたはローカルのファイアウォール エンジンとの通信に失敗しました。

注釈

呼び出し元は 、FwpmFreeMemory0 の呼び出しによって返されたオブジェクトを解放する必要があります。

呼び出し元は フィルター エンジンFWPM_ACTRL_READアクセスする必要があります。 詳細については、「Access Control」を参照してください。

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