다음을 통해 공유


FwpmEngineOpen0 함수(fwpmu.h)

FwpmEngineOpen0 함수는 필터 엔진에 대한 세션을 엽니다.

구문

DWORD FwpmEngineOpen0(
  [in, optional] const wchar_t             *serverName,
  [in]           UINT32                    authnService,
  [in, optional] SEC_WINNT_AUTH_IDENTITY_W *authIdentity,
  [in, optional] const FWPM_SESSION0       *session,
  [out]          HANDLE                    *engineHandle
);

매개 변수

[in, optional] serverName

형식: const wchar_t*

이 값은 NULL이어야 합니다.

[in] authnService

형식: UINT32

사용할 인증 서비스를 지정합니다. 허용되는 서비스는 RPC_C_AUTHN_WINNT RPC_C_AUTHN_DEFAULT.

[in, optional] authIdentity

형식: SEC_WINNT_AUTH_IDENTITY_A*

필터 엔진에 액세스하기 위한 인증 및 권한 부여 자격 증명입니다. 이 포인터는 선택 사항이며 NULL일 수 있습니다. 이 포인터가 NULL이면 호출 스레드의 자격 증명이 사용됩니다.

[in, optional] session

형식: FWPM_SESSION0*

열려는 세션에 대한 세션별 매개 변수입니다. 이 포인터는 선택 사항이며 NULL일 수 있습니다.

[out] engineHandle

형식: HANDLE*

필터 엔진에 대한 열린 세션에 대한 핸들입니다.

반환 값

형식:DWORD

반환 코드/값 설명
ERROR_SUCCESS
0
세션이 성공적으로 시작되었습니다.
FWP_E_ALREADY_EXISTS
0x80320009
지정된 sessionKey 가 있는 세션이 이미 열려 있습니다.
FWP_E_* 오류 코드
0x80320001 — 0x80320039
WFP(Windows 필터링 플랫폼) 관련 오류입니다. 자세한 내용은 WFP 오류 코드를 참조하세요.
RPC_* 오류 코드
0x80010001 — 0x80010122
원격 또는 로컬 방화벽 엔진과 통신하지 못했습니다.

설명

사용자 애플리케이션은 필터 개체를 추가하거나 제거하기 전에 FwpmEngineOpen0 을 호출하여 필터 엔진에 대한 열린 세션에 대한 핸들을 가져와야 합니다. 필터 엔진에 대한 열려 있는 세션에 대한 핸들은 대부분의 다른 Windows 필터링 플랫폼 관리 함수에도 필요합니다.

프로그램이 종료되면 세션이 자동으로 닫힙니다. 세션을 명시적으로 닫려면 FwpmEngineClose0을 호출합니다.

세션인 경우. flagsFWPM_SESSION_FLAG_DYNAMIC 설정되며 세션 중에 추가된 모든 WFP 개체는 세션이 종료되면 자동으로 삭제됩니다. 세션이 동적이 아닌 경우 호출자는 세션 중에 추가된 모든 WFP 개체를 명시적으로 삭제해야 합니다.

호출자는 필터 엔진에 FWPM_ACTRL_OPEN 액세스해야 합니다. 자세한 내용은 Access Control 참조하세요.

FwpmEngineOpen0 은 가장되지 않은 모드에서만 사용하기 위한 것입니다.

FwpmEngineOpen0 은 FwpmEngineOpen의 특정 구현입니다. 자세한 내용은 WFP Version-Independent 이름 및 특정 버전의 Windows 대상 지정 을 참조하세요.

예제

다음 C++ 예제에서는 FwpmEngineOpen0 을 사용하여 필터 세션을 엽니다.

// Open a session to the filter engine
        
HANDLE    engineHandle = NULL;
DWORD    result = ERROR_SUCCESS; 

printf("Opening the filter engine.\n");
        
result = FwpmEngineOpen0(
    NULL, 
    RPC_C_AUTHN_WINNT, 
    NULL,
    NULL, 
    &engineHandle );

if (result != ERROR_SUCCESS)
    printf("FwpmEngineOpen0 failed. Return value: %d.\n", result); 
else
    printf("Filter engine opened successfully.\n");

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 fwpmu.h
라이브러리 Fwpuclnt.lib
DLL Fwpuclnt.dll

추가 정보

인증 서비스 상수

FWPM_SESSION0

FwpmEngineClose0

커널 모드 FwpmEngineOpen0

SEC_WINNT_AUTH_IDENTITY_A