Sample Code

Windows Driver Samples/ Windows Filtering Platform Sample/ C++/ inc/ WFPArrays.h/

////////////////////////////////////////////////////////////////////////////////////////////////////
//
//   Copyright (c) 2012 Microsoft Corporation.  All Rights Reserved.
//
//   Module Name:
//      WFPArrays.h
//
//   Abstract:
//      This module contains global variables and definitions of WFP specific data for the 
//         WFPSampler project
//
//   Author:
//      Dusty Harper      (DHarper)
//
//   Revision History:
//
//      [ Month ][Day] [Year] - [Revision]-[ Comments ]
//      May       01,   2010  -     1.0   -  Creation
//
////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef WFP_SAMPLER_WFP_ARRAYS_H
#define WFP_SAMPLER_WFP_ARRAYS_H

#if(NTDDI_VERSION >= NTDDI_VISTA)

const GUID* const ppLayerKeyArray[]         = {&FWPM_LAYER_INBOUND_IPPACKET_V4,               ///  0
                                               &FWPM_LAYER_INBOUND_IPPACKET_V4_DISCARD,
                                               &FWPM_LAYER_INBOUND_IPPACKET_V6,
                                               &FWPM_LAYER_INBOUND_IPPACKET_V6_DISCARD,
                                               &FWPM_LAYER_OUTBOUND_IPPACKET_V4,
                                               &FWPM_LAYER_OUTBOUND_IPPACKET_V4_DISCARD,
                                               &FWPM_LAYER_OUTBOUND_IPPACKET_V6,
                                               &FWPM_LAYER_OUTBOUND_IPPACKET_V6_DISCARD,
                                               &FWPM_LAYER_IPFORWARD_V4,
                                               &FWPM_LAYER_IPFORWARD_V4_DISCARD,
                                               &FWPM_LAYER_IPFORWARD_V6,                      /// 10
                                               &FWPM_LAYER_IPFORWARD_V6_DISCARD,
                                               &FWPM_LAYER_INBOUND_TRANSPORT_V4,
                                               &FWPM_LAYER_INBOUND_TRANSPORT_V4_DISCARD,
                                               &FWPM_LAYER_INBOUND_TRANSPORT_V6,
                                               &FWPM_LAYER_INBOUND_TRANSPORT_V6_DISCARD,
                                               &FWPM_LAYER_OUTBOUND_TRANSPORT_V4,
                                               &FWPM_LAYER_OUTBOUND_TRANSPORT_V4_DISCARD,
                                               &FWPM_LAYER_OUTBOUND_TRANSPORT_V6,
                                               &FWPM_LAYER_OUTBOUND_TRANSPORT_V6_DISCARD,
                                               &FWPM_LAYER_STREAM_V4,                         /// 20
                                               &FWPM_LAYER_STREAM_V4_DISCARD,
                                               &FWPM_LAYER_STREAM_V6,
                                               &FWPM_LAYER_STREAM_V6_DISCARD,
                                               &FWPM_LAYER_DATAGRAM_DATA_V4,
                                               &FWPM_LAYER_DATAGRAM_DATA_V4_DISCARD,
                                               &FWPM_LAYER_DATAGRAM_DATA_V6,
                                               &FWPM_LAYER_DATAGRAM_DATA_V6_DISCARD,
                                               &FWPM_LAYER_INBOUND_ICMP_ERROR_V4,
                                               &FWPM_LAYER_INBOUND_ICMP_ERROR_V4_DISCARD,
                                               &FWPM_LAYER_INBOUND_ICMP_ERROR_V6,             /// 30
                                               &FWPM_LAYER_INBOUND_ICMP_ERROR_V6_DISCARD,
                                               &FWPM_LAYER_OUTBOUND_ICMP_ERROR_V4,
                                               &FWPM_LAYER_OUTBOUND_ICMP_ERROR_V4_DISCARD,
                                               &FWPM_LAYER_OUTBOUND_ICMP_ERROR_V6,
                                               &FWPM_LAYER_OUTBOUND_ICMP_ERROR_V6_DISCARD,
                                               &FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_V4,
                                               &FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_V4_DISCARD,
                                               &FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_V6,
                                               &FWPM_LAYER_ALE_RESOURCE_ASSIGNMENT_V6_DISCARD,
                                               &FWPM_LAYER_ALE_AUTH_LISTEN_V4,                /// 40
                                               &FWPM_LAYER_ALE_AUTH_LISTEN_V4_DISCARD,
                                               &FWPM_LAYER_ALE_AUTH_LISTEN_V6,
                                               &FWPM_LAYER_ALE_AUTH_LISTEN_V6_DISCARD,
                                               &FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V4,
                                               &FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V4_DISCARD,
                                               &FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V6,
                                               &FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V6_DISCARD,
                                               &FWPM_LAYER_ALE_AUTH_CONNECT_V4,
                                               &FWPM_LAYER_ALE_AUTH_CONNECT_V4_DISCARD,
                                               &FWPM_LAYER_ALE_AUTH_CONNECT_V6,               /// 50
                                               &FWPM_LAYER_ALE_AUTH_CONNECT_V6_DISCARD,
                                               &FWPM_LAYER_ALE_FLOW_ESTABLISHED_V4,
                                               &FWPM_LAYER_ALE_FLOW_ESTABLISHED_V4_DISCARD,
                                               &FWPM_LAYER_ALE_FLOW_ESTABLISHED_V6,
                                               &FWPM_LAYER_ALE_FLOW_ESTABLISHED_V6_DISCARD,
#if(NTDDI_VERSION >= NTDDI_WIN7)

                                               &FWPM_LAYER_NAME_RESOLUTION_CACHE_V4,          /// 60
                                               &FWPM_LAYER_NAME_RESOLUTION_CACHE_V6,
                                               &FWPM_LAYER_ALE_RESOURCE_RELEASE_V4,
                                               &FWPM_LAYER_ALE_RESOURCE_RELEASE_V6,
                                               &FWPM_LAYER_ALE_ENDPOINT_CLOSURE_V4,
                                               &FWPM_LAYER_ALE_ENDPOINT_CLOSURE_V6,
                                               &FWPM_LAYER_ALE_CONNECT_REDIRECT_V4,
                                               &FWPM_LAYER_ALE_CONNECT_REDIRECT_V6,
                                               &FWPM_LAYER_ALE_BIND_REDIRECT_V4,
                                               &FWPM_LAYER_ALE_BIND_REDIRECT_V6,
                                               &FWPM_LAYER_STREAM_PACKET_V4,                  /// 70
                                               &FWPM_LAYER_STREAM_PACKET_V6,

#if(NTDDI_VERSION >= NTDDI_WIN8)

                                               &FWPM_LAYER_INBOUND_MAC_FRAME_ETHERNET,        /// 56
                                               &FWPM_LAYER_OUTBOUND_MAC_FRAME_ETHERNET,       /// 57
                                               &FWPM_LAYER_INBOUND_MAC_FRAME_NATIVE,          /// 58
                                               &FWPM_LAYER_OUTBOUND_MAC_FRAME_NATIVE,         /// 59
                                               &FWPM_LAYER_INGRESS_VSWITCH_ETHERNET,          /// 72
                                               &FWPM_LAYER_EGRESS_VSWITCH_ETHERNET,
                                               &FWPM_LAYER_INGRESS_VSWITCH_TRANSPORT_V4,
                                               &FWPM_LAYER_INGRESS_VSWITCH_TRANSPORT_V6,
                                               &FWPM_LAYER_EGRESS_VSWITCH_TRANSPORT_V4,
                                               &FWPM_LAYER_EGRESS_VSWITCH_TRANSPORT_V6,

#if(NTDDI_VERSION >= NTDDI_WINBLUE)

                                               &FWPM_LAYER_INBOUND_TRANSPORT_FAST,            /// 78
                                               &FWPM_LAYER_OUTBOUND_TRANSPORT_FAST,
                                               &FWPM_LAYER_INBOUND_MAC_FRAME_NATIVE_FAST,     /// 80
                                               &FWPM_LAYER_OUTBOUND_MAC_FRAME_NATIVE_FAST,

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

                                               &FWPM_LAYER_IPSEC_KM_DEMUX_V4,
                                               &FWPM_LAYER_IPSEC_KM_DEMUX_V6,
                                               &FWPM_LAYER_IPSEC_V4,
                                               &FWPM_LAYER_IPSEC_V6,
                                               &FWPM_LAYER_IKEEXT_V4,
                                               &FWPM_LAYER_IKEEXT_V6,
                                               &FWPM_LAYER_RPC_UM,
                                               &FWPM_LAYER_RPC_EPMAP,
                                               &FWPM_LAYER_RPC_EP_ADD,                        /// 90
                                               &FWPM_LAYER_RPC_PROXY_CONN,
                                               &FWPM_LAYER_RPC_PROXY_IF,

#if(NTDDI_VERSION >= NTDDI_WIN7)

                                               &FWPM_LAYER_KM_AUTHORIZATION,                  /// 93

#endif // (NTDDI_VERSION >= NTDDI_WIN7)

                                              };
