Share via


FWPM_FILTER_CONDITION0 struttura (fwpmtypes.h)

La struttura FWPM_FILTER_CONDITION0 esprime una condizione di filtro che deve essere true per l'esecuzione dell'azione.

Sintassi

typedef struct FWPM_FILTER_CONDITION0_ {
  GUID                 fieldKey;
  FWP_MATCH_TYPE       matchType;
  FWP_CONDITION_VALUE0 conditionValue;
} FWPM_FILTER_CONDITION0;

Members

fieldKey

GUID del campo da testare. Le chiavi disponibili sono elencate in Filtro identificatori condizione.

matchType

Valore FWP_MATCH_TYPE che specifica il tipo di corrispondenza da eseguire.

conditionValue

Struttura FWP_CONDITION_VALUE0 che contiene il valore da associare al campo.

Commenti

I GUID dei campi sono univoci solo all'interno di un livello, pertanto sia il GUID del campo che il GUID del livello sono necessari per identificare in modo univoco un campo.

Tipo di dati di

FWP_MATCH_TYPE per regole di compatibilità dettagliate.

FWPM_FILTER_CONDITION0 è un'implementazione specifica di FWPM_FILTER_CONDITION. Per altre informazioni , vedere Nomi Version-Independent WFP e Versioni specifiche di Windows .

Esempio

Nell'esempio C++ seguente viene illustrato come inizializzare e aggiungere condizioni a un filtro.

#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;
}

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Intestazione fwpmtypes.h

Vedi anche

FWP_CONDITION_VALUE0

FWP_MATCH_TYPE

Strutture API della piattaforma di filtro di Windows