PSTR KrnlHlprFwpValueGetStringForFwpsIncomingValue()

in network/trans/WFPSampler/syslib/HelperFunctions_FwpObjects.cpp [1695:3212]


PSTR KrnlHlprFwpValueGetStringForFwpsIncomingValue(_In_ UINT32 layerID,
                                                   _In_ UINT32 fieldID,
                                                   _Out_opt_ BOOLEAN* pFormat) /* 0 */
{
   PSTR pString = 0;

   if(pFormat)
      *pFormat = FALSE;

   switch(layerID)
   {
      case FWPS_LAYER_INBOUND_IPPACKET_V4:
      case FWPS_LAYER_INBOUND_IPPACKET_V4_DISCARD:
      case FWPS_LAYER_INBOUND_IPPACKET_V6:
      case FWPS_LAYER_INBOUND_IPPACKET_V6_DISCARD:
      {
         if(fieldID == FWPS_FIELD_INBOUND_IPPACKET_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_INBOUND_IPPACKET_V4_IP_REMOTE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_REMOTE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_INBOUND_IPPACKET_V4_IP_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_INBOUND_IPPACKET_V4_IP_LOCAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_LOCAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_INBOUND_IPPACKET_V4_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_INBOUND_IPPACKET_V4_SUB_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_SUB_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_INBOUND_IPPACKET_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_INBOUND_IPPACKET_V4_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_INBOUND_IPPACKET_V4_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_TUNNEL_TYPE";

         break;
      }
      case FWPS_LAYER_OUTBOUND_IPPACKET_V4:
      case FWPS_LAYER_OUTBOUND_IPPACKET_V4_DISCARD:
      case FWPS_LAYER_OUTBOUND_IPPACKET_V6:
      case FWPS_LAYER_OUTBOUND_IPPACKET_V6_DISCARD:
      {
         if(fieldID == FWPS_FIELD_OUTBOUND_IPPACKET_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_OUTBOUND_IPPACKET_V4_IP_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_IPPACKET_V4_IP_REMOTE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_REMOTE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_OUTBOUND_IPPACKET_V4_IP_LOCAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_LOCAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_IPPACKET_V4_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_OUTBOUND_IPPACKET_V4_SUB_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_SUB_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_OUTBOUND_IPPACKET_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_OUTBOUND_IPPACKET_V4_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_IPPACKET_V4_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_TUNNEL_TYPE";

         break;
      }
      case FWPS_LAYER_IPFORWARD_V4:
      case FWPS_LAYER_IPFORWARD_V4_DISCARD:
      case FWPS_LAYER_IPFORWARD_V6:
      case FWPS_LAYER_IPFORWARD_V6_DISCARD:
      {
         if(fieldID == FWPS_FIELD_IPFORWARD_V4_IP_SOURCE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_SOURCE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_IPFORWARD_V4_IP_DESTINATION_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_DESTINATION_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_IPFORWARD_V4_IP_DESTINATION_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_DESTINATION_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_IPFORWARD_V4_IP_LOCAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_LOCAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_IPFORWARD_V4_IP_FORWARD_INTERFACE)
            pString = "FWPM_CONDITION_IP_FORWARD_INTERFACE";
         else if(fieldID == FWPS_FIELD_IPFORWARD_V4_SOURCE_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_SOURCE_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_IPFORWARD_V4_SOURCE_SUB_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_SOURCE_SUB_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_IPFORWARD_V4_DESTINATION_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_DESTINATION_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_IPFORWARD_V4_DESTINATION_SUB_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_DESTINATION_SUB_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_IPFORWARD_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }

#if(NTDDI_VERSION >= NTDDI_WIN7)

         else if(fieldID == FWPS_FIELD_IPFORWARD_V4_IP_PHYSICAL_ARRIVAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_PHYSICAL_ARRIVAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_IPFORWARD_V4_ARRIVAL_INTERFACE_PROFILE_ID)
            pString = "FWPM_CONDITION_ARRIVAL_INTERFACE_PROFILE_ID";
         else if(fieldID == FWPS_FIELD_IPFORWARD_V4_IP_PHYSICAL_NEXTHOP_INTERFACE)
            pString = "FWPM_CONDITION_IP_PHYSICAL_NEXTHOP_INTERFACE";
         else if(fieldID == FWPS_FIELD_IPFORWARD_V4_NEXTHOP_INTERFACE_PROFILE_ID)
            pString = "FWPM_CONDITION_NEXTHOP_INTERFACE_PROFILE_ID";

#endif /// (NTDDI_VERSION >= NTDDI_WIN7)

         break;
      }
      case FWPS_LAYER_INBOUND_TRANSPORT_V4:
      case FWPS_LAYER_INBOUND_TRANSPORT_V4_DISCARD:
      case FWPS_LAYER_INBOUND_TRANSPORT_V6:
      case FWPS_LAYER_INBOUND_TRANSPORT_V6_DISCARD:
      {
         if(fieldID == FWPS_FIELD_INBOUND_TRANSPORT_V4_IP_PROTOCOL)
            pString = "FWPM_CONDITION_IP_PROTOCOL";
         else if(fieldID == FWPS_FIELD_INBOUND_TRANSPORT_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_INBOUND_TRANSPORT_V4_IP_REMOTE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_REMOTE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_INBOUND_TRANSPORT_V4_IP_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_INBOUND_TRANSPORT_V4_IP_LOCAL_PORT)
            pString = "FWPM_CONDITION_IP_LOCAL_PORT";
         else if(fieldID == FWPS_FIELD_INBOUND_TRANSPORT_V4_IP_REMOTE_PORT)
            pString = "FWPM_CONDITION_IP_REMOTE_PORT";
         else if(fieldID == FWPS_FIELD_INBOUND_TRANSPORT_V4_IP_LOCAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_LOCAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_INBOUND_TRANSPORT_V4_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_INBOUND_TRANSPORT_V4_SUB_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_SUB_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_INBOUND_TRANSPORT_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_INBOUND_TRANSPORT_V4_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_INBOUND_TRANSPORT_V4_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_TUNNEL_TYPE";

#if(NTDDI_VERSION >= NTDDI_WIN7)

         else if(fieldID == FWPS_FIELD_INBOUND_TRANSPORT_V4_PROFILE_ID)
            pString = "FWPM_CONDITION_PROFILE_ID";

#if(NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
         
         else if(fieldID == FWPS_FIELD_INBOUND_TRANSPORT_V4_IPSEC_SECURITY_REALM_ID)
            pString = "FWPM_CONDITION_IPSEC_SECURITY_REALM_ID";
         
#endif /// (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)

#endif /// (NTDDI_VERSION >= NTDDI_WIN7)

         break;
      }
      case FWPS_LAYER_OUTBOUND_TRANSPORT_V4:
      case FWPS_LAYER_OUTBOUND_TRANSPORT_V4_DISCARD:
      case FWPS_LAYER_OUTBOUND_TRANSPORT_V6:
      case FWPS_LAYER_OUTBOUND_TRANSPORT_V6_DISCARD:
      {
         if(fieldID == FWPS_FIELD_OUTBOUND_TRANSPORT_V4_IP_PROTOCOL)
            pString = "FWPM_CONDITION_IP_PROTOCOL";
         else if(fieldID == FWPS_FIELD_OUTBOUND_TRANSPORT_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_OUTBOUND_TRANSPORT_V4_IP_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_TRANSPORT_V4_IP_REMOTE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_REMOTE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_OUTBOUND_TRANSPORT_V4_IP_LOCAL_PORT)
            pString = "FWPM_CONDITION_IP_LOCAL_PORT";
         else if(fieldID == FWPS_FIELD_OUTBOUND_TRANSPORT_V4_IP_REMOTE_PORT)
            pString = "FWPM_CONDITION_IP_REMOTE_PORT";
         else if(fieldID == FWPS_FIELD_OUTBOUND_TRANSPORT_V4_IP_LOCAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_LOCAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_TRANSPORT_V4_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_OUTBOUND_TRANSPORT_V4_SUB_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_SUB_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_OUTBOUND_TRANSPORT_V4_IP_DESTINATION_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_DESTINATION_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_TRANSPORT_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_OUTBOUND_TRANSPORT_V4_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_TRANSPORT_V4_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_TUNNEL_TYPE";

#if(NTDDI_VERSION >= NTDDI_WIN7)

         else if(fieldID == FWPS_FIELD_OUTBOUND_TRANSPORT_V4_PROFILE_ID)
            pString = "FWPM_CONDITION_PROFILE_ID";

#if(NTDDI_VERSION >= NTDDI_WINTHRESHOLD)

         else if(fieldID == FWPS_FIELD_OUTBOUND_TRANSPORT_V4_IPSEC_SECURITY_REALM_ID)
            pString = "FWPM_CONDITION_IPSEC_SECURITY_REALM_ID";

#endif /// (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
#endif /// (NTDDI_VERSION >= NTDDI_WIN7)

         break;
      }
      case FWPS_LAYER_STREAM_V4:
      case FWPS_LAYER_STREAM_V4_DISCARD:
      case FWPS_LAYER_STREAM_V6:
      case FWPS_LAYER_STREAM_V6_DISCARD:
      {
         if(fieldID == FWPS_FIELD_STREAM_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_STREAM_V4_IP_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_STREAM_V4_IP_REMOTE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_REMOTE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_STREAM_V4_IP_LOCAL_PORT)
            pString = "FWPM_CONDITION_IP_LOCAL_PORT";
         else if(fieldID == FWPS_FIELD_STREAM_V4_IP_REMOTE_PORT)
            pString = "FWPM_CONDITION_IP_REMOTE_PORT";
         else if(fieldID == FWPS_FIELD_STREAM_V4_DIRECTION)
            pString = "FWPM_CONDITION_DIRECTION";

#if(NTDDI_VERSION >= NTDDI_VISTASP1)

         else if(fieldID == FWPS_FIELD_STREAM_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }

#endif /// (NTDDI_VERSION >= NTDDI_VISTASP1)

         break;
      }
      case FWPS_LAYER_DATAGRAM_DATA_V4:
      case FWPS_LAYER_DATAGRAM_DATA_V4_DISCARD:
      case FWPS_LAYER_DATAGRAM_DATA_V6:
      case FWPS_LAYER_DATAGRAM_DATA_V6_DISCARD:
      {
         if(fieldID == FWPS_FIELD_DATAGRAM_DATA_V4_IP_PROTOCOL)
            pString = "FWPM_CONDITION_IP_PROTOCOL";
         else if(fieldID == FWPS_FIELD_DATAGRAM_DATA_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_DATAGRAM_DATA_V4_IP_REMOTE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_REMOTE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_DATAGRAM_DATA_V4_IP_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_DATAGRAM_DATA_V4_IP_LOCAL_PORT)
            pString = "FWPM_CONDITION_IP_LOCAL_PORT";
         else if(fieldID == FWPS_FIELD_DATAGRAM_DATA_V4_IP_REMOTE_PORT)
            pString = "FWPM_CONDITION_IP_REMOTE_PORT";
         else if(fieldID == FWPS_FIELD_DATAGRAM_DATA_V4_IP_LOCAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_LOCAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_DATAGRAM_DATA_V4_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_DATAGRAM_DATA_V4_SUB_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_SUB_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_DATAGRAM_DATA_V4_DIRECTION)
            pString = "FWPM_CONDITION_DIRECTION";
         else if(fieldID == FWPS_FIELD_DATAGRAM_DATA_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_DATAGRAM_DATA_V4_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_DATAGRAM_DATA_V4_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_TUNNEL_TYPE";

         break;
      }
      case FWPS_LAYER_INBOUND_ICMP_ERROR_V4:
      case FWPS_LAYER_INBOUND_ICMP_ERROR_V4_DISCARD:
      case FWPS_LAYER_INBOUND_ICMP_ERROR_V6:
      case FWPS_LAYER_INBOUND_ICMP_ERROR_V6_DISCARD:
      {
         if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_EMBEDDED_PROTOCOL)
            pString = "FWPM_CONDITION_EMBEDDED_PROTOCOL";
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_IP_REMOTE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_REMOTE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_EMBEDDED_REMOTE_ADDRESS)
            pString = "FWPM_CONDITION_EMBEDDED_REMOTE_ADDRESS";
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_EMBEDDED_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_EMBEDDED_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_EMBEDDED_LOCAL_PORT)
            pString = "FWPM_CONDITION_EMBEDDED_LOCAL_PORT";
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_EMBEDDED_REMOTE_PORT)
            pString = "FWPM_CONDITION_EMBEDDED_REMOTE_PORT";
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_IP_LOCAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_LOCAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_ICMP_TYPE)
            pString = "FWPM_CONDITION_ICMP_TYPE";
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_ICMP_CODE)
            pString = "FWPM_CONDITION_ICMP_CODE";
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_SUB_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_SUB_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_TUNNEL_TYPE";

#if(NTDDI_VERSION >= NTDDI_VISTASP1)

         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_IP_ARRIVAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_ARRIVAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_ARRIVAL_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_ARRIVAL_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_ARRIVAL_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_ARRIVAL_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_ARRIVAL_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_ARRIVAL_TUNNEL_TYPE";
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }

#if(NTDDI_VERSION >= NTDDI_WIN7)

         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_ARRIVAL_INTERFACE_PROFILE_ID)
            pString = "FWPM_CONDITION_ARRIVAL_INTERFACE_PROFILE_ID";
         else if(fieldID == FWPS_FIELD_INBOUND_ICMP_ERROR_V4_INTERFACE_QUARANTINE_EPOCH)
            pString = "FWPM_CONDITION_INTERFACE_QUARANTINE_EPOCH";