const GUID* const ppUserModeLayerKeyArray[] = {&FWPM_LAYER_IPSEC_KM_DEMUX_V4,                 ///  0
                                               &FWPM_LAYER_IPSEC_KM_DEMUX_V6,
                                               &FWPM_LAYER_IPSEC_V4,
                                               &FWPM_LAYER_IPSEC_V6,
                                               &FWPM_LAYER_IKEEXT_V4,
                                               &FWPM_LAYER_IKEEXT_V6,
                                               &FWPM_LAYER_RPC_UM,
                                               &FWPM_LAYER_RPC_EPMAP,
                                               &FWPM_LAYER_RPC_EP_ADD,
                                               &FWPM_LAYER_RPC_PROXY_CONN,
                                               &FWPM_LAYER_RPC_PROXY_IF,                      /// 10
#if(NTDDI_VERSION >= NTDDI_WIN7)

                                               &FWPM_LAYER_KM_AUTHORIZATION,

#endif // (NTDDI_VERSION >= NTDDI_WIN7)

                                              };

const UINT32 TOTAL_LAYER_COUNT             = RTL_NUMBER_OF(ppLayerKeyArray);
const UINT32 TOTAL_USER_MODE_LAYER_COUNT   = RTL_NUMBER_OF(ppUserModeLayerKeyArray);
const UINT32 TOTAL_KERNEL_MODE_LAYER_COUNT = TOTAL_LAYER_COUNT - TOTAL_USER_MODE_LAYER_COUNT;

const GUID* const ppConditionInboundIPPacket[]          = {&FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE
                                                           &FWPM_CONDITION_INTERFACE_INDEX,                  /// &FWPM_CONDITION_LOCAL_INTERFACE_INDEX 
                                                           &FWPM_CONDITION_SUB_INTERFACE_INDEX,              /// &FWPM_CONDITION_ARRIVAL_SUB_INTERFACE_INDEX 
                                                           &FWPM_CONDITION_FLAGS,
                                                           &FWPM_CONDITION_INTERFACE_TYPE,                   /// &FWPM_CONDITION_LOCAL_INTERFACE_TYPE
                                                           &FWPM_CONDITION_TUNNEL_TYPE,                      /// &FWPM_CONDITION_LOCAL_TUNNEL_TYPE 
                                                          };
const GUID* const ppConditionOutboundIPPacket[]         = {&FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE
                                                           &FWPM_CONDITION_INTERFACE_INDEX,                  /// &FWPM_CONDITION_LOCAL_INTERFACE_INDEX 
                                                           &FWPM_CONDITION_SUB_INTERFACE_INDEX,              /// &FWPM_CONDITION_ARRIVAL_SUB_INTERFACE_INDEX
                                                           &FWPM_CONDITION_FLAGS,
                                                           &FWPM_CONDITION_INTERFACE_TYPE,                   /// &FWPM_CONDITION_LOCAL_INTERFACE_TYPE
                                                           &FWPM_CONDITION_TUNNEL_TYPE,                      /// &FWPM_CONDITION_LOCAL_TUNNEL_TYPE
                                                          };
const GUID* const ppConditionIPForward[]                = {&FWPM_CONDITION_IP_SOURCE_ADDRESS,
                                                           &FWPM_CONDITION_IP_DESTINATION_ADDRESS,
                                                           &FWPM_CONDITION_IP_DESTINATION_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE
                                                           &FWPM_CONDITION_IP_FORWARD_INTERFACE,
                                                           &FWPM_CONDITION_SOURCE_INTERFACE_INDEX,
                                                           &FWPM_CONDITION_SOURCE_SUB_INTERFACE_INDEX,
                                                           &FWPM_CONDITION_DESTINATION_INTERFACE_INDEX,
                                                           &FWPM_CONDITION_DESTINATION_SUB_INTERFACE_INDEX,
                                                           &FWPM_CONDITION_FLAGS,

#if(NTDDI_VERSION >= NTDDI_WIN7)

                                                           &FWPM_CONDITION_IP_PHYSICAL_ARRIVAL_INTERFACE,
                                                           &FWPM_CONDITION_ARRIVAL_INTERFACE_PROFILE_ID,
                                                           &FWPM_CONDITION_IP_PHYSICAL_NEXTHOP_INTERFACE,
                                                           &FWPM_CONDITION_NEXTHOP_INTERFACE_PROFILE_ID,

#endif // (NTDDI_VERSION >= NTDDI_WIN7)

                                                          };
