public FWPM_FILTER_CONDITION0 CreateConditionProtocol(IPPROTO protocol)
 {
     var condition = new FWPM_FILTER_CONDITION0();
     condition.matchType = FWP_MATCH.EQUAL;
     condition.fieldKey = ConditionKeys.FWPM_CONDITION_IP_PROTOCOL;
     condition.conditionValue.type = FWP_DATA_TYPE.UINT8;
     condition.conditionValue.value.uint8 = (byte)protocol;
     return condition;
 }
 public FWPM_FILTER_CONDITION0 CreateConditionPort(bool remote, ushort port)
 {
     var condition = new FWPM_FILTER_CONDITION0();
     condition.matchType = FWP_MATCH.EQUAL;
     condition.fieldKey = remote ? ConditionKeys.FWPM_CONDITION_IP_REMOTE_PORT : ConditionKeys.FWPM_CONDITION_IP_LOCAL_PORT;
     condition.conditionValue.type = FWP_DATA_TYPE.UINT16;
     condition.conditionValue.value.uint16 = (ushort)port;
     return condition;
 }