#endif /// (NTDDI_VERSION >= NTDDI_WIN7)
#endif /// (NTDDI_VERSION >= NTDDI_VISTASP1)

         break;
      }
      case FWPS_LAYER_OUTBOUND_ICMP_ERROR_V4:
      case FWPS_LAYER_OUTBOUND_ICMP_ERROR_V4_DISCARD:
      case FWPS_LAYER_OUTBOUND_ICMP_ERROR_V6:
      case FWPS_LAYER_OUTBOUND_ICMP_ERROR_V6_DISCARD:
      {
         if(fieldID == FWPS_FIELD_OUTBOUND_ICMP_ERROR_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_OUTBOUND_ICMP_ERROR_V4_IP_REMOTE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_REMOTE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_OUTBOUND_ICMP_ERROR_V4_IP_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_ICMP_ERROR_V4_IP_LOCAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_LOCAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_ICMP_ERROR_V4_ICMP_TYPE)
            pString = "FWPM_CONDITION_ICMP_TYPE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_ICMP_ERROR_V4_ICMP_CODE)
            pString = "FWPM_CONDITION_ICMP_CODE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_ICMP_ERROR_V4_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_OUTBOUND_ICMP_ERROR_V4_SUB_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_SUB_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_OUTBOUND_ICMP_ERROR_V4_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_ICMP_ERROR_V4_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_TUNNEL_TYPE";

#if(NTDDI_VERSION >= NTDDI_VISTASP1)

         else if(fieldID == FWPS_FIELD_OUTBOUND_ICMP_ERROR_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }

#if(NTDDI_VERSION >= NTDDI_WIN7)

         else if(fieldID == FWPS_FIELD_OUTBOUND_ICMP_ERROR_V4_NEXTHOP_INTERFACE_PROFILE_ID)
            pString = "FWPM_CONDITION_NEXTHOP_INTERFACE_PROFILE_ID";
         else if(fieldID == FWPS_FIELD_OUTBOUND_ICMP_ERROR_V4_INTERFACE_QUARANTINE_EPOCH)
            pString = "FWPM_CONDITION_INTERFACE_QUARANTINE_EPOCH";

#endif /// (NTDDI_VERSION >= NTDDI_WIN7)
#endif /// (NTDDI_VERSION >= NTDDI_VISTASP1)

         break;
      }
      case FWPS_LAYER_ALE_RESOURCE_ASSIGNMENT_V4:
      case FWPS_LAYER_ALE_RESOURCE_ASSIGNMENT_V4_DISCARD:
      case FWPS_LAYER_ALE_RESOURCE_ASSIGNMENT_V6:
      case FWPS_LAYER_ALE_RESOURCE_ASSIGNMENT_V6_DISCARD:
      {
         if(fieldID == FWPS_FIELD_ALE_RESOURCE_ASSIGNMENT_V4_ALE_APP_ID)
         {
            pString = "FWPM_CONDITION_ALE_APP_ID";

            if(pFormat)
               *pFormat = UNICODE_STRING_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_ASSIGNMENT_V4_ALE_USER_ID)
            pString = "FWPM_CONDITION_ALE_USER_ID";
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_ASSIGNMENT_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_ASSIGNMENT_V4_IP_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_ASSIGNMENT_V4_IP_LOCAL_PORT)
            pString = "FWPM_CONDITION_IP_LOCAL_PORT";
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_ASSIGNMENT_V4_IP_PROTOCOL)
            pString = "FWPM_CONDITION_IP_PROTOCOL";
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_ASSIGNMENT_V4_ALE_PROMISCUOUS_MODE)
            pString = "FWPM_CONDITION_ALE_PROMISCUOUS_MODE";
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_ASSIGNMENT_V4_IP_LOCAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_LOCAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_ASSIGNMENT_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_ASSIGNMENT_V4_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_ASSIGNMENT_V4_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_TUNNEL_TYPE";

