다음을 통해 공유


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 트랜잭션의 최대 기간을 지정하는 시간(밀리초)입니다. 이 기간보다 오래 걸리는 트랜잭션은 watchdog 이벤트를 트리거합니다.

FWPM_ENGINE_NAME_CACHE 옵션은 내부용으로 예약되어 있습니다.

반환 값

형식:DWORD

반환 코드/값 설명
ERROR_SUCCESS
0
옵션이 성공적으로 검색되었습니다.
FWP_E_* 오류 코드
0x80320001 — 0x80320039
WFP(Windows 필터링 플랫폼) 관련 오류입니다. 자세한 내용은 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
라이브러리 Fwpuclnt.lib
DLL Fwpuclnt.dll

추가 정보

FWPM_ENGINE_OPTION

FWP_VALUE0

FwpmEngineSetOption0