FWPM_FILTER_CONDITION0 구조체(fwpmtypes.h)
FWPM_FILTER_CONDITION0 구조체는 작업을 수행하려면 true여야 하는 필터 조건을 표현합니다.
구문
typedef struct FWPM_FILTER_CONDITION0_ {
GUID fieldKey;
FWP_MATCH_TYPE matchType;
FWP_CONDITION_VALUE0 conditionValue;
} FWPM_FILTER_CONDITION0;
멤버
fieldKey
테스트할 필드의 GUID입니다. 사용 가능한 키는 조건 식별자 필터링 아래에 나열됩니다.
matchType
수행할 일치 형식을 지정하는 FWP_MATCH_TYPE 값입니다.
conditionValue
필드와 일치하는 값을 포함하는 FWP_CONDITION_VALUE0 구조체입니다.
설명
필드 GUID는 레이어 내에서만 고유하므로 필드를 고유하게 식별하려면 필드 GUID와 계층 GUID가 모두 필요합니다.
의 데이터 형식
자세한 호환성 규칙에 대한 FWP_MATCH_TYPE.
FWPM_FILTER_CONDITION0 FWPM_FILTER_CONDITION 특정 구현입니다. 자세한 내용은 WFP Version-Independent 이름 및 특정 버전의 Windows 대상 지정 을 참조하세요.
예제
다음 C++ 예제에서는 필터를 초기화하고 조건을 추가하는 방법을 보여줍니다.
#include <windows.h>
#include <fwpmu.h>
#include <stdio.h>
#pragma comment(lib, "Fwpuclnt.lib")
// Some application to use for filter testing.
#define FILE0_PATH L"C:\\Program Files\\AppDirectory\\SomeApplication.exe"
void main()
{
FWP_BYTE_BLOB *fwpApplicationByteBlob;
FWPM_FILTER0 fwpFilter;
FWPM_FILTER_CONDITION0 fwpConditions[4];
int conCount = 0;
DWORD result = ERROR_SUCCESS;
fwpApplicationByteBlob = (FWP_BYTE_BLOB*) malloc(sizeof(FWP_BYTE_BLOB));
printf("Retrieving application identifier for filter testing.\n");
result = FwpmGetAppIdFromFileName0(FILE0_PATH, &fwpApplicationByteBlob);
if (result != ERROR_SUCCESS)
{
printf("FwpmGetAppIdFromFileName failed (%d).\n", result);
return;
}
// Application identifier filter condition.
fwpConditions[conCount].fieldKey = FWPM_CONDITION_ALE_APP_ID;
fwpConditions[conCount].matchType = FWP_MATCH_EQUAL;
fwpConditions[conCount].conditionValue.type = FWP_BYTE_BLOB_TYPE;
fwpConditions[conCount].conditionValue.byteBlob = fwpApplicationByteBlob;
++conCount;
// TCP protocol filter condition
fwpConditions[conCount].fieldKey = FWPM_CONDITION_IP_PROTOCOL;
fwpConditions[conCount].matchType = FWP_MATCH_EQUAL;
fwpConditions[conCount].conditionValue.type = FWP_UINT8;
fwpConditions[conCount].conditionValue.uint8 = IPPROTO_TCP;
++conCount;
// Add conditions and condition count to a filter.
memset(&fwpFilter, 0, sizeof(FWPM_FILTER0));
fwpFilter.numFilterConditions = conCount;
if (conCount > 0)
fwpFilter.filterCondition = fwpConditions;
// Finish initializing filter...
return;
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
머리글 | fwpmtypes.h |
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기