#if(NTDDI_VERSION >= NTDDI_WIN7)

         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_ASSIGNMENT_V4_LOCAL_INTERFACE_PROFILE_ID)
            pString = "FWPM_CONDITION_LOCAL_INTERFACE_PROFILE_ID";
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_ASSIGNMENT_V4_SIO_FIREWALL_SOCKET_PROPERTY)
            pString = "FWPM_CONDITION_SIO_FIREWALL_SOCKET_PROPERTY";

#if(NTDDI_VERSION >= NTDDI_WIN8)

         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_ASSIGNMENT_V4_ALE_PACKAGE_ID)
            pString = "FWPM_CONDITION_ALE_PACKAGE_ID";

#if(NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
         
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_ASSIGNMENT_V4_ALE_SECURITY_ATTRIBUTE_FQBN_VALUE)
            pString = "FWPM_CONDITION_ALE_SECURITY_ATTRIBUTE_FQBN_VALUE";
         
#endif /// (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
#endif /// (NTDDI_VERSION >= NTDDI_WIN8)
#endif /// (NTDDI_VERSION >= NTDDI_WIN7)

         break;
      }
      case FWPS_LAYER_ALE_AUTH_LISTEN_V4:
      case FWPS_LAYER_ALE_AUTH_LISTEN_V4_DISCARD:
      case FWPS_LAYER_ALE_AUTH_LISTEN_V6:
      case FWPS_LAYER_ALE_AUTH_LISTEN_V6_DISCARD:
      {
         if(fieldID == FWPS_FIELD_ALE_AUTH_LISTEN_V4_ALE_APP_ID)
         {
            pString = "FWPM_CONDITION_ALE_APP_ID";

            if(pFormat)
               *pFormat = UNICODE_STRING_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_AUTH_LISTEN_V4_ALE_USER_ID)
            pString = "FWPM_CONDITION_ALE_USER_ID";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_LISTEN_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_AUTH_LISTEN_V4_IP_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_LISTEN_V4_IP_LOCAL_PORT)
            pString = "FWPM_CONDITION_IP_LOCAL_PORT";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_LISTEN_V4_IP_LOCAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_LOCAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_LISTEN_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_AUTH_LISTEN_V4_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_LISTEN_V4_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_TUNNEL_TYPE";

#if(NTDDI_VERSION >= NTDDI_WIN7)

         else if(fieldID == FWPS_FIELD_ALE_AUTH_LISTEN_V4_LOCAL_INTERFACE_PROFILE_ID)
            pString = "FWPM_CONDITION_LOCAL_INTERFACE_PROFILE_ID";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_LISTEN_V4_SIO_FIREWALL_SOCKET_PROPERTY)
            pString = "FWPM_CONDITION_SIO_FIREWALL_SOCKET_PROPERTY";

#if(NTDDI_VERSION >= NTDDI_WIN8)

         else if(fieldID == FWPS_FIELD_ALE_AUTH_LISTEN_V4_ALE_PACKAGE_ID)
            pString = "FWPM_CONDITION_ALE_PACKAGE_ID";