const GUID* const ppConditionInboundTransport[]         = {&FWPM_CONDITION_IP_PROTOCOL,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_LOCAL_PORT,                    /// &FWPM_CONDITION_ICMP_TYPE
                                                           &FWPM_CONDITION_IP_REMOTE_PORT,                   /// &FWPM_CONDITION_ICMP_CODE
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE
                                                           &FWPM_CONDITION_INTERFACE_INDEX,                  /// &FWPM_CONDITION_LOCAL_INTERFACE_INDEX 
                                                           &FWPM_CONDITION_SUB_INTERFACE_INDEX,              /// &FWPM_CONDITION_ARRIVAL_SUB_INTERFACE_INDEX
                                                           &FWPM_CONDITION_FLAGS,
                                                           &FWPM_CONDITION_INTERFACE_TYPE,                   /// &FWPM_CONDITION_LOCAL_INTERFACE_TYPE
                                                           &FWPM_CONDITION_TUNNEL_TYPE,                      /// &FWPM_CONDITION_LOCAL_TUNNEL_TYPE

#if(NTDDI_VERSION >= NTDDI_WIN7)

                                                           &FWPM_CONDITION_CURRENT_PROFILE_ID,

#endif //(NTDDI_VERSION >= NTDDI_WIN7)

                                                          };
const GUID* const ppConditionOutboundTransport[]        = {&FWPM_CONDITION_IP_PROTOCOL,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_PORT,                    /// &FWPM_CONDITION_ICMP_TYPE
                                                           &FWPM_CONDITION_IP_REMOTE_PORT,                   /// &FWPM_CONDITION_ICMP_CODE
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE
                                                           &FWPM_CONDITION_INTERFACE_INDEX,                  /// &FWPM_CONDITION_LOCAL_INTERFACE_INDEX 
                                                           &FWPM_CONDITION_SUB_INTERFACE_INDEX,              /// &FWPM_CONDITION_ARRIVAL_SUB_INTERFACE_INDEX
                                                           &FWPM_CONDITION_IP_DESTINATION_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_FLAGS,
                                                           &FWPM_CONDITION_INTERFACE_TYPE,                   /// &FWPM_CONDITION_LOCAL_INTERFACE_TYPE
                                                           &FWPM_CONDITION_TUNNEL_TYPE,                      /// &FWPM_CONDITION_LOCAL_TUNNEL_TYPE

#if(NTDDI_VERSION >= NTDDI_WIN7)

                                                           &FWPM_CONDITION_CURRENT_PROFILE_ID,

#endif // (NTDDI_VERSION >= NTDDI_WIN7)

                                                          };
const GUID* const ppConditionStream[]                   = {&FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_PORT,
                                                           &FWPM_CONDITION_IP_REMOTE_PORT,
                                                           &FWPM_CONDITION_DIRECTION,

#if(NTDDI_VERSION >= NTDDI_VISTASP1)

                                                           &FWPM_CONDITION_FLAGS,

#endif // (NTDDI_VERSION >= NTDDI_VISTASP1)

                                                          };
const GUID* const ppConditionDatagramData[]             = {&FWPM_CONDITION_IP_PROTOCOL,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_LOCAL_PORT,                    /// &FWPM_CONDITION_ICMP_TYPE
                                                           &FWPM_CONDITION_IP_REMOTE_PORT,                   /// &FWPM_CONDITION_ICMP_CODE
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE
                                                           &FWPM_CONDITION_INTERFACE_INDEX,                  /// &FWPM_CONDITION_LOCAL_INTERFACE_INDEX 
                                                           &FWPM_CONDITION_SUB_INTERFACE_INDEX,              /// &FWPM_CONDITION_ARRIVAL_SUB_INTERFACE_INDEX
                                                           &FWPM_CONDITION_DIRECTION,
                                                           &FWPM_CONDITION_FLAGS,
                                                           &FWPM_CONDITION_INTERFACE_TYPE,                   /// &FWPM_CONDITION_LOCAL_INTERFACE_TYPE
                                                           &FWPM_CONDITION_TUNNEL_TYPE,                      /// &FWPM_CONDITION_LOCAL_TUNNEL_TYPE
                                                          };
const GUID* const ppConditionInboundICMPError[]         = {&FWPM_CONDITION_EMBEDDED_PROTOCOL,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_EMBEDDED_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_EMBEDDED_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_EMBEDDED_LOCAL_PORT,
                                                           &FWPM_CONDITION_EMBEDDED_REMOTE_PORT,
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE
                                                           &FWPM_CONDITION_ICMP_TYPE,
                                                           &FWPM_CONDITION_ICMP_CODE,
                                                           &FWPM_CONDITION_INTERFACE_INDEX,                  /// &FWPM_CONDITION_LOCAL_INTERFACE_INDEX 
                                                           &FWPM_CONDITION_SUB_INTERFACE_INDEX,              /// &FWPM_CONDITION_ARRIVAL_SUB_INTERFACE_INDEX
                                                           &FWPM_CONDITION_INTERFACE_TYPE,                   /// &FWPM_CONDITION_LOCAL_INTERFACE_TYPE
                                                           &FWPM_CONDITION_TUNNEL_TYPE,                      /// &FWPM_CONDITION_LOCAL_TUNNEL_TYPE

#if(NTDDI_VERSION >= NTDDI_VISTASP1)

                                                           &FWPM_CONDITION_IP_ARRIVAL_INTERFACE,
                                                           &FWPM_CONDITION_ARRIVAL_INTERFACE_INDEX,
                                                           &FWPM_CONDITION_ARRIVAL_INTERFACE_TYPE,
                                                           &FWPM_CONDITION_ARRIVAL_TUNNEL_TYPE,
                                                           &FWPM_CONDITION_FLAGS,

#if(NTDDI_VERSION >= NTDDI_WIN7)

                                                           &FWPM_CONDITION_ARRIVAL_INTERFACE_PROFILE_ID,
                                                           &FWPM_CONDITION_INTERFACE_QUARANTINE_EPOCH,

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

                                                          };
const GUID* const ppConditionOutboundICMPError[]        = {&FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE
                                                           &FWPM_CONDITION_ICMP_TYPE,
                                                           &FWPM_CONDITION_ICMP_CODE,
                                                           &FWPM_CONDITION_INTERFACE_INDEX,                  /// &FWPM_CONDITION_LOCAL_INTERFACE_INDEX 
                                                           &FWPM_CONDITION_SUB_INTERFACE_INDEX,              /// &FWPM_CONDITION_ARRIVAL_SUB_INTERFACE_INDEX
                                                           &FWPM_CONDITION_INTERFACE_TYPE,                   /// &FWPM_CONDITION_LOCAL_INTERFACE_TYPE
                                                           &FWPM_CONDITION_TUNNEL_TYPE,                      /// &FWPM_CONDITION_LOCAL_TUNNEL_TYPE

#if(NTDDI_VERSION >= NTDDI_VISTASP1)

                                                           &FWPM_CONDITION_FLAGS,

#if(NTDDI_VERSION >= NTDDI_WIN7)

                                                           &FWPM_CONDITION_NEXTHOP_INTERFACE_PROFILE_ID,
                                                           &FWPM_CONDITION_INTERFACE_QUARANTINE_EPOCH,

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

                                                          };