#if(NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
         
         else if(fieldID == FWPS_FIELD_ALE_AUTH_LISTEN_V4_ALE_SECURITY_ATTRIBUTE_FQBN_VALUE)
            pString = "FWPM_CONDITION_ALE_SECURITY_ATTRIBUTE_FQBN_VALUE";
         
#endif /// (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
#endif /// (NTDDI_VERSION >= NTDDI_WIN8)
#endif /// (NTDDI_VERSION >= NTDDI_WIN7)

         break;
      }
      case FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V4:
      case FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V4_DISCARD:
      case FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V6:
      case FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V6_DISCARD:
      {
         if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_ALE_APP_ID)
         {
            pString = "FWPM_CONDITION_ALE_APP_ID";

            if(pFormat)
               *pFormat = UNICODE_STRING_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_ALE_USER_ID)
            pString = "FWPM_CONDITION_ALE_USER_ID";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_IP_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_IP_LOCAL_PORT)
            pString = "FWPM_CONDITION_IP_LOCAL_PORT";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_IP_PROTOCOL)
            pString = "FWPM_CONDITION_IP_PROTOCOL";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_IP_REMOTE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_REMOTE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_IP_REMOTE_PORT)
            pString = "FWPM_CONDITION_IP_REMOTE_PORT";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_ALE_REMOTE_USER_ID)
            pString = "FWPM_CONDITION_ALE_REMOTE_USER_ID";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_ALE_REMOTE_MACHINE_ID)
            pString = "FWPM_CONDITION_ALE_REMOTE_MACHINE_ID";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_IP_LOCAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_LOCAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_SIO_FIREWALL_SYSTEM_PORT)
            pString = "FWPM_CONDITION_SIO_FIREWALL_SYSTEM_PORT";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_NAP_CONTEXT)
            pString = "FWPM_CONDITION_NAP_CONTEXT";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_TUNNEL_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_SUB_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_SUB_INTERFACE_INDEX";

#if(NTDDI_VERSION >= NTDDI_VISTASP1)

         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_IP_ARRIVAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_ARRIVAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_ARRIVAL_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_ARRIVAL_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_ARRIVAL_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_ARRIVAL_TUNNEL_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_ARRIVAL_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_ARRIVAL_INTERFACE_INDEX";

#if(NTDDI_VERSION >= NTDDI_WIN7)

         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_NEXTHOP_SUB_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_NEXTHOP_SUB_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_IP_NEXTHOP_INTERFACE)
            pString = "FWPM_CONDITION_IP_NEXTHOP_INTERFACE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_NEXTHOP_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_NEXTHOP_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_NEXTHOP_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_NEXTHOP_TUNNEL_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_NEXTHOP_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_NEXTHOP_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_ORIGINAL_PROFILE_ID)
            pString = "FWPM_CONDITION_ORIGINAL_PROFILE_ID";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_CURRENT_PROFILE_ID)
            pString = "FWPM_CONDITION_CURRENT_PROFILE_ID";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_REAUTHORIZE_REASON)
            pString = "FWPM_CONDITION_REAUTHORIZE_REASON";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_ORIGINAL_ICMP_TYPE)
            pString = "FWPM_CONDITION_ORIGINAL_ICMP_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_INTERFACE_QUARANTINE_EPOCH)
            pString = "FWPM_CONDITION_INTERFACE_QUARANTINE_EPOCH";

#if(NTDDI_VERSION >= NTDDI_WIN8)

         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_ALE_PACKAGE_ID)
            pString = "FWPM_CONDITION_ALE_PACKAGE_ID";

#if(NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
         
         else if(fieldID == FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_ALE_SECURITY_ATTRIBUTE_FQBN_VALUE)
            pString = "FWPM_CONDITION_ALE_SECURITY_ATTRIBUTE_FQBN_VALUE";
         
#endif /// (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
#endif /// (NTDDI_VERSION >= NTDDI_WIN8)
#endif /// (NTDDI_VERSION >= NTDDI_WIN7)
#endif /// (NTDDI_VERSION >= NTDDI_VISTASP1)

         break;
      }
      case FWPS_LAYER_ALE_AUTH_CONNECT_V4:
      case FWPS_LAYER_ALE_AUTH_CONNECT_V4_DISCARD:
      case FWPS_LAYER_ALE_AUTH_CONNECT_V6:
      case FWPS_LAYER_ALE_AUTH_CONNECT_V6_DISCARD:
      {
         if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_ALE_APP_ID)
         {
            pString = "FWPM_CONDITION_ALE_APP_ID";

            if(pFormat)
               *pFormat = UNICODE_STRING_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_ALE_USER_ID)
            pString = "FWPM_CONDITION_ALE_USER_ID";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_IP_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_IP_LOCAL_PORT)
            pString = "FWPM_CONDITION_IP_LOCAL_PORT";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_IP_PROTOCOL)
            pString = "FWPM_CONDITION_IP_PROTOCOL";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_IP_REMOTE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_REMOTE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_IP_REMOTE_PORT)
            pString = "FWPM_CONDITION_IP_REMOTE_PORT";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_ALE_REMOTE_USER_ID)
            pString = "FWPM_CONDITION_ALE_REMOTE_USER_ID";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_ALE_REMOTE_MACHINE_ID)
            pString = "FWPM_CONDITION_ALE_REMOTE_MACHINE_ID";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_IP_DESTINATION_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_DESTINATION_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_IP_LOCAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_LOCAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_TUNNEL_TYPE";

#if(NTDDI_VERSION >= NTDDI_VISTASP1)

         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_SUB_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_SUB_INTERFACE_INDEX";

#if(NTDDI_VERSION >= NTDDI_WIN7)

         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_IP_ARRIVAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_ARRIVAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_ARRIVAL_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_ARRIVAL_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_ARRIVAL_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_ARRIVAL_TUNNEL_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_ARRIVAL_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_ARRIVAL_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_NEXTHOP_SUB_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_NEXTHOP_SUB_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_IP_NEXTHOP_INTERFACE)
            pString = "FWPM_CONDITION_IP_NEXTHOP_INTERFACE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_NEXTHOP_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_NEXTHOP_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_NEXTHOP_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_NEXTHOP_TUNNEL_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_NEXTHOP_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_NEXTHOP_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_ORIGINAL_PROFILE_ID)
            pString = "FWPM_CONDITION_ORIGINAL_PROFILE_ID";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_CURRENT_PROFILE_ID)
            pString = "FWPM_CONDITION_CURRENT_PROFILE_ID";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_REAUTHORIZE_REASON)
            pString = "FWPM_CONDITION_REAUTHORIZE_REASON";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_PEER_NAME)
            pString = "FWPM_CONDITION_PEER_NAME";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_ORIGINAL_ICMP_TYPE)
            pString = "FWPM_CONDITION_ORIGINAL_ICMP_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_INTERFACE_QUARANTINE_EPOCH)
            pString = "FWPM_CONDITION_INTERFACE_QUARANTINE_EPOCH";

#if(NTDDI_VERSION >= NTDDI_WIN8)

         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_ALE_ORIGINAL_APP_ID)
         {
            pString = "FWPM_CONDITION_ALE_ORIGINAL_APP_ID";

            if(pFormat)
               *pFormat = UNICODE_STRING_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_ALE_PACKAGE_ID)
            pString = "FWPM_CONDITION_ALE_PACKAGE_ID";

#if(NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
         
         else if(fieldID == FWPS_FIELD_ALE_AUTH_CONNECT_V4_ALE_SECURITY_ATTRIBUTE_FQBN_VALUE)
            pString = "FWPM_CONDITION_ALE_SECURITY_ATTRIBUTE_FQBN_VALUE";
         
#endif /// (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
#endif /// (NTDDI_VERSION >= NTDDI_WIN8)
#endif /// (NTDDI_VERSION >= NTDDI_WIN7)
#endif /// (NTDDI_VERSION >= NTDDI_VISTASP1)

         break;
      }
      case FWPS_LAYER_ALE_FLOW_ESTABLISHED_V4:
      case FWPS_LAYER_ALE_FLOW_ESTABLISHED_V4_DISCARD:
      case FWPS_LAYER_ALE_FLOW_ESTABLISHED_V6:
      case FWPS_LAYER_ALE_FLOW_ESTABLISHED_V6_DISCARD:
      {
         if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_ALE_APP_ID)
         {
            pString = "FWPM_CONDITION_ALE_APP_ID";

            if(pFormat)
               *pFormat = UNICODE_STRING_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_ALE_USER_ID)
            pString = "FWPM_CONDITION_ALE_USER_ID";
         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_IP_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_IP_LOCAL_PORT)
            pString = "FWPM_CONDITION_IP_LOCAL_PORT";
         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_IP_PROTOCOL)
            pString = "FWPM_CONDITION_IP_PROTOCOL";
         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_IP_REMOTE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_REMOTE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_IP_REMOTE_PORT)
            pString = "FWPM_CONDITION_IP_REMOTE_PORT";
         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_ALE_REMOTE_USER_ID)
            pString = "FWPM_CONDITION_ALE_REMOTE_USER_ID";
         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_ALE_REMOTE_MACHINE_ID)
            pString = "FWPM_CONDITION_ALE_REMOTE_MACHINE_ID";
         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_IP_DESTINATION_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_DESTINATION_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_IP_LOCAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_LOCAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_DIRECTION)
            pString = "FWPM_CONDITION_DIRECTION";
         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_TUNNEL_TYPE";

#if(NTDDI_VERSION >= NTDDI_VISTASP1)

         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }

#if(NTDDI_VERSION >= NTDDI_WIN8)

         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_ALE_ORIGINAL_APP_ID)
         {
            pString = "FWPM_CONDITION_ALE_ORIGINAL_APP_ID";

            if(pFormat)
               *pFormat = UNICODE_STRING_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_ALE_PACKAGE_ID)
            pString = "FWPM_CONDITION_ALE_PACKAGE_ID";

#if(NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
         
         else if(fieldID == FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_ALE_SECURITY_ATTRIBUTE_FQBN_VALUE)
            pString = "FWPM_CONDITION_ALE_SECURITY_ATTRIBUTE_FQBN_VALUE";
         
#endif /// (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
#endif /// (NTDDI_VERSION >= NTDDI_WIN8)
#endif /// (NTDDI_VERSION >= NTDDI_VISTASP1)

         break;
      }

#if(NTDDI_VERSION >= NTDDI_WIN7)

      case FWPS_LAYER_NAME_RESOLUTION_CACHE_V4:
      case FWPS_LAYER_NAME_RESOLUTION_CACHE_V6:
      {
         if(fieldID == FWPS_FIELD_NAME_RESOLUTION_CACHE_V4_ALE_USER_ID)
            pString = "FWPM_CONDITION_ALE_USER_ID";
         else if(fieldID == FWPS_FIELD_NAME_RESOLUTION_CACHE_V4_ALE_APP_ID)
         {
            pString = "FWPM_CONDITION_ALE_APP_ID";

            if(pFormat)
               *pFormat = UNICODE_STRING_VALUE;
         }
         else if(fieldID == FWPS_FIELD_NAME_RESOLUTION_CACHE_V4_IP_REMOTE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_REMOTE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_NAME_RESOLUTION_CACHE_V4_PEER_NAME)
            pString = "FWPM_CONDITION_PEER_NAME";

         break;
      }
      case FWPS_LAYER_ALE_RESOURCE_RELEASE_V4:
      case FWPS_LAYER_ALE_RESOURCE_RELEASE_V6:
      {
         if(fieldID == FWPS_FIELD_ALE_RESOURCE_RELEASE_V4_ALE_APP_ID)
         {
            pString = "FWPM_CONDITION_ALE_APP_ID";

            if(pFormat)
               *pFormat = UNICODE_STRING_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_RELEASE_V4_ALE_USER_ID)
            pString = "FWPM_CONDITION_ALE_USER_ID";
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_RELEASE_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_RELEASE_V4_IP_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_RELEASE_V4_IP_LOCAL_PORT)
            pString = "FWPM_CONDITION_IP_LOCAL_PORT";
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_RELEASE_V4_IP_PROTOCOL)
            pString = "FWPM_CONDITION_IP_PROTOCOL";
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_RELEASE_V4_IP_LOCAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_LOCAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_RELEASE_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }

#if(NTDDI_VERSION >= NTDDI_WIN8)

         else if(fieldID == FWPS_FIELD_ALE_RESOURCE_RELEASE_V4_ALE_PACKAGE_ID)
            pString = "FWPM_CONDITION_ALE_PACKAGE_ID";