const GUID* const ppConditionALEResourceAssignment[]    = {&FWPM_CONDITION_ALE_APP_ID,
                                                           &FWPM_CONDITION_ALE_USER_ID,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_LOCAL_PORT,                    /// &FWPM_CONDITION_ICMP_TYPE
                                                           &FWPM_CONDITION_IP_PROTOCOL,
                                                           &FWPM_CONDITION_ALE_PROMISCUOUS_MODE,
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE
                                                           &FWPM_CONDITION_FLAGS,
                                                           &FWPM_CONDITION_INTERFACE_TYPE,                   /// &FWPM_CONDITION_LOCAL_INTERFACE_TYPE
                                                           &FWPM_CONDITION_TUNNEL_TYPE,                      /// &FWPM_CONDITION_LOCAL_TUNNEL_TYPE

#if(NTDDI_VERSION >= NTDDI_WIN7)

                                                           &FWPM_CONDITION_LOCAL_INTERFACE_PROFILE_ID,
                                                           &FWPM_CONDITION_ALE_SIO_FIREWALL_SYSTEM_PORT,     /// &FWPM_CONDITION_ALE_SIO_FIREWALL_SOCKET_PROPERTY

#if(NTDDI_VERSION >= NTDDI_WIN8)

                                                           &FWPM_CONDITION_ALE_PACKAGE_ID,

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

                                                          };
const GUID* const ppConditionALEAuthListen[]            = {&FWPM_CONDITION_ALE_APP_ID,
                                                           &FWPM_CONDITION_ALE_USER_ID,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_LOCAL_PORT,
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE
                                                           &FWPM_CONDITION_FLAGS,
                                                           &FWPM_CONDITION_INTERFACE_TYPE,                   /// &FWPM_CONDITION_LOCAL_INTERFACE_TYPE
                                                           &FWPM_CONDITION_TUNNEL_TYPE,                      /// &FWPM_CONDITION_LOCAL_TUNNEL_TYPE

#if(NTDDI_VERSION >= NTDDI_WIN7)

                                                           &FWPM_CONDITION_LOCAL_INTERFACE_PROFILE_ID,
                                                           &FWPM_CONDITION_ALE_SIO_FIREWALL_SYSTEM_PORT,     /// &FWPM_CONDITION_ALE_SIO_FIREWALL_SOCKET_PROPERTY

#if(NTDDI_VERSION >= NTDDI_WIN8)

                                                           &FWPM_CONDITION_ALE_PACKAGE_ID,

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

                                                          };
const GUID* const ppConditionALEAuthRecvAccept[]        = {&FWPM_CONDITION_ALE_APP_ID,
                                                           &FWPM_CONDITION_ALE_USER_ID,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_LOCAL_PORT,                    /// &FWPM_CONDITION_ICMP_TYPE
                                                           &FWPM_CONDITION_IP_PROTOCOL,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_IP_REMOTE_PORT,                   /// &FWPM_CONDITION_ICMP_CODE
                                                           &FWPM_CONDITION_ALE_REMOTE_USER_ID,
                                                           &FWPM_CONDITION_ALE_REMOTE_MACHINE_ID,
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE
                                                           &FWPM_CONDITION_FLAGS,
                                                           &FWPM_CONDITION_ALE_SIO_FIREWALL_SYSTEM_PORT,     /// &FWPM_CONDITION_ALE_SIO_FIREWALL_SOCKET_PROPERTY
                                                           &FWPM_CONDITION_ALE_NAP_CONTEXT,
                                                           &FWPM_CONDITION_INTERFACE_TYPE,                   /// &FWPM_CONDITION_LOCAL_INTERFACE_TYPE
                                                           &FWPM_CONDITION_TUNNEL_TYPE,                      /// &FWPM_CONDITION_LOCAL_TUNNEL_TYPE
                                                           &FWPM_CONDITION_INTERFACE_INDEX,                  /// &FWPM_CONDITION_LOCAL_INTERFACE_INDEX 
                                                           &FWPM_CONDITION_SUB_INTERFACE_INDEX,              /// &FWPM_CONDITION_ARRIVAL_SUB_INTERFACE_INDEX

#if(NTDDI_VERSION >= NTDDI_VISTASP1)

                                                           &FWPM_CONDITION_IP_ARRIVAL_INTERFACE,
                                                           &FWPM_CONDITION_ARRIVAL_INTERFACE_TYPE,
                                                           &FWPM_CONDITION_ARRIVAL_TUNNEL_TYPE,
                                                           &FWPM_CONDITION_ARRIVAL_INTERFACE_INDEX,

#if(NTDDI_VERSION >= NTDDI_WIN7)

                                                           &FWPM_CONDITION_NEXTHOP_SUB_INTERFACE_INDEX,
                                                           &FWPM_CONDITION_IP_NEXTHOP_INTERFACE,
                                                           &FWPM_CONDITION_NEXTHOP_INTERFACE_TYPE,
                                                           &FWPM_CONDITION_NEXTHOP_TUNNEL_TYPE,
                                                           &FWPM_CONDITION_NEXTHOP_INTERFACE_INDEX,
                                                           &FWPM_CONDITION_ORIGINAL_PROFILE_ID,
                                                           &FWPM_CONDITION_CURRENT_PROFILE_ID,
                                                           &FWPM_CONDITION_REAUTHORIZE_REASON,
                                                           &FWPM_CONDITION_ORIGINAL_ICMP_TYPE,
                                                           &FWPM_CONDITION_INTERFACE_QUARANTINE_EPOCH,

#if(NTDDI_VERSION >= NTDDI_WIN8)

                                                           &FWPM_CONDITION_ALE_PACKAGE_ID,

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

                                                          };
const GUID* const ppConditionALEAuthConnect[]           = {&FWPM_CONDITION_ALE_APP_ID,
                                                           &FWPM_CONDITION_ALE_USER_ID,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_LOCAL_PORT,                    /// &FWPM_CONDITION_ICMP_TYPE
                                                           &FWPM_CONDITION_IP_PROTOCOL,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,                /// &FWPM_CONDITION_ICMP_CODE
                                                           &FWPM_CONDITION_IP_REMOTE_PORT,                   /// &FWPM_CONDITION_ICMP_CODE
                                                           &FWPM_CONDITION_ALE_REMOTE_USER_ID,
                                                           &FWPM_CONDITION_ALE_REMOTE_MACHINE_ID,
                                                           &FWPM_CONDITION_IP_DESTINATION_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE
                                                           &FWPM_CONDITION_FLAGS,
                                                           &FWPM_CONDITION_INTERFACE_TYPE,                   /// &FWPM_CONDITION_LOCAL_INTERFACE_TYPE
                                                           &FWPM_CONDITION_TUNNEL_TYPE,                      /// &FWPM_CONDITION_LOCAL_TUNNEL_TYPE

#if(NTDDI_VERSION >= NTDDI_VISTASP1)

                                                           &FWPM_CONDITION_INTERFACE_INDEX,                  /// &FWPM_CONDITION_LOCAL_INTERFACE_INDEX 
                                                           &FWPM_CONDITION_SUB_INTERFACE_INDEX,              /// &FWPM_CONDITION_ARRIVAL_SUB_INTERFACE_INDEX

#if(NTDDI_VERSION >= NTDDI_WIN7)

                                                           &FWPM_CONDITION_IP_ARRIVAL_INTERFACE,
                                                           &FWPM_CONDITION_ARRIVAL_INTERFACE_TYPE,
                                                           &FWPM_CONDITION_ARRIVAL_TUNNEL_TYPE,
                                                           &FWPM_CONDITION_ARRIVAL_INTERFACE_INDEX,
                                                           &FWPM_CONDITION_NEXTHOP_SUB_INTERFACE_INDEX,
                                                           &FWPM_CONDITION_IP_NEXTHOP_INTERFACE,
                                                           &FWPM_CONDITION_NEXTHOP_INTERFACE_TYPE,
                                                           &FWPM_CONDITION_NEXTHOP_TUNNEL_TYPE,
                                                           &FWPM_CONDITION_NEXTHOP_INTERFACE_INDEX,
                                                           &FWPM_CONDITION_ORIGINAL_PROFILE_ID,
                                                           &FWPM_CONDITION_CURRENT_PROFILE_ID,
                                                           &FWPM_CONDITION_REAUTHORIZE_REASON,
                                                           &FWPM_CONDITION_PEER_NAME,
                                                           &FWPM_CONDITION_ORIGINAL_ICMP_TYPE,
                                                           &FWPM_CONDITION_INTERFACE_QUARANTINE_EPOCH,

#if(NTDDI_VERSION >= NTDDI_WIN8)

                                                           &FWPM_CONDITION_ALE_ORIGINAL_APP_ID,
                                                           &FWPM_CONDITION_ALE_PACKAGE_ID,

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

                                                          };