#endif /// (NTDDI_VERSION >= NTDDI_WIN8)

         break;
      }
      case FWPS_LAYER_ALE_ENDPOINT_CLOSURE_V4:
      case FWPS_LAYER_ALE_ENDPOINT_CLOSURE_V6:
      {
         if(fieldID == FWPS_FIELD_ALE_ENDPOINT_CLOSURE_V4_ALE_APP_ID)
         {
            pString = "FWPM_CONDITION_ALE_APP_ID";

            if(pFormat)
               *pFormat = UNICODE_STRING_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_ENDPOINT_CLOSURE_V4_ALE_USER_ID)
            pString = "FWPM_CONDITION_ALE_USER_ID";
         else if(fieldID == FWPS_FIELD_ALE_ENDPOINT_CLOSURE_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_ENDPOINT_CLOSURE_V4_IP_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_ENDPOINT_CLOSURE_V4_IP_LOCAL_PORT)
            pString = "FWPM_CONDITION_IP_LOCAL_PORT";
         else if(fieldID == FWPS_FIELD_ALE_ENDPOINT_CLOSURE_V4_IP_PROTOCOL)
            pString = "FWPM_CONDITION_IP_PROTOCOL";
         else if(fieldID == FWPS_FIELD_ALE_ENDPOINT_CLOSURE_V4_IP_REMOTE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_REMOTE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_ENDPOINT_CLOSURE_V4_IP_REMOTE_PORT)
            pString = "FWPM_CONDITION_IP_REMOTE_PORT";
         else if(fieldID == FWPS_FIELD_ALE_ENDPOINT_CLOSURE_V4_IP_LOCAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_LOCAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_ALE_ENDPOINT_CLOSURE_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }

#if(NTDDI_VERSION >= NTDDI_WIN8)

         else if(fieldID == FWPS_FIELD_ALE_ENDPOINT_CLOSURE_V4_ALE_PACKAGE_ID)
            pString = "FWPM_CONDITION_ALE_PACKAGE_ID";

#if(NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
         
         else if(fieldID == FWPS_FIELD_ALE_ENDPOINT_CLOSURE_V4_ALE_SECURITY_ATTRIBUTE_FQBN_VALUE)
            pString = "FWPM_CONDITION_ALE_SECURITY_ATTRIBUTE_FQBN_VALUE";
         
#endif /// (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
#endif /// (NTDDI_VERSION >= NTDDI_WIN8)

         break;
      }
      case FWPS_LAYER_ALE_CONNECT_REDIRECT_V4:
      case FWPS_LAYER_ALE_CONNECT_REDIRECT_V6:
      {
         if(fieldID == FWPS_FIELD_ALE_CONNECT_REDIRECT_V4_ALE_APP_ID)
         {
            pString = "FWPM_CONDITION_ALE_APP_ID";

            if(pFormat)
               *pFormat = UNICODE_STRING_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_CONNECT_REDIRECT_V4_ALE_USER_ID)
            pString = "FWPM_CONDITION_ALE_USER_ID";
         else if(fieldID == FWPS_FIELD_ALE_CONNECT_REDIRECT_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_CONNECT_REDIRECT_V4_IP_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_CONNECT_REDIRECT_V4_IP_LOCAL_PORT)
            pString = "FWPM_CONDITION_IP_LOCAL_PORT";
         else if(fieldID == FWPS_FIELD_ALE_CONNECT_REDIRECT_V4_IP_PROTOCOL)
            pString = "FWPM_CONDITION_IP_PROTOCOL";
         else if(fieldID == FWPS_FIELD_ALE_CONNECT_REDIRECT_V4_IP_REMOTE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_REMOTE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_CONNECT_REDIRECT_V4_IP_DESTINATION_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_DESTINATION_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_CONNECT_REDIRECT_V4_IP_REMOTE_PORT)
            pString = "FWPM_CONDITION_IP_REMOTE_PORT";
         else if(fieldID == FWPS_FIELD_ALE_CONNECT_REDIRECT_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }

#if(NTDDI_VERSION >= NTDDI_WIN8)

         else if(fieldID == FWPS_FIELD_ALE_CONNECT_REDIRECT_V4_ALE_ORIGINAL_APP_ID)
         {
            pString = "FWPM_CONDITION_ALE_ORIGINAL_APP_ID";

            if(pFormat)
               *pFormat = UNICODE_STRING_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_CONNECT_REDIRECT_V4_ALE_PACKAGE_ID)
            pString = "FWPM_CONDITION_ALE_PACKAGE_ID";

#if(NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
         
         else if(fieldID == FWPS_FIELD_ALE_CONNECT_REDIRECT_V4_ALE_SECURITY_ATTRIBUTE_FQBN_VALUE)
            pString = "FWPM_CONDITION_ALE_SECURITY_ATTRIBUTE_FQBN_VALUE";
         
#endif /// (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
#endif /// (NTDDI_VERSION >= NTDDI_WIN8)

         break;
      }
      case FWPS_LAYER_ALE_BIND_REDIRECT_V4:
      case FWPS_LAYER_ALE_BIND_REDIRECT_V6:
      {
         if(fieldID == FWPS_FIELD_ALE_BIND_REDIRECT_V4_ALE_APP_ID)
         {
            pString = "FWPM_CONDITION_ALE_APP_ID";

            if(pFormat)
               *pFormat = UNICODE_STRING_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_BIND_REDIRECT_V4_ALE_USER_ID)
            pString = "FWPM_CONDITION_ALE_USER_ID";
         else if(fieldID == FWPS_FIELD_ALE_BIND_REDIRECT_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_ALE_BIND_REDIRECT_V4_IP_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_ALE_BIND_REDIRECT_V4_IP_LOCAL_PORT)
            pString = "FWPM_CONDITION_IP_LOCAL_PORT";
         else if(fieldID == FWPS_FIELD_ALE_BIND_REDIRECT_V4_IP_PROTOCOL)
            pString = "FWPM_CONDITION_IP_PROTOCOL";
         else if(fieldID == FWPS_FIELD_ALE_BIND_REDIRECT_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }

#if(NTDDI_VERSION >= NTDDI_WIN8)

         else if(fieldID == FWPS_FIELD_ALE_BIND_REDIRECT_V4_ALE_PACKAGE_ID)
            pString = "FWPM_CONDITION_ALE_PACKAGE_ID";

#if(NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
         
         else if(fieldID == FWPS_FIELD_ALE_BIND_REDIRECT_V4_ALE_SECURITY_ATTRIBUTE_FQBN_VALUE)
            pString = "FWPM_CONDITION_ALE_SECURITY_ATTRIBUTE_FQBN_VALUE";
         
#endif /// (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
#endif /// (NTDDI_VERSION >= NTDDI_WIN8)

         break;
      }
      case FWPS_LAYER_STREAM_PACKET_V4:
      case FWPS_LAYER_STREAM_PACKET_V6:
      {
         if(fieldID == FWPS_FIELD_STREAM_PACKET_V4_IP_LOCAL_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_LOCAL_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_STREAM_PACKET_V4_IP_REMOTE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_REMOTE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_STREAM_PACKET_V4_IP_LOCAL_PORT)
            pString = "FWPM_CONDITION_IP_LOCAL_PORT";
         else if(fieldID == FWPS_FIELD_STREAM_PACKET_V4_IP_REMOTE_PORT)
            pString = "FWPM_CONDITION_IP_REMOTE_PORT";
         else if(fieldID == FWPS_FIELD_STREAM_PACKET_V4_IP_LOCAL_INTERFACE)
            pString = "FWPM_CONDITION_IP_LOCAL_INTERFACE";
         else if(fieldID == FWPS_FIELD_STREAM_PACKET_V4_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_STREAM_PACKET_V4_SUB_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_SUB_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_STREAM_PACKET_V4_DIRECTION)
            pString = "FWPM_CONDITION_DIRECTION";
         else if(fieldID == FWPS_FIELD_STREAM_PACKET_V4_FLAGS)
         {
            pString = "FWPM_CONDITION_FLAGS";

            if(pFormat)
               *pFormat = FLAGS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_STREAM_PACKET_V4_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_STREAM_PACKET_V4_TUNNEL_TYPE)
            pString = "FWPM_CONDITION_TUNNEL_TYPE";

         break;
      }