const GUID* const ppConditionALEFlowEstablished[]       = {&FWPM_CONDITION_ALE_APP_ID,
                                                           &FWPM_CONDITION_ALE_USER_ID,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_LOCAL_PORT,                    /// &FWPM_CONDITION_ICMP_TYPE
                                                           &FWPM_CONDITION_IP_PROTOCOL,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_IP_REMOTE_PORT,                   /// &FWPM_CONDITION_ICMP_CODE
                                                           &FWPM_CONDITION_ALE_REMOTE_USER_ID,
                                                           &FWPM_CONDITION_ALE_REMOTE_MACHINE_ID,
                                                           &FWPM_CONDITION_IP_DESTINATION_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE
                                                           &FWPM_CONDITION_DIRECTION,
                                                           &FWPM_CONDITION_INTERFACE_TYPE,                   /// &FWPM_CONDITION_LOCAL_INTERFACE_TYPE
                                                           &FWPM_CONDITION_TUNNEL_TYPE,                      /// &FWPM_CONDITION_LOCAL_TUNNEL_TYPE

#if(NTDDI_VERSION >= NTDDI_VISTASP1)

                                                           &FWPM_CONDITION_FLAGS,

#if(NTDDI_VERSION >= NTDDI_WIN8)

                                                           &FWPM_CONDITION_ALE_ORIGINAL_APP_ID,
                                                           &FWPM_CONDITION_ALE_PACKAGE_ID,

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

                                                          };
const GUID* const ppConditionIPsecKMDemux[]             = {&FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,

#if(NTDDI_VERSION >= NTDDI_WIN8)

                                                           &FWPM_CONDITION_QM_MODE,
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,
                                                           &FWPM_CONDITION_CURRENT_PROFILE_ID,

#endif // (NTDDI_VERSION >= NTDDI_WIN8)

                                                          };
const GUID* const ppConditionIPsec[]                    = {&FWPM_CONDITION_IP_PROTOCOL,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_PORT,                    /// &FWPM_CONDITION_ICMP_TYPE
                                                           &FWPM_CONDITION_IP_REMOTE_PORT,                   /// &FWPM_CONDITION_ICMP_CODE
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE

#if(NTDDI_VERSION >= NTDDI_WIN7)

                                                           &FWPM_CONDITION_CURRENT_PROFILE_ID,

#endif // (NTDDI_VERSION >= NTDDI_WIN7)

                                                          };
const GUID* const ppConditionIKEExt[]                   = {&FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE

#if(NTDDI_VERSION >= NTDDI_WIN7)

                                                           &FWPM_CONDITION_CURRENT_PROFILE_ID,

#endif // (NTDDI_VERSION >= NTDDI_WIN7)

                                                          };
const GUID* const ppConditionRPCUM[]                    = {&FWPM_CONDITION_REMOTE_USER_TOKEN,
                                                           &FWPM_CONDITION_RPC_IF_UUID,
                                                           &FWPM_CONDITION_RPC_IF_VERSION,
                                                           &FWPM_CONDITION_RPC_IF_FLAG,
                                                           &FWPM_CONDITION_DCOM_APP_ID,
                                                           &FWPM_CONDITION_IMAGE_NAME,
                                                           &FWPM_CONDITION_RPC_PROTOCOL,
                                                           &FWPM_CONDITION_RPC_AUTH_TYPE,
                                                           &FWPM_CONDITION_RPC_AUTH_LEVEL,
                                                           &FWPM_CONDITION_SEC_ENCRYPT_ALGORITHM,
                                                           &FWPM_CONDITION_SEC_KEY_SIZE,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_V4,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_V6,
                                                           &FWPM_CONDITION_IP_LOCAL_PORT,                    /// &FWPM_CONDITION_ICMP_CODEE
                                                           &FWPM_CONDITION_PIPE,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS_V4,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS_V6,
                                                          };
const GUID* const ppConditionRPCEPMap[]                 = {&FWPM_CONDITION_REMOTE_USER_TOKEN,
                                                           &FWPM_CONDITION_RPC_IF_UUID,
                                                           &FWPM_CONDITION_RPC_IF_VERSION,
                                                           &FWPM_CONDITION_RPC_PROTOCOL,
                                                           &FWPM_CONDITION_RPC_AUTH_TYPE,
                                                           &FWPM_CONDITION_RPC_AUTH_LEVEL,
                                                           &FWPM_CONDITION_SEC_ENCRYPT_ALGORITHM,
                                                           &FWPM_CONDITION_SEC_KEY_SIZE,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_V4,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_V6,
                                                           &FWPM_CONDITION_IP_LOCAL_PORT,                    /// &FWPM_CONDITION_ICMP_TYPE
                                                           &FWPM_CONDITION_PIPE,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS_V4,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS_V6,
                                                          };
const GUID* const ppConditionRPCEPAdd[]                 = {&FWPM_CONDITION_PROCESS_WITH_RPC_IF_UUID,
                                                           &FWPM_CONDITION_RPC_PROTOCOL,
                                                           &FWPM_CONDITION_RPC_EP_VALUE,
                                                           &FWPM_CONDITION_RPC_EP_FLAGS,
                                                          };
const GUID* const ppConditionRPCProxyConn[]             = {&FWPM_CONDITION_CLIENT_TOKEN,
                                                           &FWPM_CONDITION_RPC_SERVER_NAME,
                                                           &FWPM_CONDITION_RPC_SERVER_PORT,
                                                           &FWPM_CONDITION_RPC_PROXY_AUTH_TYPE,
                                                           &FWPM_CONDITION_CLIENT_CERT_KEY_LENGTH,
                                                           &FWPM_CONDITION_CLIENT_CERT_OID,
                                                          };
const GUID* const ppConditionRPCProxyIf[]               = {&FWPM_CONDITION_CLIENT_TOKEN,
                                                           &FWPM_CONDITION_RPC_IF_UUID,
                                                           &FWPM_CONDITION_RPC_IF_VERSION,
                                                           &FWPM_CONDITION_RPC_SERVER_NAME,
                                                           &FWPM_CONDITION_RPC_SERVER_PORT,
                                                           &FWPM_CONDITION_RPC_PROXY_AUTH_TYPE,
                                                           &FWPM_CONDITION_CLIENT_CERT_KEY_LENGTH,
                                                           &FWPM_CONDITION_CLIENT_CERT_OID,
                                                          };

#if(NTDDI_VERSION >= NTDDI_WIN7)

const GUID* const ppConditionNameResolutionCache[]      = {&FWPM_CONDITION_ALE_USER_ID,
                                                           &FWPM_CONDITION_ALE_APP_ID,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_PEER_NAME,
                                                          };
const GUID* const ppConditionALEResourceRelease[]       = {&FWPM_CONDITION_ALE_APP_ID,
                                                           &FWPM_CONDITION_ALE_USER_ID,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_LOCAL_PORT,                    /// &FWPM_CONDITION_ICMP_TYPE
                                                           &FWPM_CONDITION_IP_PROTOCOL,
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE
                                                           &FWPM_CONDITION_FLAGS,

#if(NTDDI_VERSION >= NTDDI_WIN8)

                                                           &FWPM_CONDITION_ALE_PACKAGE_ID,

#endif // (NTDDI_VERSION >= NTDDI_WIN8)

                                                          };
const GUID* const ppConditionALEEndpointClosure[]       = {&FWPM_CONDITION_ALE_APP_ID,
                                                           &FWPM_CONDITION_ALE_USER_ID,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_LOCAL_PORT,                    /// &FWPM_CONDITION_ICMP_TYPE
                                                           &FWPM_CONDITION_IP_PROTOCOL,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_IP_REMOTE_PORT,                   /// &FWPM_CONDITION_ICMP_CODE
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE
                                                           &FWPM_CONDITION_FLAGS,

#if(NTDDI_VERSION >= NTDDI_WIN8)

                                                           &FWPM_CONDITION_ALE_PACKAGE_ID,
   
#endif // (NTDDI_VERSION >= NTDDI_WIN8)

                                                          };
const GUID* const ppConditionALEConnectRedirect[]       = {&FWPM_CONDITION_ALE_APP_ID,
                                                           &FWPM_CONDITION_ALE_USER_ID,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_LOCAL_PORT,                    /// &FWPM_CONDITION_ICMP_TYPE
                                                           &FWPM_CONDITION_IP_PROTOCOL,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_IP_DESTINATION_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_REMOTE_PORT,                   /// &FWPM_CONDITION_ICMP_CODE
                                                           &FWPM_CONDITION_FLAGS,

#if(NTDDI_VERSION >= NTDDI_WIN8)

                                                           &FWPM_CONDITION_ALE_ORIGINAL_APP_ID,
                                                           &FWPM_CONDITION_ALE_PACKAGE_ID,

#endif // (NTDDI_VERSION >= NTDDI_WIN8)

                                                          };
const GUID* const ppConditionALEBindRedirect[]          = {&FWPM_CONDITION_ALE_APP_ID,
                                                           &FWPM_CONDITION_ALE_USER_ID,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_IP_LOCAL_PORT,                    /// &FWPM_CONDITION_ICMP_TYPE
                                                           &FWPM_CONDITION_IP_PROTOCOL,
                                                           &FWPM_CONDITION_FLAGS,

#if(NTDDI_VERSION >= NTDDI_WIN8)

                                                           &FWPM_CONDITION_ALE_PACKAGE_ID,

#endif // (NTDDI_VERSION >= NTDDI_WIN8)

                                                          };
const GUID* const ppConditionStreamPacket[]             = {&FWPM_CONDITION_IP_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_IP_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_IP_LOCAL_PORT,
                                                           &FWPM_CONDITION_IP_REMOTE_PORT,                   /// &FWPM_CONDITION_ICMP_CODE
                                                           &FWPM_CONDITION_IP_LOCAL_INTERFACE,               /// &FWPM_CONDITION_INTERFACE
                                                           &FWPM_CONDITION_INTERFACE_INDEX,                  /// &FWPM_CONDITION_LOCAL_INTERFACE_INDEX 
                                                           &FWPM_CONDITION_SUB_INTERFACE_INDEX,              /// &FWPM_CONDITION_ARRIVAL_SUB_INTERFACE_INDEX
                                                           &FWPM_CONDITION_DIRECTION,
                                                           &FWPM_CONDITION_FLAGS,
                                                           &FWPM_CONDITION_INTERFACE_TYPE,                   /// &FWPM_CONDITION_LOCAL_INTERFACE_TYPE
                                                           &FWPM_CONDITION_TUNNEL_TYPE,                      /// &FWPM_CONDITION_LOCAL_TUNNEL_TYPE
                                                          };
const GUID* const ppConditionKMAuthorization[]          = {&FWPM_CONDITION_REMOTE_ID,
                                                           &FWPM_CONDITION_AUTHENTICATION_TYPE,
                                                           &FWPM_CONDITION_KM_TYPE,
                                                           &FWPM_CONDITION_DIRECTION,
                                                           &FWPM_CONDITION_KM_MODE,
                                                           &FWPM_CONDITION_IPSEC_POLICY_KEY,
                                                           &FWPM_CONDITION_KM_AUTH_NAP_CONTEXT,
                                                          };

#if(NTDDI_VERSION >= NTDDI_WIN8)

const GUID* const ppConditionInboundMACFrameEthernet[]  = {&FWPM_CONDITION_INTERFACE_MAC_ADDRESS,
                                                           &FWPM_CONDITION_MAC_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_MAC_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_MAC_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_MAC_REMOTE_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_ETHER_TYPE,
                                                           &FWPM_CONDITION_VLAN_ID,
                                                           &FWPM_CONDITION_INTERFACE,
                                                           &FWPM_CONDITION_INTERFACE_INDEX,                  /// &FWPM_CONDITION_LOCAL_INTERFACE_INDEX 
                                                           &FWPM_CONDITION_NDIS_PORT,
                                                           &FWPM_CONDITION_L2_FLAGS,
                                                          };
const GUID* const ppConditionOutboundMACFrameEthernet[] = {&FWPM_CONDITION_INTERFACE_MAC_ADDRESS,
                                                           &FWPM_CONDITION_MAC_LOCAL_ADDRESS,
                                                           &FWPM_CONDITION_MAC_REMOTE_ADDRESS,
                                                           &FWPM_CONDITION_MAC_LOCAL_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_MAC_REMOTE_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_ETHER_TYPE,
                                                           &FWPM_CONDITION_VLAN_ID,
                                                           &FWPM_CONDITION_INTERFACE,
                                                           &FWPM_CONDITION_INTERFACE_INDEX,                  /// &FWPM_CONDITION_LOCAL_INTERFACE_INDEX 
                                                           &FWPM_CONDITION_NDIS_PORT,
                                                           &FWPM_CONDITION_L2_FLAGS,
                                                          };