#if(NTDDI_VERSION >= NTDDI_WIN8)

      case FWPS_LAYER_INBOUND_MAC_FRAME_ETHERNET:
      {
         if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_ETHERNET_INTERFACE_MAC_ADDRESS)
            pString = "FWPM_CONDITION_INTERFACE_MAC_ADDRESS";
         else if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_ETHERNET_MAC_LOCAL_ADDRESS)
            pString = "FWPM_CONDITION_MAC_LOCAL_ADDRESS";
         else if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_ETHERNET_MAC_REMOTE_ADDRESS)
            pString = "FWPM_CONDITION_MAC_REMOTE_ADDRESS";
         else if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_ETHERNET_MAC_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_MAC_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_ETHERNET_MAC_REMOTE_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_MAC_REMOTE_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_ETHERNET_ETHER_TYPE)
            pString = "FWPM_CONDITION_ETHER_TYPE";
         else if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_ETHERNET_VLAN_ID)
            pString = "FWPM_CONDITION_VLAN_ID";
         else if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_ETHERNET_INTERFACE)
            pString = "FWPM_CONDITION_INTERFACE";
         else if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_ETHERNET_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_ETHERNET_NDIS_PORT)
            pString = "FWPM_CONDITION_NDIS_PORT";
         else if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_ETHERNET_L2_FLAGS)
         {
            pString = "FWPM_CONDITION_L2_FLAGS";

            if(pFormat)
               *pFormat = L2_FLAGS_VALUE;
         }

         break;
      }
      case FWPS_LAYER_OUTBOUND_MAC_FRAME_ETHERNET:
      {
         if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_ETHERNET_INTERFACE_MAC_ADDRESS)
            pString = "FWPM_CONDITION_INTERFACE_MAC_ADDRESS";
         else if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_ETHERNET_MAC_LOCAL_ADDRESS)
            pString = "FWPM_CONDITION_MAC_LOCAL_ADDRESS";
         else if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_ETHERNET_MAC_REMOTE_ADDRESS)
            pString = "FWPM_CONDITION_MAC_REMOTE_ADDRESS";
         else if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_ETHERNET_MAC_LOCAL_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_MAC_LOCAL_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_ETHERNET_MAC_REMOTE_ADDRESS_TYPE)
            pString = "FWPM_CONDITION_MAC_REMOTE_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_ETHERNET_ETHER_TYPE)
            pString = "FWPM_CONDITION_ETHER_TYPE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_ETHERNET_VLAN_ID)
            pString = "FWPM_CONDITION_VLAN_ID";
         else if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_ETHERNET_INTERFACE)
            pString = "FWPM_CONDITION_INTERFACE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_ETHERNET_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_ETHERNET_NDIS_PORT)
            pString = "FWPM_CONDITION_NDIS_PORT";
         else if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_ETHERNET_L2_FLAGS)
         {
            pString = "FWPM_CONDITION_L2_FLAGS";

            if(pFormat)
               *pFormat = L2_FLAGS_VALUE;
         }

         break;
      }
      case FWPS_LAYER_INBOUND_MAC_FRAME_NATIVE:
      {
         if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_NATIVE_NDIS_MEDIA_TYPE)
            pString = "FWPM_CONDITION_NDIS_MEDIA_TYPE";
         else if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_NATIVE_NDIS_PHYSICAL_MEDIA_TYPE)
            pString = "FWPM_CONDITION_NDIS_PHYSICAL_MEDIA_TYPE";
         else if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_NATIVE_INTERFACE)
            pString = "FWPM_CONDITION_INTERFACE";
         else if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_NATIVE_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_NATIVE_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_NATIVE_NDIS_PORT)
            pString = "FWPM_CONDITION_NDIS_PORT";
         else if(fieldID == FWPS_FIELD_INBOUND_MAC_FRAME_NATIVE_L2_FLAGS)
         {
            pString = "FWPM_CONDITION_L2_FLAGS";

            if(pFormat)
               *pFormat = L2_FLAGS_VALUE;
         }

         break;
      }
      case FWPS_LAYER_OUTBOUND_MAC_FRAME_NATIVE:
      {
         if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_NATIVE_NDIS_MEDIA_TYPE)
            pString = "FWPM_CONDITION_NDIS_MEDIA_TYPE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_NATIVE_NDIS_PHYSICAL_MEDIA_TYPE)
            pString = "FWPM_CONDITION_NDIS_PHYSICAL_MEDIA_TYPE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_NATIVE_INTERFACE)
            pString = "FWPM_CONDITION_INTERFACE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_NATIVE_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_NATIVE_INTERFACE_INDEX)
            pString = "FWPM_CONDITION_INTERFACE_INDEX";
         else if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_NATIVE_NDIS_PORT)
            pString = "FWPM_CONDITION_NDIS_PORT";
         else if(fieldID == FWPS_FIELD_OUTBOUND_MAC_FRAME_NATIVE_L2_FLAGS)
         {
            pString = "FWPM_CONDITION_L2_FLAGS";

            if(pFormat)
               *pFormat = L2_FLAGS_VALUE;
         }

         break;
      }
      case FWPS_LAYER_INGRESS_VSWITCH_ETHERNET:
      {
         if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_MAC_SOURCE_ADDRESS)
            pString = "FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_MAC_SOURCE_ADDRESS";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_MAC_SOURCE_ADDRESS_TYPE)
            pString = "FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_MAC_SOURCE_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_MAC_DESTINATION_ADDRESS)
            pString = "FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_MAC_DESTINATION_ADDRESS";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_MAC_DESTINATION_ADDRESS_TYPE)
            pString = "FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_MAC_DESTINATION_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_ETHER_TYPE)
            pString = "FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_ETHER_TYPE";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_VLAN_ID)
            pString = "FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_VLAN_ID";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_VSWITCH_TENANT_NETWORK_ID)
            pString = "FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_VSWITCH_TENANT_NETWORK_ID";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_VSWITCH_ID)
            pString = "FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_VSWITCH_ID";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_VSWITCH_NETWORK_TYPE)
            pString = "FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_VSWITCH_NETWORK_TYPE";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_VSWITCH_SOURCE_INTERFACE_ID)
            pString = "FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_VSWITCH_SOURCE_INTERFACE_ID";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_VSWITCH_SOURCE_INTERFACE_TYPE)
            pString = "FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_VSWITCH_SOURCE_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_VSWITCH_SOURCE_VM_ID)
            pString = "FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_VSWITCH_SOURCE_VM_ID";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_L2_FLAGS)
            pString = "FWPS_FIELD_INGRESS_VSWITCH_ETHERNET_L2_FLAGS";

         break;
      }
      case FWPS_LAYER_EGRESS_VSWITCH_ETHERNET:
      {
         if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_MAC_SOURCE_ADDRESS)
            pString = "FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_MAC_SOURCE_ADDRESS";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_MAC_SOURCE_ADDRESS_TYPE)
            pString = "FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_MAC_SOURCE_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_MAC_DESTINATION_ADDRESS)
            pString = "FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_MAC_DESTINATION_ADDRESS";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_MAC_DESTINATION_ADDRESS_TYPE)
            pString = "FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_MAC_DESTINATION_ADDRESS_TYPE";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_ETHER_TYPE)
            pString = "FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_ETHER_TYPE";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VLAN_ID)
            pString = "FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VLAN_ID";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_TENANT_NETWORK_ID)
            pString = "FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_TENANT_NETWORK_ID";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_ID)
            pString = "FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_ID";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_NETWORK_TYPE)
            pString = "FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_NETWORK_TYPE";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_SOURCE_INTERFACE_ID)
            pString = "FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_SOURCE_INTERFACE_ID";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_SOURCE_INTERFACE_TYPE)
            pString = "FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_SOURCE_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_SOURCE_VM_ID)
            pString = "FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_SOURCE_VM_ID";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_DESTINATION_INTERFACE_ID)
            pString = "FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_DESTINATION_INTERFACE_ID";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_DESTINATION_INTERFACE_TYPE)
            pString = "FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_DESTINATION_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_DESTINATION_VM_ID)
            pString = "FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_VSWITCH_DESTINATION_VM_ID";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_L2_FLAGS)
            pString = "FWPS_FIELD_EGRESS_VSWITCH_ETHERNET_L2_FLAGS";

         break;
      }
      case FWPS_LAYER_INGRESS_VSWITCH_TRANSPORT_V4:
      case FWPS_LAYER_INGRESS_VSWITCH_TRANSPORT_V6:
      {
         if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_TRANSPORT_V4_IP_SOURCE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_SOURCE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_TRANSPORT_V4_IP_DESTINATION_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_DESTINATION_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_TRANSPORT_V4_IP_PROTOCOL)
            pString = "FWPM_CONDITION_IP_PROTOCOL";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_TRANSPORT_V4_IP_SOURCE_PORT)
            pString = "FWPM_CONDITION_IP_SOURCE_PORT";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_TRANSPORT_V4_IP_DESTINATION_PORT)
            pString = "FWPM_CONDITION_IP_DESTINATION_PORT";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_TRANSPORT_V4_VLAN_ID)
            pString = "FWPM_CONDITION_VLAN_ID";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_TRANSPORT_V4_VSWITCH_TENANT_NETWORK_ID)
            pString = "FWPM_CONDITION_VSWITCH_TENANT_NETWORK_ID";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_TRANSPORT_V4_VSWITCH_ID)
            pString = "FWPM_CONDITION_VSWITCH_ID";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_TRANSPORT_V4_VSWITCH_NETWORK_TYPE)
            pString = "FWPM_CONDITION_VSWITCH_NETWORK_TYPE";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_TRANSPORT_V4_VSWITCH_SOURCE_INTERFACE_ID)
            pString = "FWPM_CONDITION_VSWITCH_SOURCE_INTERFACE_ID";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_TRANSPORT_V4_VSWITCH_SOURCE_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_VSWITCH_SOURCE_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_TRANSPORT_V4_VSWITCH_SOURCE_VM_ID)
            pString = "FWPM_CONDITION_VSWITCH_SOURCE_VM_ID";
         else if(fieldID == FWPS_FIELD_INGRESS_VSWITCH_TRANSPORT_V4_L2_FLAGS)
         {
            pString = "FWPM_CONDITION_L2_FLAGS";

            if(pFormat)
               *pFormat = L2_FLAGS_VALUE;
         }

         break;
      }
      case FWPS_LAYER_EGRESS_VSWITCH_TRANSPORT_V4:
      case FWPS_LAYER_EGRESS_VSWITCH_TRANSPORT_V6:
      {
         if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_TRANSPORT_V4_IP_SOURCE_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_SOURCE_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_TRANSPORT_V4_IP_DESTINATION_ADDRESS)
         {
            pString = "FWPM_CONDITION_IP_DESTINATION_ADDRESS";

            if(pFormat)
               *pFormat = ADDRESS_VALUE;
         }
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_TRANSPORT_V4_IP_PROTOCOL)
            pString = "FWPM_CONDITION_IP_PROTOCOL";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_TRANSPORT_V4_IP_SOURCE_PORT)
            pString = "FWPM_CONDITION_IP_SOURCE_PORT";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_TRANSPORT_V4_IP_DESTINATION_PORT)
            pString = "FWPM_CONDITION_IP_DESTINATION_PORT";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_TRANSPORT_V4_VLAN_ID)
            pString = "FWPM_CONDITION_VLAN_ID";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_TRANSPORT_V4_VSWITCH_TENANT_NETWORK_ID)
            pString = "FWPM_CONDITION_VSWITCH_TENANT_NETWORK_ID";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_TRANSPORT_V4_VSWITCH_ID)
            pString = "FWPM_CONDITION_VSWITCH_ID";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_TRANSPORT_V4_VSWITCH_NETWORK_TYPE)
            pString = "FWPM_CONDITION_VSWITCH_NETWORK_TYPE";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_TRANSPORT_V4_VSWITCH_SOURCE_INTERFACE_ID)
            pString = "FWPM_CONDITION_VSWITCH_SOURCE_INTERFACE_ID";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_TRANSPORT_V4_VSWITCH_SOURCE_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_VSWITCH_SOURCE_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_TRANSPORT_V4_VSWITCH_SOURCE_VM_ID)
            pString = "FWPM_CONDITION_VSWITCH_SOURCE_VM_ID";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_TRANSPORT_V4_VSWITCH_DESTINATION_INTERFACE_ID)
            pString = "FWPM_CONDITION_VSWITCH_DESTINATION_INTERFACE_ID";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_TRANSPORT_V4_VSWITCH_DESTINATION_INTERFACE_TYPE)
            pString = "FWPM_CONDITION_VSWITCH_DESTINATION_INTERFACE_TYPE";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_TRANSPORT_V4_VSWITCH_DESTINATION_VM_ID)
            pString = "FWPM_CONDITION_VSWITCH_DESTINATION_VM_ID";
         else if(fieldID == FWPS_FIELD_EGRESS_VSWITCH_TRANSPORT_V4_L2_FLAGS)
         {
            pString = "FWPM_CONDITION_L2_FLAGS";

            if(pFormat)
               *pFormat = L2_FLAGS_VALUE;
         }

         break;
      }

#endif /// (NTDDI_VERSION >= NTDDI_WIN8)
#endif /// (NTDDI_VERSION >= NTDDI_WIN7)

   }

   return pString;
}