const GUID* const ppConditionInboundMACFrameNative[]    = {&FWPM_CONDITION_NDIS_MEDIA_TYPE,
                                                           &FWPM_CONDITION_NDIS_PHYSICAL_MEDIA_TYPE,
                                                           &FWPM_CONDITION_INTERFACE,
                                                           &FWPM_CONDITION_INTERFACE_TYPE,                   /// &FWPM_CONDITION_LOCAL_INTERFACE_TYPE
                                                           &FWPM_CONDITION_INTERFACE_INDEX,                  /// &FWPM_CONDITION_LOCAL_INTERFACE_INDEX 
                                                           &FWPM_CONDITION_NDIS_PORT,
                                                           &FWPM_CONDITION_L2_FLAGS,
                                                          };
const GUID* const ppConditionOutboundMACFrameNative[]   = {&FWPM_CONDITION_NDIS_MEDIA_TYPE,
                                                           &FWPM_CONDITION_NDIS_PHYSICAL_MEDIA_TYPE,
                                                           &FWPM_CONDITION_INTERFACE,
                                                           &FWPM_CONDITION_INTERFACE_TYPE,                   /// &FWPM_CONDITION_LOCAL_INTERFACE_TYPE
                                                           &FWPM_CONDITION_INTERFACE_INDEX,                  /// &FWPM_CONDITION_LOCAL_INTERFACE_INDEX 
                                                           &FWPM_CONDITION_NDIS_PORT,
                                                           &FWPM_CONDITION_L2_FLAGS,
                                                          };
const GUID* const ppConditionIngressVSwitchEthernet[]   = {&FWPM_CONDITION_MAC_SOURCE_ADDRESS,
                                                           &FWPM_CONDITION_MAC_SOURCE_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_MAC_DESTINATION_ADDRESS,
                                                           &FWPM_CONDITION_MAC_DESTINATION_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_ETHER_TYPE,
                                                           &FWPM_CONDITION_VLAN_ID,
                                                           &FWPM_CONDITION_VSWITCH_TENANT_NETWORK_ID,
                                                           &FWPM_CONDITION_VSWITCH_ID,
                                                           &FWPM_CONDITION_VSWITCH_NETWORK_TYPE,
                                                           &FWPM_CONDITION_VSWITCH_SOURCE_INTERFACE_ID,
                                                           &FWPM_CONDITION_VSWITCH_SOURCE_INTERFACE_TYPE,
                                                           &FWPM_CONDITION_VSWITCH_SOURCE_VM_ID,
                                                           &FWPM_CONDITION_L2_FLAGS,
                                                          };
const GUID* const ppConditionEgressVSwitchEthernet[]    = {&FWPM_CONDITION_MAC_SOURCE_ADDRESS,
                                                           &FWPM_CONDITION_MAC_SOURCE_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_MAC_DESTINATION_ADDRESS,
                                                           &FWPM_CONDITION_MAC_DESTINATION_ADDRESS_TYPE,
                                                           &FWPM_CONDITION_ETHER_TYPE,
                                                           &FWPM_CONDITION_VLAN_ID,
                                                           &FWPM_CONDITION_VSWITCH_TENANT_NETWORK_ID,
                                                           &FWPM_CONDITION_VSWITCH_ID,
                                                           &FWPM_CONDITION_VSWITCH_NETWORK_TYPE,
                                                           &FWPM_CONDITION_VSWITCH_SOURCE_INTERFACE_ID,
                                                           &FWPM_CONDITION_VSWITCH_SOURCE_INTERFACE_TYPE,
                                                           &FWPM_CONDITION_VSWITCH_SOURCE_VM_ID,
                                                           &FWPM_CONDITION_VSWITCH_DESTINATION_INTERFACE_ID,
                                                           &FWPM_CONDITION_VSWITCH_DESTINATION_INTERFACE_TYPE,
                                                           &FWPM_CONDITION_VSWITCH_DESTINATION_VM_ID,
                                                           &FWPM_CONDITION_L2_FLAGS,
                                                          };
const GUID* const ppConditionIngressVSwitchTransport[]  = {&FWPM_CONDITION_IP_SOURCE_ADDRESS,
                                                           &FWPM_CONDITION_IP_DESTINATION_ADDRESS,
                                                           &FWPM_CONDITION_IP_PROTOCOL,
                                                           &FWPM_CONDITION_IP_SOURCE_PORT,                   /// &FWPM_CONDITION_VSWITCH_ICMP_TYPE
                                                           &FWPM_CONDITION_IP_DESTINATION_PORT,              /// &FWPM_CONDITION_VSWITCH_ICMP_CODE
                                                           &FWPM_CONDITION_VLAN_ID,
                                                           &FWPM_CONDITION_VSWITCH_TENANT_NETWORK_ID,
                                                           &FWPM_CONDITION_VSWITCH_ID,
                                                           &FWPM_CONDITION_VSWITCH_NETWORK_TYPE,
                                                           &FWPM_CONDITION_VSWITCH_SOURCE_INTERFACE_ID,
                                                           &FWPM_CONDITION_VSWITCH_SOURCE_INTERFACE_TYPE,
                                                           &FWPM_CONDITION_VSWITCH_SOURCE_VM_ID,
                                                           &FWPM_CONDITION_L2_FLAGS
                                                          };
const GUID* const ppConditionEgressVSwitchTransport[]   = {&FWPM_CONDITION_IP_SOURCE_ADDRESS,
                                                           &FWPM_CONDITION_IP_DESTINATION_ADDRESS,
                                                           &FWPM_CONDITION_IP_PROTOCOL,
                                                           &FWPM_CONDITION_IP_SOURCE_PORT,                   /// &FWPM_CONDITION_VSWITCH_ICMP_TYPE
                                                           &FWPM_CONDITION_IP_DESTINATION_PORT,              /// &FWPM_CONDITION_VSWITCH_ICMP_CODE
                                                           &FWPM_CONDITION_VLAN_ID,
                                                           &FWPM_CONDITION_VSWITCH_TENANT_NETWORK_ID,
                                                           &FWPM_CONDITION_VSWITCH_ID,
                                                           &FWPM_CONDITION_VSWITCH_NETWORK_TYPE,
                                                           &FWPM_CONDITION_VSWITCH_SOURCE_INTERFACE_ID,
                                                           &FWPM_CONDITION_VSWITCH_SOURCE_INTERFACE_TYPE,
                                                           &FWPM_CONDITION_VSWITCH_SOURCE_VM_ID,
                                                           &FWPM_CONDITION_VSWITCH_DESTINATION_INTERFACE_ID,
                                                           &FWPM_CONDITION_VSWITCH_DESTINATION_INTERFACE_TYPE,
                                                           &FWPM_CONDITION_VSWITCH_DESTINATION_VM_ID,
                                                           &FWPM_CONDITION_L2_FLAGS
                                                          };

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

#if(NTDDI_VERSION >= NTDDI_VISTA)

const UINT16 INBOUND_IPPACKET_CONDITIONS_COUNT           = RTL_NUMBER_OF(ppConditionInboundIPPacket);
const UINT16 OUTBOUND_IPPACKET_CONDITIONS_COUNT          = RTL_NUMBER_OF(ppConditionOutboundIPPacket);
const UINT16 IPFORWARD_CONDITIONS_COUNT                  = RTL_NUMBER_OF(ppConditionIPForward);
const UINT16 INBOUND_TRANSPORT_CONDITIONS_COUNT          = RTL_NUMBER_OF(ppConditionInboundTransport);
const UINT16 OUTBOUND_TRANSPORT_CONDITIONS_COUNT         = RTL_NUMBER_OF(ppConditionOutboundTransport);
const UINT16 STREAM_CONDITIONS_COUNT                     = RTL_NUMBER_OF(ppConditionStream);
const UINT16 DATAGRAM_DATA_CONDITIONS_COUNT              = RTL_NUMBER_OF(ppConditionDatagramData);
const UINT16 INBOUND_ICMP_ERROR_CONDITIONS_COUNT         = RTL_NUMBER_OF(ppConditionInboundICMPError);
const UINT16 OUTBOUND_ICMP_ERROR_CONDITIONS_COUNT        = RTL_NUMBER_OF(ppConditionOutboundICMPError);
const UINT16 ALE_RESOURCE_ASSIGNMENT_CONDITIONS_COUNT    = RTL_NUMBER_OF(ppConditionALEResourceAssignment);
const UINT16 ALE_AUTH_LISTEN_CONDITIONS_COUNT            = RTL_NUMBER_OF(ppConditionALEAuthListen);
const UINT16 ALE_AUTH_RECV_ACCEPT_CONDITIONS_COUNT       = RTL_NUMBER_OF(ppConditionALEAuthRecvAccept);
const UINT16 ALE_AUTH_CONNECT_CONDITIONS_COUNT           = RTL_NUMBER_OF(ppConditionALEAuthConnect);
const UINT16 ALE_FLOW_ESTABLISHED_CONDITIONS_COUNT       = RTL_NUMBER_OF(ppConditionALEFlowEstablished);
const UINT16 IPSEC_KM_DEMUX_CONDITIONS_COUNT             = RTL_NUMBER_OF(ppConditionIPsecKMDemux);
const UINT16 IPSEC_CONDITIONS_COUNT                      = RTL_NUMBER_OF(ppConditionIPsec);
const UINT16 IKEEXT_CONDITIONS_COUNT                     = RTL_NUMBER_OF(ppConditionIKEExt);
const UINT16 RPC_UM_CONDITIONS_COUNT                     = RTL_NUMBER_OF(ppConditionRPCUM);
const UINT16 RPC_EPMAP_CONDITIONS_COUNT                  = RTL_NUMBER_OF(ppConditionRPCEPMap);
const UINT16 RPC_EP_ADD_CONDITIONS_COUNT                 = RTL_NUMBER_OF(ppConditionRPCEPAdd);
const UINT16 RPC_PROXY_CONN_CONDITIONS_COUNT             = RTL_NUMBER_OF(ppConditionRPCProxyConn);
const UINT16 RPC_PROXY_IF_CONDITIONS_COUNT               = RTL_NUMBER_OF(ppConditionRPCProxyIf);

#if(NTDDI_VERSION >= NTDDI_WIN7)

const UINT16 NAME_RESOLUTION_CACHE_CONDITIONS_COUNT      = RTL_NUMBER_OF(ppConditionNameResolutionCache);
const UINT16 ALE_RESOURCE_RELEASE_CONDITIONS_COUNT       = RTL_NUMBER_OF(ppConditionALEResourceRelease);
const UINT16 ALE_ENDPOINT_CLOSURE_CONDITIONS_COUNT       = RTL_NUMBER_OF(ppConditionALEEndpointClosure);
const UINT16 ALE_CONNECT_REDIRECT_CONDITIONS_COUNT       = RTL_NUMBER_OF(ppConditionALEConnectRedirect);
const UINT16 ALE_BIND_REDIRECT_CONDITIONS_COUNT          = RTL_NUMBER_OF(ppConditionALEBindRedirect);
const UINT16 STREAM_PACKET_CONDITIONS_COUNT              = RTL_NUMBER_OF(ppConditionStreamPacket);
const UINT16 KM_AUTHORIZATION_CONDITIONS_COUNT           = RTL_NUMBER_OF(ppConditionKMAuthorization);

#if(NTDDI_VERSION >= NTDDI_WIN8)

const UINT16 INBOUND_MAC_FRAME_ETHERNET_CONDITIONS_COUNT     = RTL_NUMBER_OF(ppConditionInboundMACFrameEthernet);
const UINT16 OUTBOUND_MAC_FRAME_ETHERNET_CONDITIONS_COUNT    = RTL_NUMBER_OF(ppConditionOutboundMACFrameEthernet);
const UINT16 INBOUND_MAC_FRAME_NATIVE_CONDITIONS_COUNT       = RTL_NUMBER_OF(ppConditionInboundMACFrameNative);
const UINT16 OUTBOUND_MAC_FRAME_NATIVE_CONDITIONS_COUNT      = RTL_NUMBER_OF(ppConditionOutboundMACFrameNative);
const UINT16 INGRESS_VSWITCH_ETHERNET_CONDITIONS_COUNT       = RTL_NUMBER_OF(ppConditionIngressVSwitchEthernet);
const UINT16 EGRESS_VSWITCH_ETHERNET_CONDITIONS_COUNT        = RTL_NUMBER_OF(ppConditionEgressVSwitchEthernet);
const UINT16 INGRESS_VSWITCH_TRANSPORT_CONDITIONS_COUNT      = RTL_NUMBER_OF(ppConditionIngressVSwitchTransport);
const UINT16 EGRESS_VSWITCH_TRANSPORT_CONDITIONS_COUNT       = RTL_NUMBER_OF(ppConditionEgressVSwitchTransport);

#if(NTDDI_VERSION >= NTDDI_WINBLUE)

const UINT16 INBOUND_TRANSPORT_FAST_CONDITIONS_COUNT         = 0;
const UINT16 OUTBOUND_TRANSPORT_FAST_CONDITIONS_COUNT        = 0;
const UINT16 INBOUND_MAC_FRAME_NATIVE_FAST_CONDITIONS_COUNT  = 0;
const UINT16 OUTBOUND_MAC_FRAME_NATIVE_FAST_CONDITIONS_COUNT = 0;

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

#endif /// WFP_SAMPLER_WFP_ARRAYS_H

Our Services

  • What our customers say about us?

© 2011-2025 All Rights Reserved. Joya Systems. 4425 South Mopac Building II Suite 101 Austin, TX 78735 Tel: 800-DEV-KERNEL

Privacy Policy. Terms of use. Valid XHTML & CSS